我有一个项目,我必须将 Excel 文件读入 C++ 程序。 .xlsx 文件包含多个工作表。我需要直接从 .xlsx 文件执行此操作,因为转换为 .csv 会很困难。
以编程方式转换 .xlsx 文件的说明可能就足够了。相反,我发现很多这个问题在 8 年后仍然被问到,但没有得到实际的答案。也许它并不像标记的那样新手。
然后我必须能够使用这些数据进行计算、排序、搜索等。在Excel文件中,大约有20行信息是计算所必需的而不是必需的。之后,大约有 100 行原始数据跨越几列。我的问题是如何读取前 20 行并存储它们,但不使用它们,以及如何将其他 100 行和列读取到结构中,以便我可以访问它们的数据。
您可以将 Excel 文件转换为 csv 格式文件,这会更容易。使用
std::ifstream
打开文件,使用 getline 读取每个逗号分隔的行,使用 strtok 标记值。
或者,如果您的列数较少和/或固定,则可以使用
fscanf(file,"%g,%g...",...)
根据 Auriga 将文件转换为
.csv
格式的建议,120
),只需读取文件,直到遇到 EOF
。 20
行存储在一个简单的字符串数组中,因为您不打算使用此数据进行任何计算。 vector< vector< datatype > >
以获得更多动态,其中 datatype 是适合数据的数据类型)。 现在您可以直接从 2D 数据结构(数组或向量)访问数据并使用它。
干杯!