下面是一个使用 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 到 Excel

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

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