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

时间:2015-07-09 20:17:14

标签: c++ excel visual-studio

我对C ++比较陌生(我知道基础知识并且已经成功完成了程序)并且正在尝试创建一个项目来简化一些数据处理以获取我需要的大量信息。

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

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

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

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

1 个答案:

答案 0 :(得分:2)

正如您所说,您可以将excel文件转换为csv并阅读它。你会在这个主题上找到很多关于SO的答案,例如: How can I read and parse CSV files in C++

否则,您可以依赖某些外部库,例如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();
}