导出Excel

  #region 导出待审核数据
        /// <summary>
        /// 营运导出医院端提交的待审核的备案产品数据,供营运线下审核
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnExportDownLoad_Click(object sender, EventArgs e)
        {
            HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            ISheet sheet1 = book.CreateSheet("模版说明");
            ISheet sheet = book.CreateSheet("导入数据");
            string templeDes = "说明:此模版格式可以导入,导入最大商品条数为:500;模板列除了申请主ID、平台ID、医院ID其他列均可改动。";
            string templeDes2 = "注意:审核状态只能为11或12,其中11为审核通过,12为审核拒绝";

            //获取数据
            string keyValue = "";
            foreach (GridDataItem dataItem in rd_BakApplyList.MasterTableView.Items)
            {
                RadioButton ckb = dataItem.FindControl("rbSelect") as RadioButton;
                if (ckb.Checked)
                {
                    //获取列表主键值
                    keyValue = dataItem.GetDataKeyValue("ID").ToString();
                }
            }

            //获取数据
            DataTable data = MangeBakApplyBO.GetToAuditBakApplyExcelList(GetUser().CurrentPlatID, keyValue);
            //设置Ecxel Head 格式
            HSSFCellStyle style = (HSSFCellStyle)book.CreateCellStyle();
            HSSFFont font = (HSSFFont)book.CreateFont();
            font.FontName = "黑体";
            font.FontHeightInPoints = 12;
            style.SetFont(font);
            style.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.GREY_40_PERCENT.index;

            //模版说明sheet 
            IRow row0 = sheet1.CreateRow(0);
            HSSFCell cell0 = (HSSFCell)row0.CreateCell(0);
            cell0.SetCellValue(templeDes);
            cell0.CellStyle = style;


            IRow row01 = sheet1.CreateRow(1);
            HSSFCell cell01 = (HSSFCell)row01.CreateCell(0);
            cell01.SetCellValue(templeDes2);

            cell01.CellStyle = style;

            //导入数据sheet 
            if (data.Rows.Count > 0)
            {
                IRow row1 = sheet.CreateRow(0);
                for (var j = 0; j < data.Columns.Count; j++)
                {
                    HSSFCell cell = (HSSFCell)row1.CreateCell(j);
                    cell.SetCellValue(data.Columns[j].ColumnName.ToString());
                    sheet.SetColumnWidth(j, 20 * 256);
                    cell.CellStyle = style;
                }
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    IRow row = sheet.CreateRow(i + 1);
                    for (int j = 0; j < data.Columns.Count; j++)
                    {
                        HSSFCell cell = (HSSFCell)row.CreateCell(j);
                        cell.SetCellValue(data.Rows[i][j].ToString());
                        //设置列宽
                        sheet.SetColumnWidth(j, 20 * 256);
                    }
                }
            }
            //写入到客户端
            MemoryStream ms = new MemoryStream();
            book.Write(ms);
            Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", DateTime.Now.ToString("yyyyMMddHHmmssfff")));
            Response.BinaryWrite(ms.ToArray());
            book = null;
            ms.Close();
            ms.Dispose();
        }
        #endregion

 

<%--用于解决导出时Ajax问题--%>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <Triggers>
            <asp:PostBackTrigger ControlID="btnExportEmpty" />
        </Triggers>
    </asp:UpdatePanel>

 

posted @ 2017-02-20 16:46  安之&若素  阅读(143)  评论(0)    收藏  举报