libxls是一个轻量级的读取excel的xls格式的库,只能读不能写

和其配套的还有一个xlslib库,只能写不能读

可以根据自己的需求选择使用

读取代码:

#include <iostream>
#include <xls.h>
#include <xlsstruct.h>using namesapce std;int xlsread(const char* file_path_name)
{// 工作簿xlsWorkBook *pWB = NULL;// 工作表xlsWorkSheet *pWS = NULL;// 单元格xlsCell * cell = NULL;int sheetIndex;int row, col;// 打开文件pWB = xls_open(file_path_name, "UTF-8");if (!pWB) {fprintf(stderr, "Open File Error!\n");return 2;}// 解析xls文件,这个不要忘了xls_parseWorkBook(pWB);fprintf(stderr, "Sheet count:%d\n", pWB->sheets.count);// 读取每个工作表for (sheetIndex = 0; sheetIndex < pWB->sheets.count; ++sheetIndex) {// 获取工作表pWS = xls_getWorkSheet(pWB, sheetIndex);// 解析工作表xls_parseWorkSheet(pWS);fprintf(stderr, "Sheet %d name: %s\n", sheetIndex, (char *)pWB->sheets.sheet[sheetIndex].name);fprintf(stderr, "Sheet Data:\n");// 每行for (row = 0; row < pWS->rows.lastrow; ++row) {// 该行第几列for (col = 0; col < pWS->rows.lastcol; ++col) {// 获取单元格,这里也可以通过xls_row获取到这行的数据,然后,使用row->cells来获取单元格cell = xls_cell(pWS, row, col);// 判断单元格及内容是否为空if (cell && cell->str) {// 针对数值型进行分别判断!!很重要if ( (to_string(cell->d) == (char *)(cell->str)) ||      // 值较小的数值( cell->d == 0 && to_string(cell->d).c_str() != (char *)(cell->str)))  // 数值域为 0{fprintf(stderr, "%s", (char *)cell->str);                        }else // 较大数值fprintf(stderr, "%s", to_string(int(cell->d)).c_str());//fprintf(stderr, "%s", (char *)cell->str);}if (col < pWS->rows.lastcol-1)      // 逗号分隔{ fprintf(stderr, ",");}}fprintf(stderr, "\n");}fprintf(stderr, "\n");// 关闭工作表xls_close_WS(pWS);}// 关闭工作簿xls_close_WB(pWB);return 0;
}int main()
{xlsread("D:/myxls.xls");return 0;
}

注:上面的demo中,是针对标准的表格,及行列都是一个格子,如果存在合并单元格的情况,则会因为下标访问出错而崩溃,需要自己定义相应的循环规则或读取条件,避免程序崩溃

同时由于libxls库存在对数值型读取异常的问题,在提取单元格数据的时候,要自己进行判定,上面的代码中已经给出了判断的例子,可以根据自己的实际需求进行调整

C++基于libxls库读取xls文件相关推荐

  1. 【用JS自制表格软件玩数据】2.读取 xls 文件

    读写Excel Excel文档的包结构 Excel文档的组织形式 Content Types 主要内容(worksheet) 关联(Relationships) 第三方库 SheetJS 工作原理介绍 ...

  2. python excel处理框架_django框架基于模板 生成 excel(xls) 文件操作示例

    本文实例讲述了django框架基于模板 生成 excel(xls) 文件操作.分享给大家供大家参考,具体如下: 生成Excel 文件,很多人会采用一些开源的库来实现,比如python 自带 csv 库 ...

  3. phtoshop CEP扩展 读取xls文件内容

    整个问题搞了一周,各种插件测试. 思路:1.cep直接读取xls文件,但cep扩展本身和浏览器类似,所以直接读取本地文件,会有一个浏览器的安全问题要绕过去,就直接用ps自带的读取xls文件,以获取到x ...

  4. python读取nc文件转成img_使用python的netCDF4库读取.nc文件 和 创建.nc文件[转]

    使用python netCDF4库读取.nc文件 和 创建.nc文件 1. 介绍 .nc(network Common Data Format)文件是气象上常用的数据格式,python上读取.nc使用 ...

  5. python读取xls文件_从python中的xls读取unicode

    我正在尝试使用 Python读取.xls文件.该文件包含多个非ascii字符(即äöü).我已经尝试过使用openpyxls和xlrd(我对xlrd寄予厚望,因为它无论如何都会读取unicode中的所 ...

  6. pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库

    第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.cs ...

  7. Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)

    Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+': not supported') 只需要下载pyexce ...

  8. Python用pydicom库读取dicom文件

    Python用pydicom库读取dicom文件并调用 方法1:通过group.element读取 方法2:通过tag读取 方法3:get()方法 通用 import pydicompath = 'x ...

  9. 利用EXIF库读取jpg文件中的经纬度信息

    利用EXIF库读取jpg文件中的经纬度信息 EXIF库API参考:http://code.ciaoca.com/javascript/exif-js/ <!DOCTYPE html> &l ...

  10. STC8单片机基于开源库读取mpu6050数据

    STC8单片机基于开源库读取mpu6050数据

最新文章

  1. 克里斯坦森的破坏性创新—《可以量化的管理学》
  2. (附视频) | AI奠基人、美国AI科学家特伦斯谈深度学习​
  3. Oracle安装步骤及PL/SQL Developer连接数据库
  4. 手把手教你使用VS制作winform安装包
  5. 从源码编译Chrome(chromium)
  6. spring体系思维导图
  7. 基于弹性计算的AI推理
  8. 线程池三种创建方式和自定义线程池ThreadPoolExecutor
  9. LNMP详解(十一)——Nginx URL重写原理
  10. 网站赚钱秘密--SEO的运用
  11. 开集识别(Open Set Recognition)
  12. java 对象数据映射_SpringMVC中json数据映射为java对象的坑
  13. nginx配置详细说明
  14. winscp中解压文件
  15. URL Scheme 简介
  16. Linux学习 day05之用户组权限管理
  17. 下列不属于C语言程序开发步骤,程序设计技术(C语言)-中国大学mooc-题库零氪...
  18. Elementary OS安装及开发环境配置(一)
  19. Lotus Notes通过POP3和SMTP来收发internet邮件(设置domino邮件为例)
  20. 从2300块月薪的女工,到年薪80万的程序员,我花了10年

热门文章

  1. Mr.Xiong使用jQuery实现时钟表盘的效果
  2. super-csv文档的部分翻译及基本使用
  3. python柱形图绘制_Python绘图之柱形图绘制详解
  4. java 表格tr td_table、tr、td表格的行、单元格等属性说明
  5. 网盘中html怎么转成视频,怎么将百度网盘保存的MKV转换MP4格式
  6. 计算机专业综合改革举措,数学与应用数学专业综合改革的举措.docx
  7. #4【BZOJ5109】[CodePlus 2017]大吉大利,晚上吃鸡!(未完成)
  8. php telnet 交换机,华为S2700交换机配置Telnet
  9. SLT学习(二)——容器
  10. 2020寒假【gmoj2223】【hen母鸡下蛋】【区间和】