关于libxl读取表格(找到最后一行)

         最近自己搞C++读取表格,用的是libxl 3.6.5.0版本,由于不知道用户的表格有多少数据,所以我想精确的循环读取到最后一行。为此我去官网上面查了一下函数,找到了图片里面的内容:

 看了解释,这不是有个现成的函数可以调用吗?直接调用lastFilledRow()就行了。唯一没想到的是这个函数在3.6.5.0版本里面压根就没有。可以用的是 lastRow(),但是这个函数返回的数据,只要带格式的单元格都返回,不是我要的效果。想了下,自己写一个这个功能就行了。在此记录一下代码:

    const char* filepath = "D:\\BasicProfile.xlsx";//创建表格读取路径
    Book* book = xlCreateXMLBook();//创建xlsx表格实例
    book->setKey("Halil Kural", "windows-2723210a07c4e90162b26966a8jcdboe");//注册

    if (book)//是否创建实例成功
    {
        if (book->load(filepath))//读取xlsx表格
        {
            Sheet* sheet = book->getSheet(1);//获取Sheet0,就是第一个工作表
            if (sheet)
            {
                //找到最后一行
                int lastrow;
                for (int i = 0; i < 9999; i++)
                {
                    CellType type = sheet->cellType(i,0);//获取单元格的类型
                    if (type == CELLTYPE_BLANK)//如果类型等于空白
                    {
                        lastrow = i;//记录下来
                        break;//跳出循环
                    }
                }
                //读取数据
                for (int j = 1; j < lastrow; j++)
                {
                    const char * namestr = sheet->readStr(j,0);

                }
                
            }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值