我想知道如何用 C++ 读取 Excel 电子表格中的特定单元格。我知道我们必须使用“fstream”库,但我不知道如何从某个单元格获取这些值,并将其打印在屏幕上。任何帮助将不胜感激,谢谢! 地毯嘶嘶声
在 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
,这样使用起来更友好。
更多参考:
Excel 2007 之前的 Excel 版本使用专有的二进制格式,但 Excel 2007 及更高版本使用 XML(撰写维基百科)。
还有一个 C++ 库用于处理 Excel 文件。
书写时,请使用:
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
不太清楚这是如何工作的。
Q1:假设我有一个名为 MyFile 的 Excel 文件,直接位于 C:MyDir 中。如何获取 C++ 代码来查找并访问该文件?
Q2:假设我有两列数据要在我创建的 C++ 代码中读取。第一列单元格 A1 至 A10 以及相应的单元格 B1 至 B10。如何在我的 C++ 代码中读取这些数据?我确实想创建例如 if 条件,例如 if (A1=5) then (B1=0)。
提前致谢。