使用X ++在Excel中创build多个工作表

我目前可以创build一个新的Excel电子表格,写入并通过X ++保存电子表格。

我有一个新的类中的几个方法,每个都打算写入工作簿中的一个单独的工作表。

第一种方法创build电子表格,写入数据,保存电子表格,然后退出Excel就好了。 但在下一个方法中,我尝试打开保存的电子表格,写入另一个工作表(选项卡),再次保存并退出Excel。

第二种方法导致以下错误。 类_Workbook的 COM对象中的方法'saveAs'返回错误代码0x800A03EC()这意味着:您不能保存与另一个打开的工作簿或加载项同名的此工作簿。 select一个不同的名称,或保存之前closures其他工作簿或加载项。

是否有可能创build和保存一个Excel工作簿中的多个Excel工作表在X + +?

再次感谢Jan回应

审查SysDataExcelCOM类后,有一个CreateWorkbook方法创buildExcel数据定义导出的附加工作表。 在创build一个新的类似的方法并且为Excel工作表声明我自己的一组定义的名字(#define.ExampleExcelWorksheetName('abcSheet'))之后,我可以用多个工作表创buildExcel工作簿,然后保存(SysExcelWorkbook.saveAs )在首先创build所有必要的工作表之后,而不是打开保存的工作簿,然后按照新的类方法添加工作表。

在数据打算写入工作表的其他类方法中,我打开由类似于CreateWorkbook(sysExcelWorkbooks.open(yourExcelFile))的新方法创build的工作簿,然后使用(sysExcelWorksheet.itemByName)引用每个工作表来写入数据到特定的工作表,然后保存。

excelApplication = SysExcelApplication::construct(); excelWorkbooks = excelApplication.workbooks(); excelWorkbooks.open(fileNameSave); excelWorkbook = excelWorkbooks.item(1); //Add styles and fonts excelStyles = excelWorkbook.styles(); excelStyle = excelStyles.add("Header"); excelFont = excelStyle.font(); excelFont.bold(true); excelWorksheets = excelWorkbook.worksheets(); excelWorksheet = excelWorksheets.itemFromName(#declared name of your worksheet); // Begin Header Row excelWorksheet.cells().item(1,1).value("value of your choice"); excelWorksheet.cells().item(1,2).value("value of your choice"); excelWorksheet.rows().item(1).style("Header"); excelWorksheet.name("Rename your declared worksheet name or use current name here"); excelCells = excelWorksheet.cells(); excelCells.range('A:B').numberFormat('@'); //Find you data to write to Excel Worksheet here excelWorksheet.columns().autoFit(); excelApplication.displayAlerts(false); excelWorkbook.saveAs(fileNameSave); excelWorkbook.comObject().save(); excelWorkbook.saved(true); excelApplication.quit(); 

走这条路线对我来说效果不错。

这可能不是你的问题的直接答案,但可能会给你另一个观点创buildExcel文件。

我倾向于使用XML和XSLT来创buildExcel文件。 您可以在Excel中轻松创build所需内容,然后将Excel文件另存为XML,然后可以应用一些XSLT,从另一个XML文件读取数据并将其放入所需的Excel文件中。

您可以在我的博客上find关于此主题的post: 使用C#,XML和XSLT创buildExcel文件

在那里我创build一个包含项目的XML文件,并将其转换为Excel文件。

检查Excel COM服务的标识。 看看别人 做了什么 。