使用CPP Builder XE7。使用OleContainer保存Excel文件会生成损坏的Excel文件!
这是简化的代码片段:
OleContainer1->CreateObjectFromFile("input.xlsx", false);
OleContainer1->SaveAs("ouput.xlsx");
另一方面:保存docx文件不会以损坏的文件结束。
请指导我!
答案 0 :(得分:0)
这是我找到的解决方案:
// You have to activate the object before accessing it
OleContainer1->DoVerb(ovShow);
Variant vOLEExcel = OleContainer1->OleObject.GetActiveObject("Excel.Application");
// Get document out of the OLE container
Variant vActiveDocument = vOLEExcel.OlePropertyGet("ActiveWorkBook");
// save it
vActiveDocument.Exec(Procedure("SaveAs") << L"C:\\temp\\output.xlsx");
// set saved-flag to inhibit save-questions
vActiveDocument.OlePropertySet("Saved", true);