zoukankan      html  css  js  c++  java
  • 调用存储过程取到数据通过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;
            }

    
    


查看全文
  • 相关阅读:
    获取iframe中的元素
    用npm安装express后express命令找不到
    Openfire 单人聊天和多人聊天(发送消息、接收消息)
    openfire拦截数据包与发送广播
    xmpp with openfire 插件-利用Broadcast实现群
    Smack 结合 Openfire服务器,建立IM通信,发送聊天消息
    openfire默认数据库与应用系统数据库整合
    ios即时通讯客户端开发之-mac上安装MySQL
    ios即时通讯客户端开发之-mac上搭建openfire服务器
    IOS block使用中碰到的一个小坑
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10829760.html
  • Copyright © 2011-2022 走看看