libxl库在C ++中的使用

时间:2019-05-07 06:44:24

标签: c++11 libxl

当我创建Visual Studio 2015项目时,我可以使用这个libxl库,但是我无法在Visual Studio qt gui应用程序项目上使用该库。

我尽我所能尝试一切。

#include "stdafx.h"
#include "QtGuiApplication5.h"
#include <QtWidgets/QApplication>
#include <qapplication.h>
#include <qpushbutton.h>
#include <iostream>
#include <conio.h>
#include "libxl.h"
using namespacenclude <Qt libxl;
using namespace std;

int main(int argc, char *argv[])
{
    Book* book = xlCreateBook();

    if (book)
    {
        if (book->load(L"..\\Lab_Bus Datebase.xlsx"))
        {
            Sheet* sheet = book->getSheet(0);
            if (sheet)
            {
                const wchar_t* s = sheet->readStr(2, 1);
                if (s) std::wcout << s << std::endl << std::endl;
            }
        } 
        else
        {
            std::cout << "At first run generate !" << std::endl;
        }
        book->release();
    }
    std::cout << "\nPress any key to exit...";
    _getch();
    QApplication a(argc, argv);
    QtGuiApplication5 w;
    w.show();

    return a.exec();
}

Link2019错误:严重级代码描述项目文件行抑制状态 错误LNK2019未解析的外部符号__imp_xlCreateBookW在函数主QtGuiApplication5中引用

link1120错误:严重级代码描述项目文件行抑制状态 错误LNK1120 1个未解决的外部QtGuiApplication5 C

1 个答案:

答案 0 :(得分:1)

您需要配置Visual Studio项目属性以使用必需的库。请参考this链接。

您正在使用.xlsx文件,因此使用xlCreateBook代替xlCreateXMLBook。除此之外,您还需要使用using namespace libxl;

下面是Factory functions

  • Book* xlCreateBook()
    为xls格式创建一个二进制图书实例。应该首先调用此函数以接收书本指针。此函数和其他类在libxl命名空间中。
  • Book* xlCreateXMLBook()
    创建xlsx格式的xml图书实例。应该首先调用此函数以接收书本指针。此函数和其他类在libxl命名空间中。

请参见下图,上面的代码在我的机器上工作正常。 enter image description here