【问题标题】:Writing an Excel spread sheet in c++用 C++ 编写 Excel 电子表格
【发布时间】:2011-10-17 01:31:52
【问题描述】:

我想将一些数据写入 xlsx 电子表格(最终写入具有多个电子表格的现有电子表格,但现在对创建一个空白单页文件感到满意)。

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

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

我在 Windows 7 Home 64 位上安装了 64 位版本的 Office 2010 Pro Plus(我认为这是学生获得的版本?)。并且正在尝试创建一个 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);

【问题讨论】:

    标签: c++ database excel odbc


    【解决方案1】:

    还有一个选择。

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

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

    【讨论】:

      【解决方案2】:

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

      编辑 - 根据评论:

      当您在第一句话中暗示未来目标时,上述库不仅可以让您创建,还可以读取和修改现有的 excel 文件...

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

      【讨论】:

      • 我有点希望不必为此花钱。这看起来至少要 199 美元,因为我的数据集多达几百个多列行
      • 我的建议是因为您提到您想要编辑现有的 excel 文件...查看我的编辑...对于空白/新的 excel 文件 CSV 是一种选择...但更好(更多灵活的即格式化,分组等)是HTML
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-15
        • 2017-05-18
        • 1970-01-01
        • 2021-04-05
        • 2012-11-22
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        相关资源
        最近更新 更多