0

我正在使用 Libxl for c++ 从 .xlsx 文件中读取。代码如下

void main()
{
    Book* book = xlCreateXMLBook();
    if (book) {
        if(book->load("input.xlsx")) {
            Sheet* sheet = book->getSheet(0);
            if (sheet) {
            long int id; 
            for(int i=1; i<15; i++) {
                id = sheet->readNum(i,0);
                cout << id << endl;
                }
            }
        }
    }
    book->release();
}

excel表有以下数据,输出似乎不同。

Original Data | Output from code
UNKNOWN       | 0
47012         | 141366
48964         | 154840
425214        | 0
47018         | 134427

任何帮助表示赞赏。

4

1 回答 1

0

readNum 返回一个 double 而不是 long int

我假设“未知”是一个字符串。如果是这样,您可以这样做:

double id;
const wchar_t* str;
for(int i=1; i<15; i++) {
    str = sheet->readStr(i, 0);
    if (str) {
        wcout << str << endl; // need to use wcout as it's a wide string
    } else {
        id = sheet->readNum(i,0);
        cout << id << endl;
    }
}

根据文档,如果单元格不包含字符串, readStr 将返回 NULL,因此您可以回退到读取数字。

于 2013-08-20T04:44:35.303 回答