• NPOI


    //读excel数据到data中

    public static DataTable ReadXlsxData(Stream fileStream, string sheetName)
    {
    try
    {
    XSSFWorkbook hssfworkbook = new XSSFWorkbook(fileStream);
    var sheet = hssfworkbook.GetSheet(sheetName);
    IEnumerator rows = sheet.GetRowEnumerator();
    DataTable dataTable = new DataTable(sheetName);
    while (rows.MoveNext())
    {
    if (dataTable.Columns.Count == 0)
    {
    IRow row = (XSSFRow)rows.Current;
    int y = 0;
    while (true)
    {
    ICell cell = row.GetCell(y++);
    if ((cell == null) || (string.IsNullOrEmpty(cell.ToString())))
    {
    break;
    }
    dataTable.Columns.Add(cell.ToString());
    }
    }
    else
    {
    IRow row = (XSSFRow)rows.Current;
    DataRow dr = dataTable.NewRow();
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
    ICell cell = row.GetCell(i);
    if (cell == null)
    {
    dr[i] = null;
    }
    else
    {
    dr[i] = cell.ToString();
    }
    }
    dataTable.Rows.Add(dr);
    }
    }
    return dataTable;
    }
    catch
    {
    throw;

    }
    }

    //导出excel

    public void Export()
    {
    MemoryStream ms = RateDTToMS(dt);

    string fileName = commonContext.GetExcelName(ExcelName);
    if (Request.Browser.Browser == "IE")
    fileName = HttpUtility.UrlEncode(fileName);
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment;fileName=" + fileName);
    Response.BinaryWrite(ms.ToArray());
    Response.End();
    }

    /// <summary>
    /// datatable 转换成MemoryStream
    /// </summary>
    /// <param name="source">datatable</param>
    /// <returns>MemoryStream</returns>
    public MemoryStream RateDTToMS(DataTable source)
    {
    MemoryStream memoryStream = new MemoryStream();

    IWorkbook workbook = new XSSFWorkbook();
    ISheet sheet = workbook.CreateSheet();
    IRow headerRow = sheet.CreateRow(0);

    int indexDeptName = 0;
    int indexModule = 1;
    int indexCatType = 2;
    int indexOwner = 3;
    int indexJobName = 4;
    int indexJobCnName = 5;
    int indexJobCount = 6;
    int indexAllCount = 7;
    int indexRate = 8;

    // handling header.
    headerRow.CreateCell(indexDeptName).SetCellValue("归属部门");
    headerRow.CreateCell(indexModule).SetCellValue("归属模块");
    headerRow.CreateCell(indexCatType).SetCellValue("归属功能");
    headerRow.CreateCell(indexOwner).SetCellValue("负责人");
    headerRow.CreateCell(indexRate).SetCellValue("占比(%)");
    // handling value.
    int rowIndex = 1;
    foreach (DataRow dr in source.Rows)
    {
    IRow dataRow = sheet.CreateRow(rowIndex);
    dataRow.CreateCell(indexDeptName).SetCellValue(dr["DepartmentName"].ToString());
    dataRow.CreateCell(indexModule).SetCellValue(dr["ModuleName"].ToString());
    dataRow.CreateCell(indexCatType).SetCellValue(dr["CattypeName"].ToString());
    dataRow.CreateCell(indexOwner).SetCellValue(dr["FJCOwner"].ToString());
    dataRow.CreateCell(indexRate).SetCellValue(rate);
    rowIndex++;
    }
    workbook.Write(memoryStream);
    memoryStream.Flush();
    return memoryStream;
    }

  • 相关阅读:
    ES9新内容概括
    TensorFlow --- 01初识
    机器学习算法 --- SVM (Support Vector Machine)
    机器学习算法 --- Naive Bayes classifier
    机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm
    机器学习算法 --- Decision Trees Algorithms
    机器学习算法 --- 逻辑回归及梯度下降
    机器学习算法 --- 线性回归
    机器学习基础 --- pandas的基本使用
    机器学习基础 --- numpy的基本使用
  • 原文地址:https://www.cnblogs.com/maomaokuaile/p/4309112.html
Copyright © 2020-2023  润新知