正在使用xlsx文件中的Xlnt库检测最后一列和最后一行
Detecting last column and last row with Xlnt library in a xlsx file
我正在尝试使用Xlnt库来创建和操作一些xlsx文件
这个库中是否有函数可以让您知道它是最后一列非空和最后一行非空
下面是一个代码示例:
#include <xlnt/xlnt.hpp>
#include <string>
#include <iostream>
int main ()
{
xlnt::workbook wb;
xlnt::worksheet ws = wb.active_sheet();
ws.cell("AB1").value(5);
ws.cell("B12").value(10);
ws.cell("C3").formula("=AB1+B12");
wb.save("example.xlsx");
std::string lastColumn = ws.last_column(); // exists similar function?
size_t lastRow = ws.last_row(); // exists similar function?
std::cout << lastColumn << ' ' << lastRow << std::endl;
return 0;
}
阅读代码可以清楚地看到,最后一列是";AB";最后一行是12,但显然程序不知道哪些单元格具有任何类型的内容。
从文档中,有一个end
迭代器返回最后一行之后的迭代器。
https://github.com/tfussell/xlnt/blob/master/include/xlnt/worksheet/worksheet.hpp#L630
所以像这样的东西可能会起作用:
xlnt::worksheet ws = wb.active_sheet();
const auto last_row = *std::prev(ws.end());
如果工作表中没有行,这可能是未定义的行为,因此请相应地添加错误检查。
相关文章:
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何在C++中获取二维数组中最少的一列数?
- 如何在最后一步使用CryptDecrypt解决NTE_BAD_DATA
- 如何检测是否在缓冲绘画动画中绘制最后一帧?
- 斐波那契数列部分和的最后一位数字
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 将第 n 个斐波那契数的大斐波那契数的最后一位编程.C++
- 经过最后一个数组元素末尾的指针是否应该等于超过整个数组末尾的指针?
- foor 循环的最后一次迭代中的指针更改
- 访问类成员向量最后一项的正确方法
- 从函数参数包中删除最后一项
- 如何允许用户选择何时停止三列中的每一列的旋转
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- C++ 查找算法:如何找到元素的最后一次出现?
- 为什么当 while 循环中的 if 条件变为 false 时,我的函数不输出最后一条语句?
- C++ 最后一列中的直方图错误
- 我在一个简单控制台程序(c++)中的第一列代码最终成为我的最后一列
- 如何擦除前 7 列加上最后一列,第 9 列,仅将第 8 列留在 3d 矢量中,例如 vector<vector<pair<int,int>>>?
- 在递归函数中通过引用传递的数组 - 最后一列重新初始化
- 从输入文件的最后一列决定一个例程