如何使用C#Wpf中的Datarow写入excel文件

时间:2014-03-26 15:09:17

标签: c# wpf excel

我有一个Wpf应用程序,我想在其中插入数据行到excel文件。在将数据行添加到数据表时,我希望将该数据行保存在Excel文件中。

Datarow应该在此C#语句之前保存在excel文件中:

table.Rows.Add(数据行);

每次将Datarow添加到datatable时,都会重复此过程。它不应该替换Excel文件中的先前数据,而应该每次都将datarow附加到excel文件。

1 个答案:

答案 0 :(得分:1)

尝试以下代码并确保从引用中添加Microsoft.Office.Interop.Excel dll引用。

如果您希望可以进一步优化代码,但下面的代码可以帮助您进行基本的理解

using System;
using System.Data;
using System.Windows;
using Excel = Microsoft.Office.Interop.Excel;

namespace DatagridDemo
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            //Define Datatble
            DataTable dt = new DataTable();

            //Create Excel Application Instance
            Excel.Application ExcelApp = new Excel.Application();

            //Create workbook Instance and open the workbook from the below location
            Excel.Workbook ExcelWorkBook = ExcelApp.Workbooks.Open(@"E:\test.xlsx");

            dt.Columns.Add("EmpNo", typeof(int));
            dt.Columns.Add("EmpName", typeof(string));


            for (int i = 1; i < dt.Columns.Count + 1; i++)
            {
                ExcelApp.Cells[1, i] = dt.Columns[i - 1].ColumnName;
            }

            //Create DataRow
            DataRow dr = dt.NewRow();

            dr[0] = 1;
            dr[1] = "ABC";

            ExcelApp.Cells[2, 1] = dr[0].ToString();
            ExcelApp.Cells[2, 2] = dr[1].ToString();

            dt.Rows.Add(dr);

            dr = dt.NewRow();

            dr[0] = 2;
            dr[1] = "DEF";

            ExcelApp.Cells[3, 1] = dr[0].ToString();
            ExcelApp.Cells[3, 2] = dr[1].ToString();

            dt.Rows.Add(dr);

            dr = dt.NewRow();

            dr[0] = 3;
            dr[1] = "XYZ";

            ExcelApp.Cells[4, 1] = dr[0].ToString();
            ExcelApp.Cells[4, 2] = dr[1].ToString();

            dt.Rows.Add(dr);

            //Save the workbook
            ExcelWorkBook.Save();

            //Close the workbook
            ExcelWorkBook.Close();

            //Quit the excel process
            ExcelApp.Quit();
        }
    }
}