用c ++编写Excel电子表格

时间:2011-07-31 21:03:47

标签: c++ database excel odbc

我想将一些数据写入xlsx spreadshhet(最终成为一个有多个shhets的现有数据,但现在很乐意创建一个空白的单页文件)。

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

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

我在Windows 7 Home 64bit上安装了64位版本的Office 2010 Pro Plus(我认为这是学生得到的版本?)。我正在尝试创建一个32位应用程序。

在这里使用ODBC与Office和Windows版本或应用程序的位数是否存在一些基本问题? 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);

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

尝试http://www.libxl.com/ - 不是附属的,甚至不是客户(因为我主要使用C#)......

编辑 - 根据评论:

上面的lib将允许您不仅创建而且还读取+修改现有的Excel文件,因为您在第一句中暗示了未来的目标......

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

答案 2 :(得分:0)

还有另一种选择。

ExcelFormat:头文件只有C ++库,可以编写,读取和格式化xls文件。我知道你要求xlsx,但由于Excel 2007仍然可以打开这些文件,所以值得一试。

除此之外,ExcelFormat是免费的(CPOL),易于使用,根本不需要安装Excel。 如果您有兴趣,可以下载稍微更新的版本here