我想将一些数据写入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);
答案 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。