我试图读取xlsx文件的excel表,并使用libxl将每张表转换为csv文件
我下载了libxl 4.1.0并按照以下步骤将libxl集成到我的代码中:这是我的代码:
#include <iostream>
#include <fstream>
#include <string>
#include "libxl.h"
using namespace std;
using namespace libxl;
int main() {
Book* book = xlCreateBook();
if(book) {
if(book->load("0FUP3B0YZS_results.xls")) {
int sheetCount = book->sheetCount();
for(int i = 0; i < sheetCount; ++i) {
Sheet* sheet = book->getSheet(i);
if(sheet) {
string csvFileName = sheet->name() + ".csv";
ofstream csvFile(csvFileName.c_str());
if(csvFile.is_open()) {
int rowCount = sheet->lastRow();
for(int row = 0; row <= rowCount; ++row) {
int colCount = sheet->lastCol();
for(int col = 0; col <= colCount; ++col) {
csvFile << sheet->readStr(row, col).c_str();
if(col != colCount) {
csvFile << ",";
}
}
csvFile << endl;
}
csvFile.close();
}
}
}
}
book->release();
}
return 0;
}`
但我总是犯这样的错误未定义对xlCreateBook的引用你能告诉我怎样做才能在我的代码中被识别吗?
1条答案
按热度按时间bjp0bcyl1#
未定义的引用意味着链接器找不到该函数的实现。更准确地说,您没有链接到
libxl
。再次检查您是否正确地进行了链接器相关配置,以及所有必需的文件是否都位于配置的路径中。
发布完整的编译/构建日志也会很有用。