Как записать массив string в одну ячейку Excel - C#
Формулировка задачи:
Добрый день, друзья! Возникла небольшая проблемка с записей массива string[], который получается из заполнения MultiLine TextBox, в одну ячейку Excel. А так же значения из ComboBox не записываются в Excel. Помогите разобраться, пожалуйста, в чем ошибка? Сразу же прошу прощения за **вно-код =(
public void AddTask_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Вы действительно хотите добавить новую задачу?", "Проверка", MessageBoxButtons.YesNo) == DialogResult.No)
return;
InitializeComponent();
int iLastRow, iLastCol;
Excel.Application xlApp = new Excel.Application(); //открыть эксель
System.Diagnostics.Process excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL").Last();
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); //открыть файл
Excel.Worksheet xlSht = (Excel.Worksheet)xlWB.Sheets[1]; //получить 1 лист
iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //последняя заполненная строка в столбце А
iLastCol = xlSht.Cells[1, xlSht.Columns.Count].End[Excel.XlDirection.xlToLeft].Column; //последний заполненный столбец в 1-й строке
// Нахождение максимального значения
int maxID = 0;
for(int i =1;i<iLastRow+1;i++ )
{
int temp = 0;
Int32.TryParse(xlSht.Cells[i, 1].Text, out temp);
if (temp > maxID)
maxID = temp;
}
int maxPrioritet = 0;
for (int i = 1; i < iLastRow + 1; i++)
{
int temp = 0;
Int32.TryParse(xlSht.Cells[i, 1].Text, out temp);
if (temp > maxPrioritet)
maxPrioritet = temp;
}
// Запись в ячейки экселя
xlSht.Cells[iLastRow + 1, 1] = maxID + 1;
xlSht.Cells[iLastRow + 1, 2] = textBox1.Text; //ВОТ ТУТ ОШИБКА!!
xlSht.Cells[iLastRow + 1, 3] = textBox2.Text; //ВОТ ТУТ ОШИБКА!!
xlSht.Cells[iLastRow + 1, 4] = comboBox1.Text; //ВОТ ТУТ ОШИБКА!!
xlSht.Cells[iLastRow + 1, 5] = Environment.UserName;
xlSht.Cells[iLastRow + 1, 6] = "Добавлена";
xlSht.Cells[iLastRow + 1, 9] = dateTimePicker1.Value.Date;
xlSht.Cells[iLastRow + 1, 10] = comboBox2.Text; //ВОТ ТУТ ОШИБКА!!
xlSht.Cells[iLastRow + 1, 11] = 0;
xlSht.Cells[iLastRow + 1, 12] = maxPrioritet+1;
xlSht.Cells[iLastRow + 1, 13] = comboBox3.Text; //ВОТ ТУТ ОШИБКА!!
xlSht.Cells[iLastRow + 1, 14] = DateTime.Today.Date;
xlSht.Cells[iLastRow + 1, 15] = textBox3.Text; //ВОТ ТУТ ОШИБКА!!
xlWB.Close(true); //закрыть и сохранить книгу
xlApp.Quit();
excelProc.Kill();
GC.Collect();
MessageBox.Show("Задача успешно добавлена!");
}Решение задачи: «Как записать массив string в одну ячейку Excel»
textual
Листинг программы
xlSht.Cells[iLastRow + 1].Select(); xlApp.Visible = true; ;// Сюда breakpoint. Поводить мышкой по всем textBox.Text, переменным и посмотреть что сейчас на листе в Excel