none
如何用ODBC创建xlsx文件? RRS feed

  • 问题

  • 我的c++程序通过ODBC的方式创建Excel文件,连接字符串如下:

    DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB="C:\test.xlsx";DBQ=C:\test.xlsx

    用CDatabase::OpenEx来打开创建。

    Excel文件可以正常创建,但是用Excel打开时提示:“...。因为文件格式或文件扩展名无效。..."。

    如果把后缀名从xlsx改到xlsb,文件可以正常打开。

    如果我事先放一个空的test.xlsx,不是程序创建的,那么程序写入内容正常,用Excel打开也正常。

    请问我在c++程序中,如何创建出正常的xlsx文件?

    2017年11月22日 1:02

全部回复

  • Hi Yi Xin,

    感谢在MSDN论坛发帖。

    >>用CDatabase::OpenEx来打开创建。

    Excel文件可以正常创建,但是用Excel打开时提示:“...。因为文件格式或文件扩展名无效。..."。

    如果把后缀名从xlsx改到xlsb,文件可以正常打开。

    对于这种情况,建议你添加以下语句。

    Extended Properties="Excel 12.0 XML;HDR=YES"

    因为标准的xlsx文件格式是excel xml格式。

    或者你也可以使用ole db来创建。这里有篇类似的帖子,你可以参考一下。

    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/7072b662-33c9-478a-b00d-f47755b83f0b/create-a-2007-excel-xlsx-file-via-odbc-using-vc?forum=sqldataaccess

    希望对你有所帮助。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已建议为答案 Baron Bi 2017年12月12日 7:12
    2017年11月22日 6:00