Как найти следующую пустую строку и экспортировать данные формы, чтобы преуспеть, используя C # - PullRequest
0 голосов
/ 22 сентября 2018

В настоящее время я могу экспортировать каждый текстовый блок в отдельную ячейку в строке 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;
   }

1 Ответ

0 голосов
/ 24 сентября 2018

Это то, что вы хотите достичь?

   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 exist!");
       }
       else
       {
           var excelApp = new Microsoft.Office.Interop.Excel.Application();
           var workbook = excelApp.Workbooks.Open(myPath);
           Worksheet worksheet = workbook.ActiveSheet as Worksheet;

      Microsoft.Office.Interop.Excel.Range lastRow = worksheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
           int lastUsedRow = last.Row;
           int newRow = lastUsedRow + 1;

           Range range1 = worksheet.Cells[newRow , 1] as Range;
           range1.Value2 = textBox1.Text;
           Range range2 = worksheet.Cells[newRow , 2] as Range;
           range2.Value2 = textBox2.Text;
           Range range3 = worksheet.Cells[newRow , 3] as Range;
           range3.Value2 = textBox3.Text;
           Range range4 = worksheet.Cells[newRow , 4] as Range;
           range4.Value2 = textBox4.Text;
           Range range5 = worksheet.Cells[newRow , 5] as Range;
           range5.Value2 = textBox5.Text;
           Range range6 = worksheet.Cells[newRow , 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;
       }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...