【问题标题】:C++/CLI Open XML SDK Excel cannot use AddNewPartC++/CLI Open XML SDK Excel 不能使用 AddNewPart
【发布时间】:2017-06-09 01:37:59
【问题描述】:

我在一个学校项目中使用 C++/CLI,我需要将一些数据导出为 Excel 格式 (xlsx)。问题是这段代码有像 AddNewPart 这样的部分,Visual Studio 用红色下划线(它表示指定的类没有成员 AddNewPart)但是代码已编译并且应用程序运行但结果是损坏的 xlsx 文件(当我尝试用excel打开它说它已损坏)。

SpreadsheetDocument ^doc = SpreadsheetDocument::Create(path_get, SpreadsheetDocumentType::Workbook);

WorkbookPart ^wbookpart = doc->AddWorkbookPart();
wbookpart->Workbook = gcnew Workbook();

WorksheetPart^ worksheetPart = wbookpart->AddNewPart<WorksheetPart^>();
SheetData^ sheetData = gcnew SheetData();
worksheetPart->Worksheet = gcnew Worksheet();
worksheetPart->Worksheet->AppendChild(sheetData);

Sheets^ sheets = doc->WorkbookPart->Workbook->AppendChild<Sheets^>(gcnew Sheets());
Sheet^ sheet = gcnew Sheet();
sheet->Id = doc->WorkbookPart->GetIdOfPart(worksheetPart);
sheet->SheetId = 1;
sheet->Name = "mySheet";
sheets->Append(sheet);
wbookpart->Workbook->Save();
doc->Close();

【问题讨论】:

  • 乍一看,您好像少了一对^。但是,告诉我们确切的错误信息会有很大帮助。
  • 我添加了所有代码和错误!感谢您的快速回复!

标签: c++-cli openxml


【解决方案1】:

我遇到了和你一样的问题,Visual Studio 报告该类没有成员,但它仍然编译并且似乎仍然为我填充参数。尝试使用调试器单步执行,看看这是否适合您。如果我尝试将 AddNewPart 重命名为绝对不存在的名称,它不会为我编译。

作为一项不太复杂的检查,GetIdOfPart 也为我报告了相同的错误消息,但尽管 Visual Studio 声称该类没有成员,但该参数肯定会填充到调试器中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    相关资源
    最近更新 更多