Как объединить 2 файла Excel в один файл Excel с разделенными листами? - PullRequest
1 голос
/ 29 августа 2011

У меня есть 2 файла Excel, и я хочу объединить их в 1 файл с отдельными листами.

Я пытаюсь выполнить слияние с Microsoft.Office.Interop.Excel, но не могуПонимаете, как это использовать?

для Yahia:

вот методы для получения Range, в который я хочу объединить их с другим файлом:

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 Ответ

1 голос
/ 29 августа 2011

Не совсем уверен, в чем вопрос ... но для слияния файлов Excel программно посмотрите начальную точку:

ЕСЛИ вам нужна дополнительная информация, тогда покажите какой-нибудь код и скажите, что именно не работает ...

РЕДАКТИРОВАТЬ - согласно комментарию:

Вы можете использовать xlNewSheet.Cells, чтобы получить Range и использовать его свойства Columns / Rows / Item, которые изменяют / добавляют любые значения, которые вы хотите - т.е.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...