В настоящее время я могу экспортировать каждый текстовый блок в отдельную ячейку в строке 2. Однако он может записывать только в то место, которое перезаписывает предыдущие данные.Я пытаюсь выяснить, как сделать так, чтобы он идентифицировал следующую доступную пустую строку после каждой отправки.Ниже приведен мой текущий код, который записывается только в строку 2. Это мой первый проект на C #, поэтому у меня нет особых знаний по C #.
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;
}