LibXL加载文件失败

时间:2016-01-08 20:01:43

标签: c++ excel xlsx libxl

以下是加载xls / xlsx文件的代码:

int main()
{ 
    BookHandle book = xlCreateBook();

    if(book) 
    {
        if(xlBookLoad(book, L"Slice.xlsx")) 
        {
            SheetHandle sheet = xlBookGetSheet(book, 0);
            if(sheet)
            {
                double d;
                const wchar_t* s = xlSheetReadStr(sheet, 2, 1, 0);

                if(s) wprintf(L"%s\n", s);

                d = xlSheetReadNum(sheet, 3, 1, 0);
                printf("%g\n", d);
            }
        }     

        xlBookRelease(book);
    }

    printf("\nPress any key to exit...");
    _getch();

    return 0;
}

这些实际上是示例代码。 xlBookLoad()失败,以便跳过if语句。

但是,如果我加载自己的文件 example1.xls ,则会成功。 Slice.xlsx example.xls 位于同一文件夹中。我100%确定文件路径是正确的。加载功能失败了。

现在,我不知道为什么。那是因为 Slice.xlsx 有点特别吗?或LibXL不是加载它的工具?如果是这样我怎么读呢?

我在这里附上它。非常感谢任何有帮助的人。

Slice.xlsx:

https://dl.dropboxusercontent.com/u/7949206/Slice.xlsx

1 个答案:

答案 0 :(得分:2)

从文档中可以看出,您应该使用xlCreateBook来处理* .xls文件,使用xlCreateXMLBook来处理* .xlsx文件。因此,对于Slice.xlsx,请在xlCreateXMLBook的位置使用xlCreateBookhttp://www.libxl.com/documentation.html