首页 > 解决方案 > libxl 库在 C++ 中的使用

问题描述

当我创建一个项目 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

标签: c++11libxl

解决方案


您需要配置 Visual Studio 项目属性以使用所需的库。请参阅链接以获取相同的信息。

您正在使用.xlsxfile so 而不是xlCreateBookuse xlCreateXMLBook。除此之外,您还需要使用using namespace libxl;以下

工厂功能

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

请参见下图,上面的代码在我的机器上运行良好。 在此处输入图像描述


推荐阅读