Как объединить 2 файла Excel в один файл Excel с разделенными листами?
У меня есть 2 файла Excel, и я хочу объединить их в 1 файл с отдельными листами..
Я пытаюсь выполнить слияние с Microsoft.Office.Interop.Excel, но я не понимаю, как это использовать?
для Яхии:
здесь методы для получения диапазона, который я хочу объединить их с другим файлом:
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;
}
и здесь я хочу объединить значения:
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;
}
}
проблема в том, что xlNewSheet не имеет никакого свойства, которое может получить значения.. как я могу добавить??
1 ответ
Не совсем уверен, в чем вопрос... но для слияния файлов Excel программно посмотрите на отправную точку:
- http://www.dotnetspider.com/forum/242869-How-merge-two-excel-sheets-c.aspx
- http://www.dotnetperls.com/excel
Если вам нужно больше информации, то покажите какой-нибудь код и расскажите, что именно не работает...
РЕДАКТИРОВАТЬ - согласно комментарию:
Ты можешь использовать xlNewSheet.Cells
чтобы получить диапазон и использовать его Columns
/Rows
/Item
свойства изменяют / добавляют любые значения, которые вы хотите - т.е. в вашем случае от valueArray
...