下面是一个使用NPOI导出DataTable到Excel的例子:

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Data;
using System.IO;
using System.Windows;

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

        private void ExportButton_Click(object sender, RoutedEventArgs e)
        {
            // 创建Excel文档
            var workbook = new HSSFWorkbook();
            var sheet = workbook.CreateSheet("Sheet1");

            // 创建表头
            var headerRow = sheet.CreateRow(0);
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                var cell = headerRow.CreateCell(i);
                cell.SetCellValue(dataTable.Columns[i].ColumnName);
            }

            // 填充数据
            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                var row = sheet.CreateRow(i + 1);
                for (int j = 0; j < dataTable.Columns.Count; j++)
                {
                    var cell = row.CreateCell(j);
                    cell.SetCellValue(dataTable.Rows[i][j].ToString());
                }
            }

            // 保存文件
            var saveFileDialog = new Microsoft.Win32.SaveFileDialog();
            saveFileDialog.FileName = "data.xls";
            saveFileDialog.Filter = "Excel文件|*.xls";
            if (saveFileDialog.ShowDialog() == true)
            {
                using (var fs = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
                {
                    workbook.Write(fs);
                }
            }
        }

        private DataTable dataTable;

        private void LoadButton_Click(object sender, RoutedEventArgs e)
        {
            // 从数据库中加载数据
            var connectionString = "Data Source=.;Initial Catalog=mydb;Integrated Security=True";
            var sql = "SELECT * FROM mytable";
            var adapter = new SqlDataAdapter(sql, connectionString);
            dataTable = new DataTable();
            adapter.Fill(dataTable);

            // 显示数据
            dataGrid.ItemsSource = dataTable.DefaultView;
        }
    }
}

在这个例子中,我们使用了NPOI的HSSFWorkbook类来创建Excel文档,CreateSheet方法创建了一个名为"Sheet1"的工作表,CreateRow方法创建了一个行,CreateCell方法创建了一个单元格,并使用SetCellValue方法设置了单元格的值。

我们首先创建了表头,然后填充了数据。最后,我们使用SaveFileDialog类来让用户选择保存文件的路径和名称,然后使用FileStream来保存Excel文档。

在我们使用NPOI之前,需要先安装NPOI库。可以在NuGet包管理器中搜索"NPOI"来安装

WPF中使用NPOI把datatable导出execl

原文地址: https://www.cveoy.top/t/topic/guQG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录