zoukankan      html  css  js  c++  java
  • excel转化为table(去掉所有列值都为空的值一行,即返回有效值的DataTable)

    /// <summary>
    /// 去掉所有列值都为空的值一行,即返回有效值的DataTable
    /// </summary>
    /// <param name="stream"></param>
    /// <returns></returns>
    public static DataTable StreamToDataTableTrimTr(Stream stream)
    {
    //第一行一般为标题行。
    DataTable table = new DataTable();
    table.TableName = "经销商信息表";
    //根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档
    IWorkbook workbook = new XSSFWorkbook(stream);
    //HSSFWorkbook workbook = new HSSFWorkbook(File.Open(FilePath, FileMode.Open));//此处可以传文件的路径

    XSSFSheet sheet = (XSSFSheet)workbook.GetSheetAt(0);
    //获取excel的第一个sheet
    //获取Excel的最大行数
    int rowsCount = sheet.PhysicalNumberOfRows;
    //为保证Table布局与Excel一样,这里应该取所有行中的最大列数(需要遍历整个Sheet)。
    //为少一交全Excel遍历,提高性能,我们可以人为把第0行的列数调整至所有行中的最大列数。
    int colsCount = sheet.GetRow(0).PhysicalNumberOfCells;
    for (int i = 0; i < colsCount; i++)
    {
    table.Columns.Add(i.ToString());
    }
    for (int x = 0; x < rowsCount; x++)
    {
    if (sheet.GetRow(x) != null)
    {
    DataRow dr = table.NewRow();
    bool trIsNull = false;
    for (int y = 0; y < colsCount; y++)
    {
    string content = (null == sheet.GetRow(x).GetCell(y)) ? "" : sheet.GetRow(x).GetCell(y).ToString().Trim();
    if (!string.IsNullOrEmpty(content))
    trIsNull = true;
    dr[y] = content;
    }
    if (trIsNull)//一行中有一个值不为空,就新创建一行
    table.Rows.Add(dr);
    }
    }
    sheet = null;
    workbook = null;
    return table;
    }

  • 相关阅读:
    nodejs
    flask中flash(闪现)的使用
    flask中logger日志的使用
    flask中session的使用
    flask开启调试模式
    flask中静态文件的引入
    flask中模板引入
    python web开发屠龙刀flask
    python操作excel基础1-环境搭建
    php算法-dijkstra
  • 原文地址:https://www.cnblogs.com/ws-zpp/p/6136965.html
Copyright © 2011-2022 走看看