用C ++读取Excel中的单元格?

时间:2012-11-02 18:11:34

标签: c++ excel fstream

我想知道如何在C ++中从Excel电子表格中读取特定单元格。我知道我们必须使用“fstream”库,但我不确切知道如何从某个单元格中获取这些值,并将其打印在屏幕上。任何帮助将不胜感激,谢谢! Carpetfizz

3 个答案:

答案 0 :(得分:3)

在Linux中你有这个免费的: http://libxls.sourceforge.net/

在Windows中你有http://www.libxl.com/这似乎要花钱:

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;
        }
    }

我认为最好的办法是将文件保存为.csv,使用起来更友好。

更多参考资料:

  1. What is a simple and reliable C library for working with Excel files?

  2. Reading from and writing to Excel files in C++

答案 1 :(得分:1)

Excel 2007之前的Excel版本使用专有二进制格式,但Excel 2007及更高版本使用XML(writes Wikipedia)。

There's also a C++ library用于处理Excel文件。

答案 2 :(得分:0)

写作时,请使用:

https://sourceforge.net/projects/simplexlsx/

为了阅读,我使用:

sourceforge.net/projects/xlsxio/?source=directory

另外,对于xlsxio,我编写了一个OO包装器,使其对c ++集成更友好。它只支持阅读,但你应该使用simplexlsx进行写作!

#include "XlsxBook.h"
#include "XlsxSheet.h"

https://drive.google.com/file/d/0B_HJu4VOsY8hMnRla2NMOEM3Z2M/view?usp=sharing