使用Visual Studio读取C++中的Excel文件[关闭]

问题描述 投票:0回答:2

我有一个项目,我必须将 Excel 文件读入 C++ 程序。 .xlsx 文件包含多个工作表。我需要直接从 .xlsx 文件执行此操作,因为转换为 .csv 会很困难。

以编程方式转换 .xlsx 文件的说明可能就足够了。相反,我发现很多这个问题在 8 年后仍然被问到,但没有得到实际的答案。也许它并不像标记的那样新手。


然后我必须能够使用这些数据进行计算、排序、搜索等。在Excel文件中,大约有20行信息是计算所必需的而不是必需的。之后,大约有 100 行原始数据跨越几列。我的问题是如何读取前 20 行并存储它们,但不使用它们,以及如何将其他 100 行和列读取到结构中,以便我可以访问它们的数据。

c++ excel structure
2个回答
1
投票

您可以将 Excel 文件转换为 csv 格式文件,这会更容易。使用

std::ifstream
打开文件,使用 getline 读取每个逗号分隔的行,使用 strtok 标记值。

或者,如果您的列数较少和/或固定,则可以使用

fscanf(file,"%g,%g...",...)


0
投票

根据 Auriga 将文件转换为

.csv
格式的建议,
您可以按照以下步骤处理问题:

  1. 如果 Excel 工作表中的行数不确定(可能大于或小于
    120
    ),只需读取文件,直到遇到
    EOF
  2. 将前
    20
    行存储在一个简单的字符串数组中,因为您不打算使用此数据进行任何计算。
  3. 正如 Auriga 所建议的那样,将其余数据标记化并保存在 2D 数组中(或使用
    vector< vector< datatype > >
    以获得更多动态,其中 datatype 是适合数据的数据类型)。

现在您可以直接从 2D 数据结构(数组或向量)访问数据并使用它。

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.