NPOI读取excel文件

获取excel里面的数据 放进datatable

 

if (this.fuUpload.HasFile)
{

   //根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档
    HSSFWorkbook workbook = new HSSFWorkbook(this.fuUpload.FileContent);

   //获取excel的第一个sheet
    HSSFSheet sheet = workbook.GetSheetAt(0);
 
    DataTable table = new DataTable();
   //获取sheet的首行
    HSSFRow headerRow = sheet.GetRow(0);

   //一行最后一个方格的编号 即总的列数
    int cellCount = headerRow.LastCellNum;
 
    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
    {
        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
        table.Columns.Add(column);
    }
   //最后一列的标号  即总的行数
    int rowCount = sheet.LastRowNum;
 
    for (int i = (sheet.FirstRowNum + 1); i < sheet.LastRowNum; i++)
    {
        HSSFRow row = sheet.GetRow(i);
        DataRow dataRow = table.NewRow();
 
        for (int j = row.FirstCellNum; j < cellCount; j++)
        {
            if (row.GetCell(j) != null)
                dataRow[j] = row.GetCell(j).ToString();
        }
 
        table.Rows.Add(dataRow);
    }
 
    workbook = null;
    sheet = null;
 
    this.gvExcel.DataSource = table;
    this.gvExcel.DataBind();
}

posted on   linzheng  阅读(33960)  评论(12编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异

导航

统计

点击右上角即可分享
微信分享提示