При создание листа Excle выводит исключение - C#
Формулировка задачи:
Вечер добрый)
Пытаюсь создать программно лист в Excel выводит исключение:
Программный код:
Исключения из hresult: 0x008A03EC
Листинг программы
- private Excel.Application exBase = new Excel.Application();
- private Excel.Workbook excBook;
- private Excel.Worksheet excSheet;
- private Excel.Range excCells;
- public string FileName = System.Windows.Forms.Application.StartupPath + "\\" + "Base" + ".xlsx";
- ....
- ....
- public void OpenExc() //открываем привязываем
- {
- excBook = exBase.Workbooks.Open(FileName, Type.Missing, false);
- }
- public void GetExc() // заполняем датагрид
- {
- OpenExc();
- int i, j;
- excSheet = (Excel.Worksheet)excBook.Sheets[1]; ;
- dataGridView1.ColumnCount = excSheet.UsedRange.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Column;
- dataGridView1.RowCount = excSheet.UsedRange.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row - 1;
- for (i = 0; i < dataGridView1.RowCount; i++)
- for (j = 0; j < dataGridView1.ColumnCount; j++)
- {
- excCells = (Excel.Range)excSheet.Cells[i + 2, j + 1];
- this.dataGridView1[j, i].Value = excCells.Text.ToString();
- }
- }
- public void CloseExc() //закрытие
- {
- excBook.Saved = true;
- excBook.Save();
- excBook.Close();
- exBase.Quit();
- excBook = null;
- exBase = null;
- excSheet = null;
- FileName = null;
- GC.Collect();
- }
- public void WorkTime() // здесь мы проверяем есть ли нужный лист, если нет то создаем
- {
- string Mon;
- DateTime Tm = DateTime.Now;
- Mon = Tm.Month.ToString();
- if (excBook.Sheets.Count >= (int.Parse(Mon) + 1)) //1 листе данные, так что плюсуем на 1
- {
- excSheet = (Excel.Worksheet)excBook.Sheets[int.Parse(Mon)+1];
- Row=excSheet.UsedRange.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
- excSheet.Cells[Row,1] = "Время работы";
- excSheet.Cells[Row, 2] = tEnt.Tm.ToShortTimeString() + " /" + Tm.ToShortTimeString();
- excSheet.Cells[Row, 3] ="ID: "+ tEnt.Nam;
- }
- else
- {
- try
- {
- excBook.Sheets.Add(Type.Missing,2,Type.Missing,Type.Missing);
- excSheet = (Excel.Worksheet)excBook.Sheets[int.Parse(Mon) + 1]; // ошибка здесь
- excSheet.Cells[Row, 1] = "Test";
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message, "test");
- }
- }
- }
- private void Search_FormClosing(object sender, FormClosingEventArgs e) //WorkTime выполняется тут
- {
- if (MessageBox.Show("Закрыть? ", "Message", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
- e.Cancel = true;
- else
- {
- WorkTime();
- CloseExc();
- tEnt.Show();
- e.Cancel = false;
- }
- }
Решение задачи: «При создание листа Excle выводит исключение»
textual
Листинг программы
- excSheet = (Excel.Worksheet)excBook.Sheets[int.Parse(Mon) + 1]; // ошибка здесь
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д