我正在用C#编写一个Excel应用程序来进行一些数据可视化。分析的第一步是将数据从输入工作簿中的单个工作表复制到执行分析的输出工作簿中的新工作表。
这在我的笔记本电脑上运行正常但是当我生成代码的客户端运行相同的应用程序时,他们会得到一些额外的工作表,导致代码崩溃。
在客户端的PC上调试应用程序非常困难,所以我很难理解在两台不同的机器上结果是如何不同的。
设置代码如下,任何帮助都会非常有用。使用Microsoft.Office.Interop.Excel 14。
Excel.Workbooks wbs = excelApp.Workbooks;
Excel.Workbook dataSource = wbs.Open(inFile);
//get the data sheet from the source file
Excel.Sheets dataSourceSheets = dataSource.Worksheets;
Excel.Worksheet dataSourceSheet = (Excel.Worksheet)dataSourceSheets.get_Item(1);
//create a new workbook
dataOutput = wbs.Add();
outputSheets = dataOutput.Worksheets;
//ensure there are only 2 sheets in the output
int osc = outputSheets.Count;
for (int i = 2; i < osc; ++i)
{
outputSheets.get_Item(i).Delete();
}
//setup summary and contents pages
summaryPage = outputSheets.get_Item(1);
summaryPage.Name = "Summary";
contentsPage = outputSheets.Add(Type.Missing, summaryPage);
contentsPage.Name = "Contents";
dataSourceSheet.Copy(Type.Missing, contentsPage); //copy the sheet AFTER contents page
dataSheet = (Excel.Worksheet)outputSheets.get_Item(outputSheets.Count);
dataSheet.Name = "Raw Data";
//fails with outputSheets.Count == 5
if (outputSheets.Count != 3)
{
throw new Exception("Error, there are too many sheets here!");
}