• 调用存储过程取到数据通过NPOI存到Excel中


     

      //调用
     public ActionResult GenerateExcel() {
                DataTable headerTable = new DataTable();
                headerTable.Columns.Add("Status_Id", Type.GetType("System.String"));
                headerTable.Columns.Add("Status_Name", Type.GetType("System.String"));
                headerTable.Columns.Add("Is_Now", Type.GetType("System.String"));
                headerTable.Columns.Add("Curr_User_Id", Type.GetType("System.String"));
                headerTable.Columns.Add("Flow_Id", Type.GetType("System.String"));
               
                DataRow headerRow = headerTable.NewRow();
                headerRow["Status_Id"] = "Status_Id";
                headerRow["Status_Name"] = "Status_Name";
                headerRow["Is_Now"] = "Is_Now";
                headerRow["Curr_User_Id"] = "Curr_User_Id";
                headerRow["Flow_Id"] = "Flow_Id";
                headerTable.Rows.Add(headerRow);

                DataTable contentTable = getDataByProc();

                generateExcelOP(headerTable, contentTable);
                ViewData["result"] = "Create successfully";
                return View("ExcelUpload");
            }


            //生成Excel

            public void generateExcelOP(DataTable headerTable,DataTable dt) {

                HSSFWorkbook workbook = new HSSFWorkbook();
                HSSFSheet sheet = workbook.CreateSheet() as HSSFSheet;


                //excel header info
                HSSFRow headerRow = sheet.CreateRow(0) as HSSFRow;
                for(int i = 0 ;i < headerTable.Columns.Count;i++){
                    HSSFCell headerCell = headerRow.CreateCell(i) as HSSFCell;
                    headerCell.SetCellValue(headerTable.Rows[0][i].ToString());
                    headerRow.Cells.Add(headerCell);
                }

                //excel content info
                for(int m =0 ;m < dt.Rows.Count;m++){
                    HSSFRow row = sheet.CreateRow((m+1)) as HSSFRow;
                    for (int n = 0; n < dt.Columns.Count;n++ )
                    {
                        HSSFCell cell = row.CreateCell(n) as HSSFCell;
                        cell.SetCellValue(dt.Rows[m][n].ToString());
                        row.Cells.Add(cell);
                    }
                }

                FileStream fs = new FileStream(@"D:dataoutput.xls", FileMode.Create);
                workbook.Write(fs);
                fs.Flush();
                fs.Close();
                workbook.Clear();
            }

     

           //获取数据

            public DataTable getDataByProc() {
                DataTable dt = new DataTable();
                string callName = "GetAuthHistory";
                string devConn = System.Configuration.ConfigurationManager.ConnectionStrings["devConn"].ToString();
                using(SqlConnection conn = new SqlConnection(devConn)){
                    SqlCommand command = new SqlCommand(callName, conn);
                    command.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] sps = {
                                         new SqlParameter("@currPage",SqlDbType.Int),
                                          new SqlParameter("@pageSize",SqlDbType.Int)
                                         };
                    sps[0].Value = 1;
                    sps[1].Value = 20;
                   foreach(SqlParameter sp in sps){
                       command.Parameters.Add(sp);
                   }
                   SqlDataAdapter sda = new SqlDataAdapter();
                   sda.SelectCommand = command;
                   sda.Fill(dt);
                }

                return dt;
            }

    
    


  • 相关阅读:
    XML HTML CSS JS的区别整理
    Python的作用域
    python文件操作总结
    python的open文件操作
    python使用struct处理二进制
    webstorm
    vue-cli项目中,配合element_ui来实现上传图片与视频到oss上。
    vue-cli项目中如何实现局部页面的刷新?
    基于cropper图片裁剪,兼容PC端与移动端
    跨域的完全讲解
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10829760.html
  • Copyright © 2020-2023  润新知