Как найти следующую пустую строку в excel и экспортировать в нее данные?
В настоящее время я могу экспортировать каждое текстовое поле в отдельную ячейку в строке 2. Однако он может записывать только в то место, которое перезаписывает предыдущие данные. Я пытаюсь понять, как заставить его идентифицировать следующую доступную пустую строку после каждой отправки. Ниже приведен мой текущий код, который записывается только в строку 2.
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; Microsoft.Office.Interop.Excel.Sheets xlBigSheet; object misValue; String myPath; private void Button1_Click(object sender, EventArgs e) { string myPath = @"C:\\Users\\N0m4d\\Desktop\\Longhouse\\database.xlsx"; // this must be full path. FileInfo fi = new FileInfo(myPath); if (!fi.Exists) { Console.Out.WriteLine("file doesn't exists!"); } else { var excelApp = new Microsoft.Office.Interop.Excel.Application(); var workbook = excelApp.Workbooks.Open(myPath); Worksheet worksheet = workbook.ActiveSheet as Worksheet; Range range1 = worksheet.Cells[2, 1] as Range; range1.Value2 = textBox1.Text; Range range2 = worksheet.Cells[2, 2] as Range; range2.Value2 = textBox2.Text; Range range3 = worksheet.Cells[2, 3] as Range; range3.Value2 = textBox3.Text; Range range4 = worksheet.Cells[2, 4] as Range; range4.Value2 = textBox4.Text; Range range5 = worksheet.Cells[2, 5] as Range; range5.Value2 = textBox5.Text; Range range6 = worksheet.Cells[2, 6] as Range; range6.Value2 = textBox6.Text; excelApp.Visible = true; workbook.Save(); //workbook.Close(); textBox1.Text = string.Empty; textBox2.Text = string.Empty; textBox3.Text = string.Empty; textBox4.Text = string.Empty; textBox5.Text = string.Empty; textBox6.Text = string.Empty; xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBigSheet.get_Item("Sheet1"); Microsoft.Office.Interop.Excel.Range last = xlWorkSheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing); int lastUsedRow = last.Row; getData(lastUsedRow + 1); } } private void getData(int lastRow_) { lastRow_ = xlWorkSheet.Cells.Find( "*", xlWorkSheet.Cells[1, 1], misValue, Microsoft.Office.Interop.Excel.XlLookAt.xlPart, Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, Microsoft.Office.Interop.Excel.XlSearchDirection.xlPrevious, misValue, misValue, misValue).Row + 1; }
Что я уже пробовал:
Пробовал несколько предложений от google, но я не совсем понимаю, как изменить их в соответствии с моими потребностями.