• NPOI读取Excel


    项目环境:Webform framework4.0

    dll版本:NPOI2.0  dotnet2.0版本

    这两天要做个excel导入的功能,想到以前用过NPOI,感觉很给力,今天写了个DEMO,写的时候还算顺利,毕竟以前用过,还是想记录下来,留着以后直接复制

    把excel数据读取并拼接到DataTable中,为了使用SqlBulkCopy一次性拷贝到数据库中

     1             IWorkbook workbook = null;
     2             string fileExt = Path.GetExtension(path);
     3             try
     4             {
     5                 using (var file = new FileStream(path, FileMode.Open, FileAccess.Read))
     6                 {
     7                     if (fileExt == ".xls")
     8                         workbook = new HSSFWorkbook(file);
     9                     else if (fileExt == ".xlsx")
    10                         workbook = new XSSFWorkbook(file);
    11                     else
    12                     {
    13 
    14                     }
    15                 }
    16             }
    17             catch (Exception ex)
    18             { }
    View Code
     1 //获取sheet页
     2             var sheet = workbook.GetSheetAt(0);
     3             //获取总条数
     4             int RowCount = sheet.LastRowNum;
     5             //获取sheet页的第一条数据
     6             IRow firstRow = sheet.GetRow(0);
     7             //获取总列数
     8             int CellCount = firstRow.LastCellNum;
     9 
    10             DataTable dt = new DataTable();
    11             for (int j = 0; j < CellCount; j++)
    12             {
    13                 string value = firstRow.GetCell(j).StringCellValue;
    14                 DataColumn dc = new DataColumn(value, typeof(String));
    15                 dt.Columns.Add(dc);
    16             }
    17 
    18             for (int i = 1; i <= RowCount; i++)
    19             {
    20                 IRow row = sheet.GetRow(i);
    21                 DataRow dr = dt.NewRow();
    22                 for (int j = 0; j < CellCount; j++)
    23                 {
    24                     object obj = row.GetCell(j);
    25                     if (obj != null)
    26                         dr[j] = obj.ToString();
    27                     else
    28                         dr[j] = "";
    29                 }
    30                 dt.Rows.Add(dr);
    31             }
    View Code

    最后使用SqlBulkCopy

    SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction);
    sqlbulkcopy.DestinationTableName = "Table_1";//数据库中的表名
    sqlbulkcopy.WriteToServer(dataset.Tables[0]);
  • 相关阅读:
    第二次公共考试,判断错题集
    云助理里面查询渠道的方法
    公司第二阶段公共考试题
    云助理绑定手机及密码找回方法
    oracle的卸载
    pl/sql进阶--例外处理
    oracle--dba和表的备份与恢复
    oracle触发器
    oracle视图
    pl/sql的介绍
  • 原文地址:https://www.cnblogs.com/manglu/p/3751756.html
Copyright © 2020-2023  润新知