NPOI,将Excel表的数据存放到DataTable中


private void button1_Click(object sender, EventArgs e)
        {
            HSSFWorkbook hssfworkbook = new HSSFWorkbook();
            using (FileStream file = new FileStream(@"C:\Users\admin\Desktop\SoSo\SoSo\ExcelToDataTable\xls\8.22.xls", FileMode.Open, FileAccess.Read))
            {
                hssfworkbook = new HSSFWorkbook(file);
            }
            ISheet sheet = hssfworkbook.GetSheetAt(0);
            DataTable dt = GetTable(sheet);
            PrintDataTable(dt);
        }
        /// <summary>
        /// 将单元页数据存放至DataTable中
        /// </summary>
        /// <param name="sheet"></param>
        /// <returns></returns>
        public DataTable GetTable(ISheet sheet)
        {
            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
            DataTable dt = new DataTable();
            rows.MoveNext();
            HSSFRow row = (HSSFRow)rows.Current;
            for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)
            {
                //dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString()); 
                //将第一列作为列表头 
                dt.Columns.Add(row.GetCell(j).ToString());
            }
            while (rows.MoveNext())
            {
                row = (HSSFRow)rows.Current;
                DataRow dr = dt.NewRow();
                for (int i = 0; i < row.LastCellNum; i++)
                {
                    NPOI.SS.UserModel.ICell cell = row.GetCell(i);
                    if (cell == null)
                    {
                        dr[i] = null;
                    }
                    else
                    {
                        dr[i] = cell.ToString();
                    }
                }
                dt.Rows.Add(dr);
            }
            return dt;
        }
        /// <summary>
        /// 打印DataTable中的内容
        /// </summary>
        /// <param name="dt"></param>
        public void PrintDataTable(DataTable dt)
        {
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string str = dt.Rows[i][0] + ";" + dt.Rows[i][1] + ";" + dt.Rows[i][2] + ";" + dt.Rows[i][3] + ";" + dt.Rows[i][4] + ";" + dt.Rows[i][5] + ";" + dt.Rows[i][6] + ";" + dt.Rows[i][7];
                    Console.WriteLine(str);
                }
            }
        }
可以使用以下代码将 C# DataTable 数据导入到 Excel : ```csharp using System.IO; using System.Data; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; // DataTable 对象 DataTable dataTable = new DataTable(); // Excel 文件路径 string filePath = "D:\\data.xlsx"; // 创建 Excel 工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); // 创建 Excel 工作 ISheet sheet = workbook.CreateSheet("Sheet1"); // 创建头行 IRow headerRow = sheet.CreateRow(0); // 设置头 for (int i = 0; i < dataTable.Columns.Count; i++) { headerRow.CreateCell(i).SetCellValue(dataTable.Columns[i].ColumnName.ToString()); } // 填充数据行 for (int i = 0; i < dataTable.Rows.Count; i++) { IRow dataRow = sheet.CreateRow(i + 1); for (int j = 0; j < dataTable.Columns.Count; j++) { dataRow.CreateCell(j).SetCellValue(dataTable.Rows[i][j].ToString()); } } // 保存 Excel 文件 using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) { workbook.Write(fs); } ``` 其,`dataTable` 是需要导出的 DataTable 对象,`filePath` 是导出的 Excel 文件路径。此外,需要使用 NPOI 库,可以通过 NuGet 包管理器安装。在代码,首先创建了一个空的 Excel 工作簿和工作,然后创建头行,设置头信息。接着,使用循环填充数据行,最后通过 FileStream 将 Excel 文件保存到指定路径。注意,此处使用的是 XSSFWorkbook,可以导出 xlsx 格式的 Excel 文件。如果需要导出 xls 格式的文件,需要使用 HSSFWorkbook。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值