如何在c# Wpf中使用Datarow编写excel文件

本文关键字:Datarow 编写 excel 文件 Wpf | 更新日期: 2023-09-27 17:53:30

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

Datarow应该在这个c#语句之前保存在excel文件中:

table.Rows.Add(我们);

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

如何在c# Wpf中使用Datarow编写excel文件

尝试下面的代码,并确保从引用中添加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();
        }
    }
}