当前位置: 首页 > 编程语言 > C#

如何在C#中将两个Excel工作簿合并为一个工作簿?分享

时间:2023-04-11 11:33:41 C#

C#如何将两个Excel工作簿合并为一个工作簿?让我们考虑一下,我在本地有两个Excel文件(工作簿)。每个Excel工作簿有3个工作表。假设WorkBook1有Sheet1、Sheet2、Sheet3Workbook2有Sheet1、Sheet2、Sheet3。所以在这里我需要将这两个excel工作簿合并到一个新的excel工作簿中,假设Workbook3将有6个工作表(workbook1和workbook2的组合)。我需要代码在不使用任何第三方工具的情况下在c#中执行此操作。如果3rd方工具是免费版本,那很好。这是一个将两本书合并成一本新书的工作示例,希望它能给你一个想法:usingSystem;使用Excel=Microsoft.Office.Interop.Excel;使用System.Reflection;namespaceMergeWorkBooks{classProgram{staticvoidMain(string[]args){Excel.Applicationapp=newExcel.Application();app.Visible=true;app.Workbooks.Add("");app.Workbooks.Add(@"c:MyWorkWorkBook1.xls");app.Workbooks.Add(@"c:MyWorkWorkBook2.xls");for(inti=2;i更简单的解决方案是复制工作表本身,而不是它们的单元格。此方法采用任意数量的Excel文件路径并将它们复制到一个新文件中:privatestaticvoidMergeWorkbooks(stringdestinationFilePath,paramsstring[]sourceFilePaths){app.DisplayAlerts=false;//覆盖时无提示//创建新工作簿(index=1)和开源工作簿(index=2,3,...)WorkbookdestinationWb=app.Workbooks.Add();foreach(varsourceFilePathinsourceFilePaths){app.Workbooks.Add(源文件路径);}//复制所有工作表Worksheetafter=destinationWb.Worksheets[1];for(intwbIndex=app.Workbooks.Count;wbIndex>=2;wbIndex--){工作簿wb=app.Workbooks[wbIndex];for(intwsIndex=wb.Worksheets.Count;wsIndex>=1;wsIndex--){工作表ws=wb.Worksheets[wsIndex];ws.Copy(之后:之后);}}//在保存目的地之前关闭源文档。否则,保存将失败(intwbIndex=2;wbIndex编辑:请注意,如果工作表之间存在依赖关系,例如数据透视表、图表、公式等,您可能需要Move方法而不是Copy。否则,数据源将断开连接,一个工作表中的任何更改都不会影响另一个工作表。您正在寻找C#中的Office自动化库。下面是帮助您入门的示例代码。System.Data.Odbc.OdbcDataAdapterOdbcda;//CSV文件strConnString="Driver={MicrosoftTextDriver(*.txt;*.csv)};Dbq="+SourceLocation+";Extensions=asc,csv,tab,txt;PersistSecurityInfo=False";sqlSelect="select*from["+文件名+"]";System.Data.Odbc.OdbcConnectionconn=newSystem.Data.Odbc.OdbcConnection(strConnString.Trim());康涅狄格州打开();Odbcda=newSystem.Data.Odbc.OdbcDataAdapter(sqlSelect,conn);Odbcda.Fill(ds,DataTable);conn.Close();直接从这里编码。以上就是C#学习教程:C#中如何将两个Excel工作簿合并为一个工作簿?如果分享的所有内容对您有用,需要了解更多C#学习教程,希望您多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: