小弟之前寫了一篇多個word合併的功能
最近想到word可以合併,excel應該也可以合併
首先準備好兩個測試的excel檔(1.xls,2.xls)放在c槽裡,執行完程式就產生3.xls的合併檔了
WinForm(c#)ExcelCombine.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel;//這個要先加入Microsoft.Office.Interop.Excel參考 using System.Reflection;//這個記得參考 namespace WindowsApplication1 { public partial class ExcelCombine : Form { public ExcelCombine() { InitializeComponent(); } private void ExcelCombine_Load(object sender, EventArgs e) { object missing = Missing.Value; string oFirstXls = @"c:\1.xls";//excel檔1 string oSecondXls = @"c:\2.xls";//excel檔2 string oOutputXls = @"c:\3.xls";//合併檔,excel檔3 Excel.Application excelApp = new Excel.ApplicationClass(); Excel.Workbook wbook1 = excelApp.Workbooks.Open(oFirstXls, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);//載入excel檔1 Excel.Workbook wbook2 = excelApp.Workbooks.Open(oSecondXls, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);//載入excel檔2 wbook1.Worksheets.Copy(missing, wbook2.Sheets["Sheet1"]);//在excel檔2的Sheet1之後插入所有excel檔1的Sheet //wbook1.Worksheets.Copy(wbook2.Sheets["Sheet1"], missing);//在excel檔2的Sheet1之前插入所有excel檔1的Sheet wbook2.SaveAs(oOutputXls, missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);//另存excel檔3 wbook1.Close(missing, missing, missing); wbook2.Close(missing, missing, missing); excelApp.Quit(); } } }
執行結果:
excel檔1
excel檔2
合併檔,excel檔3
參考網址:
http://msdn.microsoft.com/zh-tw/library/microsoft.office.tools.excel.worksheet.copy(VS.80).aspx
http://topic.csdn.net/t/20061110/17/5149046.html
# re: [C#]WinForm利用Microsoft.Office.Interop.Excel的Worksheets.Copy來合併多個Excel檔, Posted by weilin1223 on 2010/1/28 下午 03:14 回覆
前輩好, 請問我目前電腦是安裝office2007, 輸出後的檔案若在安裝2003的電腦上開啟會出錯且內容是亂碼, 請問這樣該怎麼解決呢??謝謝您!