将数据插入现有的excel文件c#

时间:2017-10-09 10:43:34

标签: c# excel

我有一个excel文件。它有样式,例如:table,color,.....(如下图所示)所以,我希望将数据从datagridview插入到excel(第5行和表中的数据exsit)。我的代码可以工作但是数据没有表中存在并删除了最后一行。

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(filePath);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.ActiveSheet;
for (int i = 0; i < dataGridView3.Rows.Count - 1; i++)
{
    for (int j = 0; j < dataGridView3.Columns.Count; j++)
    {
        worksheet.Cells[i + 4, j + 1] = dataGridView3.Rows[i].Cells[j].Value.ToString();
    }
}
app.Quit();

enter image description here

1 个答案:

答案 0 :(得分:0)

请尝试以下代码:

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
string fileName = "YOUR_EXCEL_FILE";

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(fileName);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

for (int i = 0; i < dataGridView3.Rows.Count - 1; i++)
{
    for (int j = 0; j < dataGridView3.Columns.Count; j++)
    {
        xlWorkSheet.Cells[i + 4, j + 1] = dataGridView3.Rows[i].Cells[j].Value.ToString();
    }
}

xlWorkBook.SaveAs(YOUR_PATH+ ".xlsx");
object misValue = System.Reflection.Missing.Value;
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
xlWorkSheet = null;
xlWorkBook = null;
xlApp = null;


Process.Start("" + YOUR_PATH + ".xlsx");