Проверка корректности адреса ячейки MS Excel - C#

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

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

Уважаемые коллеги! Делаю форму импорта данных из файла Excel в БД (MS Access). Для удобства пользователю предлагается выбрать несколько диапазонов ячеек (в TextBox'ах), из которых будут подтягиваться данные. Задача - проверить корректность адресов диапазонов ячеек MS Excel. Понимаю, что решение может лежать в плоскости RegExp. Однако хочется сделать проще. В настоящий момент делаю следующим образом:
Листинг программы
  1. Microsoft.Office.Interop.Excel.Application exc = new Microsoft.Office.Interop.Excel.Application();
  2. exc.Visible = false;
  3. exc.Workbooks.Open(pathTB.Text);
  4. try
  5. {
  6. exc.Range[range[0]].Rows.Count.ToString();
  7. exc.Range[range[1]].Rows.Count.ToString();
  8. exc.Range[range[2]].Rows.Count.ToString();
  9. exc.Range[range[3]].Rows.Count.ToString();
  10. }
  11. catch
  12. {
  13. MessageBox.Show("Определите, пожалуйста, корректно диапазоны данных в формате A:A, либо A1:A10, после чего повторите попытку.", "Ошибка с диапазонами данных!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  14. exc.Workbooks[1].Close(false);
  15. exc.Quit();
  16. return;
  17. }
Прошу подсказать - кто каким образом решает подобные задачи? Может быть есть готовый шаблон RegExp?

Решение задачи: «Проверка корректности адреса ячейки MS Excel»

textual
Листинг программы
  1. //последняя заполненная строка в столбце А
  2. int iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row;  
  3. //последний заполненный столбец в 1-й строке
  4. int iLastCol = xlSht.Cells[1, xlSht.Columns.Count].End[Excel.XlDirection.xlToLeft].Column;
  5. Rng = xlSht.Range["A1", xlSht.Cells[iLastRow,iLastCol]];

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут