C#Excel应用程序中的额外工作表

C#Excel应用程序中的额外工作表,c#,excel,C#,Excel,我正在用C#编写一个Excel应用程序,它可以实现一些数据可视化。分析的第一阶段是将数据从输入工作簿中的单个工作表复制到执行分析的输出工作簿中的新工作表 这在我的笔记本电脑上正常运行,但当我为同一应用程序生成代码的客户端运行时,它们会创建一些额外的工作表,这会导致代码崩溃 在客户端的PC上调试应用程序是相当困难的,因此我很难理解在两台不同的机器上如何可能产生不同的结果 下面是安装代码,任何帮助都会非常有用。使用Microsoft.Office.Interop.Excel 14 Excel.Wor

我正在用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!");
}
Excel.Workbooks wbs=excelApp.Workbooks;
Excel.工作簿数据源=wbs.Open(infle);
//从源文件获取数据表
Excel.Sheets dataSourceSheets=dataSource.Worksheets;
Excel.Worksheet dataSourceSheet=(Excel.Worksheet)dataSourceSheets.get_项(1);
//创建新工作簿
dataOutput=wbs.Add();
outputSheets=数据输出。工作表;
//确保输出中只有2张图纸
int osc=输出表。计数;
对于(int i=2;i
您和用户是否拥有相同版本的Excel?可以考虑:客户的Excel默认使用的Excel工作表数量与您自己的不同。您可以在自己的计算机上通过打开Excel,单击“文件-选项”进行测试。在“常规”选项卡中,将
包括这么多的工作表
更改为一个新的数字,看看这是否会影响您的计划可能需要重新计算
osc
?太好了,谢谢!问题解决了@user3561813是否有任何方法可以设置excel的所有“配置”值以匹配我的值(例如,通过预应用的配置文件),以防出现其他配置差异?@Max老实说,我不确定这样做的最佳方法。也许向董事会发布后续问题将提供更大的帮助。对不起,我帮不上忙了。