0

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.xlsxexample.xlsは同じフォルダーにあります。ファイルパスが正しいことは 100% 確信しています。失敗したのはロード機能でした。

理由はわかりません。それは、Slice.xlsx がちょっと特殊だからですか?またはLibXLはそれをロードするツールではありませんか? もしそうなら、どうやってそれを読むことができますか?

ここに付けています。助けてくれた人に感謝します。

スライス.xlsx:

https://dl.dropboxusercontent.com/u/7949​​206/Slice.xlsx

4

1 に答える 1

3

xlCreateBookドキュメントによると、*.xls ファイルの操作とxlCreateXMLBook*.xlsx ファイルの操作には を使用する必要があると記載されています。したがって、Slice.xlsx の場合xlCreateXMLBookは の代わりに使用しxlCreateBookます。http://www.libxl.com/documentation.html

于 2016-01-08T20:32:47.320 に答える