我想从C中的excel文件中读取.excel 2007文件包含大约6000行和2列。我想将内容存储在C中的二维数组中。如果存在C库或任何其他方法,请告诉我。
答案 0 :(得分:12)
Excel 2007将数据存储在一堆文件中,其中大部分都是XML格式,所有文件都拼凑成一个zip文件。如果您想查看内容,可以将.xlsx
重命名为whatever.zip
,然后将其打开并查看其中的文件。
假设您的Excel文件只包含原始数据,而您所关心的只是阅读它(即,您不需要/想要更新其内容并让Excel再次打开它),阅读数据实际上非常简单。在zip文件中,您正在查找子目录xl\worksheets\
,该子目录将包含许多.xml
个文件,每个文件对应Excel中的一个工作表(例如,默认工作簿将有三个名为{{的工作表) 1}},sheet1.xml
和sheet2.xml
)。
在这些内容中,您正在寻找sheet3.xml
标记。在其中,您将拥有<sheet data>
个标记(每行数据一个),并且其中<row>
个标记的属性为<c>
,其中r=RC
被替换为RC
正常的行/列表示法(例如,“A1”)。 <c>
标记将嵌套<v>
标记,您可以在其中找到该单元格的值。
我确实觉得有必要添加一个警告:虽然阅读真正简单的数据确实可以这么简单,如果你决定做更多的事情,生活可以匆忙地变得更复杂很多阅读简单的行/列数字。尝试做任何事情,即使稍微比这更复杂,也可以让批次更加复杂。
答案 1 :(得分:3)
您有几种选择:
1)将您的Excel工作表保存到csv文件并解析
2)使用COM API(Windows专有且棘手)
3)See this link表示您可以修改的C ++类。
答案 2 :(得分:3)
可以找到另一个从Excel文件读取数据的C lib here。