I have 2 Excel files and I want to merge them into 1 file with separate sheets.
I am trying to merge with Microsoft.Office.Interop.Excel, but I do not understand how to use this?
for Yahia:
here are the methods for getting the range that I want to combine with another file:
internal object[,] GetValues(string filename) { object[,] values = new object[0, 0]; try { Workbook workBook = _excelApp.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); values = ExcelScanIntenal(workBook); workBook.Close(false, filename, null); Marshal.ReleaseComObject(workBook); } catch { } return values; } private object[,] ExcelScanIntenal(Workbook workBookIn) { object[,] valueArray = new object[0, 0]; Worksheet sheet = (Worksheet)workBookIn.Sheets[1]; Range excelRange = sheet.UsedRange; valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault); return valueArray; }
and here I want to combine the values:
internal void AddWorksheetToExcelWorkbook(string filename, string worksheetName, object[,] valueArray) { Microsoft.Office.Interop.Excel.Application xlApp = null; Workbook xlWorkbook = null; Sheets xlSheets = null; Worksheet xlNewSheet = null; try { xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) return; xlWorkbook = xlApp.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); xlSheets = xlWorkbook.Sheets as Sheets; xlNewSheet = (Worksheet)xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing); xlNewSheet.Name = worksheetName; xlWorkbook.Save(); xlWorkbook.Close(Type.Missing, Type.Missing, Type.Missing); xlApp.Quit(); } finally { Marshal.ReleaseComObject(xlNewSheet); Marshal.ReleaseComObject(xlSheets); Marshal.ReleaseComObject(xlWorkbook); Marshal.ReleaseComObject(xlApp); xlApp = null; } }
the problem is that xlNewSheet does not have any property that can get values. How can i add?