提取数据 LibXL C++
Posted
技术标签:
【中文标题】提取数据 LibXL C++【英文标题】:Extract Data LibXL C++ 【发布时间】:2014-09-03 10:49:10 【问题描述】:我下载了 LibXL 来帮助修改我创建的 C++ 程序。我的 C++ 文件中有一堆全局变量,我想将它们链接到 Excel 电子表格中的值。如果我链接到的 excel 工作表称为“Sheet 1”并且工作簿称为“Book 1”,有人可以解释一下我将如何做到这一点。这是 LibXL 网站上用于从 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();
这是我的 C++ 程序中的代码块,我想在其中将某些 excel 单元格链接到 C++ 中的变量:
var1 = .0887; var2 = .175; var3 = .299; var4 = .292; var5 = .151; var6 = .051; var7 = .001; var8 = .02;
我需要编辑的代码只是具有各种变量名称。我希望将这些变量/值链接到或等于具有上述名称和书籍的 Excel 电子表格中的变量。我真的不确定如何实现我展示的这个示例代码,部分原因是我不理解上面的示例。
【问题讨论】:
那么,贴出的代码有哪些部分你不明白? 好吧,我不确定 a) 将此代码放在我的文件中的什么位置以及如何运行它(它是否在 main 中?)? b) 示例中的 excel 书和工作表的名称到底是什么? (即我要改变哪一部分以及如何将它与我的 var1、var2 联系起来)。顺便提一下 var1、var2 等。这些都是在我的 main() 函数中定义的。 工作表在示例中由数字引用(0 是第一个,1 是第二个)。我认为有一种方法可以获得工作表的“名称”,但它更复杂。不可能说它与您的代码有何关系,因为您尚未发布代码,也没有发布电子表格的外观。您可能需要从电子表格中的“名称”到变量的某种转换,这不是 C++ 本身支持的。 好的 - 所以看起来 getSheet(0) 与工作表相关,而“example.xls”是工作簿。你能解释一下 readStr 和 readNum 是如何工作的吗?那些与什么有关(似乎他们会引用单元格,但我不遵循那个语法) 据我了解 readStr 返回相关单元格中的字符串, readNum 返回单元格中的数字。 (我没有使用过 LibXL,但在 Python 中使用了类似的功能,在一个使用 Excel 作为“脚本语言”的程序中)。 【参考方案1】:将sdt::wcout
用于libXL
中使用的宽字符。也使用CELLTYPE_NUMBER
/ CELLTYPE_STRING
并使用命名空间 libxl!
您可以使用示例:http://www.libxl.com/read-excel-data.html 并对其进行简化。
【讨论】:
以上是关于提取数据 LibXL C++的主要内容,如果未能解决你的问题,请参考以下文章
LibXL:打开 MS excel 文件时如何强制重新计算公式?