如何使用C读取xlsx文件

如何使用C读取xlsx文件,c,libxl,C,Libxl,作为学校项目的一部分,我需要使用LabWindows/CVI 我需要读取xlsx文件并对其进行分析 我下载这个图书馆 我放大了h文件和lib文件。 这是我的代码(我从中获得): #包括 #包括 #包括 #包括“最终工作.h” #包括“libxl.h” ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

作为学校项目的一部分,我需要使用LabWindows/CVI

我需要读取xlsx文件并对其进行分析

我下载这个图书馆

我放大了h文件和lib文件。 这是我的代码(我从中获得):

#包括
#包括
#包括
#包括“最终工作.h”
#包括“libxl.h”
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
静态内面板手柄;
int readFile()
{
BookHandle book=xlCreateBook();//xlCreateXMLBook()
if(xlBookLoad(book,“G:/Electro data/0.5_time\u all.xlsx”)){
返回0;
}
如果(书)
{
SheetHandle sheet=xlBookAddSheet(书本,L“Sheet1”,0);
若有(第页)
{
xlsheetwritest(sheet,2,1,L“Hello,World!”,NULL);
xlSheetWriteNum(sheet,3,1,1000,NULL);
}
xlBookSave(book,L“example.xls”);
xlBookRelease(图书发行);
}
返回0;
}
我得到了这个错误: 生成状态(Final work.prj-Debug) 最后的工作.c-3警告

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U xlBookAddSheetA”

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U xlBookLoadA”

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U xlBookReleaseA”

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U xlBookSaveA”

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U xlCreateBookCA”

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U XLSHEETSWRITENUMA”

错误:“c:\Users\USER\Documents\National Instruments\CVI\cvibuild.Final work\Debug\Final work.obj”中引用了未定义的符号“\U xlSheetWriteStrA”

生成失败

下面是一张图片来说明:


我做错了什么?

您需要链接提供的库。从屏幕截图上看,您似乎已将库添加到项目中,但是链接器没有获得它。

IDK,但它们是链接器错误。但是,您应该修复有关向函数传递不兼容指针类型的三个编译器警告:
unsigned short[]
to
const char*
。可能是由于
L“Sheet1”
中的
L
,从警告消息判断,这可能只是
“Sheet1”
。与您的问题无关,但最有可能是错误的:如果
xlBookLoad()
返回
true
,则成功。但是你退出了这个功能。而且您没有检查
book
if
之前是否包含有效句柄。这是哪个IDE?感谢您的评论IDE是LabWindows/CVI
#include <cvirte.h>     
#include <userint.h>
#include <formatio.h>
#include "Final work.h"
#include "libxl.h"


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

static int panelHandle;

int readFile()
{
    BookHandle book = xlCreateBook(); // xlCreateXMLBook()
    if (xlBookLoad(book, "G:/Electro data/0.5_time_all.xlsx")){
        return 0;   
    }
    if(book) 
    {
        SheetHandle sheet = xlBookAddSheet(book, L"Sheet1", 0);
        if(sheet) 
        {
            xlSheetWriteStr(sheet, 2, 1, L"Hello, World !", NULL);
            xlSheetWriteNum(sheet, 3, 1, 1000, NULL);
        }
        xlBookSave(book, L"example.xls");
        xlBookRelease(book);
    }
    
    return 0;
}