Копирование ячеек Excel - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня, столкнулся с проблемой, не могу понять почему выпадает исключение, собственно есть код, который открывает 2 Excel файла и из одного листа файла 1, копирует данные в другой файл (Excel 2013):
Microsoft.Office.Interop.Excel.Application ObjWorkExcelInput = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook ObjWorkBookInput = ObjWorkExcelInput.Workbooks.Open(textBoxPromotionalSales.Text, 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);
            Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheetInput = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBookInput.Sheets["Promotional-Sales"];
            Microsoft.Office.Interop.Excel.Application ObjWorkExcelOutput = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook ObjWorkBookOutput = ObjWorkExcelOutput.Workbooks.Open(@"C:\Users\pnavitsk\Desktop\Работа\Выходной файл (тестовый)", 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);
            Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheetOutput = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBookOutput.Sheets["Promotional sales"];
            var lastCell = ObjWorkSheetInput.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell);
            try
            {
                ObjWorkSheetOutput.Cells.Clear();
                for (int i = 1; i < (int)lastCell.Row; i++)
                    for (int j = 1; i < (int)lastCell.Column; j++)
                        ObjWorkSheetOutput.Cells[i, j].Value2 = ObjWorkSheetInput.Cells[i, j].Value2;
                //ObjWorkBookOutput.Sheets["Promotional sales"].Copy(Before: ObjWorkBookInput.Sheets["Promotional-Sales"]);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            finally
            {
                ObjWorkBookInput.Close(false, Type.Missing, Type.Missing);
                ObjWorkBookOutput.Close(true, Type.Missing, Type.Missing);
                ObjWorkExcelInput.Quit(); ObjWorkExcelOutput.Quit(); GC.Collect();
            }
Собственно вопрос, что я делаю не так? Само исключение такое:

Решение задачи: «Копирование ячеек Excel»

textual
Листинг программы
for (int i = 1; i < (int)lastCell.Row; i++)
                    for (int j = 1; j < (int)lastCell.Column; j++)
                    {
ObjWorkSheetOutput.Cells[i, j] = ObjWorkSheetInput.Cells[i, j];
                    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5