用c++编写Excel电子表格

Writing an Excel spread sheet in c++

本文关键字:电子表格 Excel 编写 c++      更新时间:2023-10-16

我想将一些数据写入xlsx电子表格(最终写入具有多个工作表的现有电子表格,但现在将很高兴创建一个空白的单个工作表文件)。

环顾四周,似乎我需要使用excel ODBC驱动程序(微软excel驱动程序(*.xls, *.xlsx, *。Xlsm, *.xlsb))将数据写入电子表格。

然而,这失败了:"未安装驱动程序:Microsoft Excel Driver (*.xls, *.xlsx, *.xlsx)。"xlsm * .xlsb)"

我有64位版本的Office 2010 Pro Plus(我想这是学生得到的版本?)安装在Windows 7家庭64位。我正在尝试创建一个32位的应用程序。

在office和windows版本中使用ODBC是否存在一些基本问题,或者应用程序的比特性?ODBC是简单地将一些数据写入文件的最佳选择吗?

一个要求是我可以写任何文件,excel不需要打开(但excel 2007或更高版本将安装在系统上)。

CString sDriver = L"Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)";
CString sExcelFile = L"c:\test.xlsx";
CString connect;
connect.Format(L"DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB="%s";DBQ=%s",
    sDriver, sExcelFile, sExcelFile);

我建议您使用CSV文件(逗号分隔值)。这是非常容易创建的,可以通过Excel(以及OpenOffice和iWork的产品)读取。

试试http://www.libxl.com/-没有关联,甚至不是客户(因为我主要使用c#)…

编辑-按注释:

上面的库将允许您不仅创建,而且还可以读取和修改现有的excel文件,正如您在第一句话中暗示的未来目标…

创建Excel文件有一些免费的选项:
你可以创建CSV或HTML(如果需要一些格式和/或分组和/或公式等)- Excel可以打开HTML并使用它很好,如果你注意使用它理解的标签-参见http://www.c-sharpcorner.com/UploadFile/kaushikborah28/79Nick08302007171404PM/79Nick.aspx

还有一个选择

ExcelFormat:一个只支持c++的头文件库,可以写入、读取和格式化xls文件。我知道您要求使用xlsx,但由于Excel 2007仍然可以打开这些文件,因此值得一试。

最重要的是,ExcelFormat是免费的(CPOL),易于使用,根本不需要安装Excel。如果您感兴趣,可以在这里下载稍微更新的版本。