语言吧技术网欢迎您投稿,程序员的世界我懂你!=====>点此登录投搞
当前位置: 首页 >>ASP.NET >>ASP.NET实战 >>导出EXCEL >>通用NPOI组件导出EXCEL

通用NPOI组件导出EXCEL

2018/9/10 10:48:51 0人评论 6823次 作者:admin

NPOI组件导出EXCEL…

导入以下命名空间:

using NPOI.HSSF.UserModel;

using NPOI.SS.UserModel;

using NPOI.XSSF.UserModel;


        /// <summary>

        /// 数据导出处理

        /// </summary>

        /// <param name="HdhCmsFields">导出字段集,用“,”分隔</param>

        /// <param name="strSql">原始SQL查询语句</param>

        public void HdhCmsOutExport(string HdhCmsFields,string strSql)

        {

            string HdhCmsFileName="";

            HdhCmsFileName = "数据导出" + DateTime.Now.ToString("yyyyMMdd")+".xls";

            Sql = "select (row_number() over(order by smid asc)) as StuId, * from (" + strSql + ")HdhCms where 1=1 " + Touj + " order by smid desc";

            DataTable HdhCmsDt = DataCon.GetDataTable(Sql);

            MemoryStream stream = (MemoryStream)outHdhCmsExoprtExcel(HdhCmsDt, HdhCmsFields);

            return File(stream.ToArray(), "application/vnd.ms-excel", HdhCmsFileName);

        }


        /// <summary>

        /// 数据导出处理

        /// </summary>

        /// <param name="HdhCmsDt">要导出的数据的DATATABLE</param>

        /// <param name="HdhFields">导出的字段名要与DATATABLE中的列名一致</param>

        public object outHdhCmsExoprtExcel(DataTable HdhCmsDt, string HdhFields)

        {

            HSSFWorkbook workbook = new HSSFWorkbook(); // 工作簿

            ISheet sheet = workbook.CreateSheet("aaaa"); // 工作表

            IRow row = sheet.CreateRow(0);

            int RowNo = 1;

            row.CreateCell(0).SetCellValue("编号");

            for (int i = 0; i < HdhFields.Split(',').Length; i++)

            {

                row.CreateCell(i + 1).SetCellValue(HdhFields.Split(',')[i]);

            }

            if (HdhCmsDt.Rows.Count > 0)

            {

                foreach (DataRow Dr in HdhCmsDt.Rows)

                {

                    IRow SheedRow = sheet.CreateRow(RowNo);

                    SheedRow.CreateCell(0).SetCellValue(RowNo.ToString());

                    for (int i = 0; i < HdhFields.Split(',').Length; i++)

                    {

                        if (Dr[HdhFields.Split(',')[i]].ToString().IndexOf("Content/Upload/SUpDir") > -1)

                        {


                        }

                        else

                        {

                            SheedRow.CreateCell(i + 1).SetCellValue(Dr[HdhFields.Split(',')[i]].ToString());

                        }

                    }

                    RowNo++;

                }

            }

            MemoryStream stream = new MemoryStream();

            workbook.Write(stream);

            return stream;

        }


相关文章

CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-15 http://www.yuyanba.com
欢迎【广东省 广州市】的朋友
内容与素材部分来源于网络,如有侵权请告知删除
分享按钮