Как записать массив string в одну ячейку Excel - C#

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

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

Добрый день, друзья! Возникла небольшая проблемка с записей массива string[], который получается из заполнения MultiLine TextBox, в одну ячейку Excel. А так же значения из ComboBox не записываются в Excel. Помогите разобраться, пожалуйста, в чем ошибка? Сразу же прошу прощения за **вно-код =(
Листинг программы
  1. public void AddTask_Click(object sender, EventArgs e)
  2. {
  3. if (MessageBox.Show("Вы действительно хотите добавить новую задачу?", "Проверка", MessageBoxButtons.YesNo) == DialogResult.No)
  4. return;
  5. InitializeComponent();
  6. int iLastRow, iLastCol;
  7. Excel.Application xlApp = new Excel.Application(); //открыть эксель
  8. System.Diagnostics.Process excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL").Last();
  9. Excel.Workbook xlWB = xlApp.Workbooks.Open(@"\\Reestr\Reestr.xlsx", 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); //открыть файл
  10. Excel.Worksheet xlSht = (Excel.Worksheet)xlWB.Sheets[1]; //получить 1 лист
  11. iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //последняя заполненная строка в столбце А
  12. iLastCol = xlSht.Cells[1, xlSht.Columns.Count].End[Excel.XlDirection.xlToLeft].Column; //последний заполненный столбец в 1-й строке
  13. // Нахождение максимального значения
  14. int maxID = 0;
  15. for(int i =1;i<iLastRow+1;i++ )
  16. {
  17. int temp = 0;
  18. Int32.TryParse(xlSht.Cells[i, 1].Text, out temp);
  19. if (temp > maxID)
  20. maxID = temp;
  21. }
  22. int maxPrioritet = 0;
  23. for (int i = 1; i < iLastRow + 1; i++)
  24. {
  25. int temp = 0;
  26. Int32.TryParse(xlSht.Cells[i, 1].Text, out temp);
  27. if (temp > maxPrioritet)
  28. maxPrioritet = temp;
  29. }
  30. // Запись в ячейки экселя
  31. xlSht.Cells[iLastRow + 1, 1] = maxID + 1;
  32. xlSht.Cells[iLastRow + 1, 2] = textBox1.Text; //ВОТ ТУТ ОШИБКА!!
  33. xlSht.Cells[iLastRow + 1, 3] = textBox2.Text; //ВОТ ТУТ ОШИБКА!!
  34. xlSht.Cells[iLastRow + 1, 4] = comboBox1.Text; //ВОТ ТУТ ОШИБКА!!
  35. xlSht.Cells[iLastRow + 1, 5] = Environment.UserName;
  36. xlSht.Cells[iLastRow + 1, 6] = "Добавлена";
  37. xlSht.Cells[iLastRow + 1, 9] = dateTimePicker1.Value.Date;
  38. xlSht.Cells[iLastRow + 1, 10] = comboBox2.Text; //ВОТ ТУТ ОШИБКА!!
  39. xlSht.Cells[iLastRow + 1, 11] = 0;
  40. xlSht.Cells[iLastRow + 1, 12] = maxPrioritet+1;
  41. xlSht.Cells[iLastRow + 1, 13] = comboBox3.Text; //ВОТ ТУТ ОШИБКА!!
  42. xlSht.Cells[iLastRow + 1, 14] = DateTime.Today.Date;
  43. xlSht.Cells[iLastRow + 1, 15] = textBox3.Text; //ВОТ ТУТ ОШИБКА!!
  44. xlWB.Close(true); //закрыть и сохранить книгу
  45. xlApp.Quit();
  46. excelProc.Kill();
  47. GC.Collect();
  48. MessageBox.Show("Задача успешно добавлена!");
  49. }

Решение задачи: «Как записать массив string в одну ячейку Excel»

textual
Листинг программы
  1. xlSht.Cells[iLastRow + 1].Select();
  2. xlApp.Visible = true;
  3. ;// Сюда breakpoint. Поводить мышкой по всем textBox.Text, переменным и посмотреть что сейчас на листе в Excel

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


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

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

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

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

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

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