从Excel文件中读取特定列到c++

Read specific columns from Excel file to C++

本文关键字:c++ 读取 Excel 文件      更新时间:2023-10-16

我对c++比较陌生(我确实知道基础知识,并且自己成功地完成了程序),我正试图创建一个项目来简化我需要的大量信息的数据处理。

输入数据为30000行27列的excel文件。从这些数据中,我需要提取4个特定的列(总是列2,8,14和20),我想把每一列放入一个单独的数组,第一列应该由字符串组成,第二和第三个整数和最后一个字符串也是。由于第一行包含列描述,因此尝试省略第一行将是一个好主意。excel文件当前为'.xlsx'格式。

我花了整整两天的时间研究这个问题,但还是不知道从哪里开始。我读到将文件类型转换为"。csv"格式,并使用名为"stl"的东西可能是有用的,但根据我所拥有的信息,我觉得完全无法这样做。

我不希望有人为我解决这个问题,如果有人能指出我在正确的方向,我将不胜感激,无论是在哪里寻找我需要的信息或开始我。一旦我设法将数据读入数组,我实际上知道如何编程处理,但这部分欺骗了我。

感谢您的帮助和阅读时间。

正如您所说,您可以将excel文件转换为csv文件并读取它。关于这个话题,你会找到很多关于SO的答案,例如,我如何在c++中读取和解析CSV文件

否则,您可以依赖一些外部库,例如libxl(只是google:D上的第一个结果)。然后,您可以读取现有的excel,如:

Book* book = xlCreateBook();
if(book)
{
    if(book->load(L"example.xls"))
    {
        Sheet* sheet = book->getSheet(0);
        if(sheet)
        {
            const wchar_t* s = sheet->readStr(2, 1);
            if(s) wcout << s << endl;
            double d = sheet->readNum(3, 1);
            cout << d << endl;
        }
    }
    book->release();
}