从C中的excel文件中读取

par*_*rin 7 c excel-2007

我想从C中的excel文件中读取.excel 2007文件包含大约6000行和2列.我想将内容存储在C中的二维数组中.如果存在C库或任何其他方法,请告诉我.

Jer*_*fin 13

Excel 2007将数据存储在一堆文件中,其中大部分都是XML格式,所有文件都拼凑成一个zip文件.如果要查看内容,可以重命名.xlsxwhatever.zip,然后打开它并查看里面的文件.

假设你的Excel文件只包含原始数据,以及所有你关心的是阅读它(即你没有需要/想更新其内容,并得到Excel中再次打开它),读取的数据实际上是很容易的.在zip文件中,您正在查找子目录xl\worksheets\,该子目录将包含许多.xml文件,一个用于Excel中的每个工作表(例如,默认工作簿将有三个工作表命名sheet1.xml,sheet2.xmlsheet3.xml).

在那些内部,你正在寻找<sheet data>标签.在其中,您将拥有<row>标签(每行数据一个),并且在其内部<c>具有属性的标签,r=RC其中RC由正常的行/列表示法(例如,"A1")替换.该<c>标签将嵌套<v>的标签,你会发现该小区的值.

我觉得有必要补充,虽然一个警告:读取很简单的数据的确可以这样简单,生活可以得到很多更复杂的着急,如果你决定做的比读数的简单的行/列等等.尝试做任何事情,甚至稍微比这更复杂的可以得到很多匆忙更加复杂.

  • @cciotti:这只是表面上的**非常简单......但是:如果用户已经洗牌,那么需要检查`xl/_rels/workbook.xml.rels`流; 文本单元格的`<v>`元素为您提供了`xl/sharedStrings.xml`流的索引; 在您的数据中有日期?您可能希望查看`xl/styles.xml`流并解码`num_format_str`来判断您的浮点数是日期还是数字,并查看日期时间(1900或1904)的`xl/workbook.xml`流加上其他可能有用的工作簿级信息; `_xdead__xbeef_`样式转义无效的XML字符. (2认同)