FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 9819|回复: 7
打印 上一主题 下一主题

关与NPOI导出多表头操作

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-6 17:56:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 leetle 于 2014-3-9 17:13 编辑

NPOI导出多表头操作,  搞不定的加我Q909994561      
        /// <summary>
        /// 通过NPOI,读模版表格,生成报表(针对不规则表格处理)
        /// </summary>
        /// <param name="fileName">报表名称</param>
        /// <param name="context">上下文件</param>
        /// <param name="parms">第几行几列存储的内容,格式:1|1</param>
        /// <param name="templatePath">模版文件</param>
        /// <param name="filePath">生成后的文件位置</param>
        /// <returns></returns>
        public static bool ExportExcel(string fileName, HttpContext context, //
            Dictionary<string, object> parms, string templatePath, out string filePath)
        {
            InitializeWorkbook(context, templatePath);

            var sheet = _hssfworkbook.GetSheetAt(0);

            foreach (var o in parms)
            {
                var key = o.Key;
                var value = o.Value.ToString();

                var row = Convert.ToInt32(key.Split('|')[0]);
                var col = Convert.ToInt32(key.Split('|')[1]);


                var dataRow = sheet.GetRow(row);
                var newCell = dataRow.GetCell(col);
                if (newCell == null)
                    continue;
                newCell.SetCellValue(value);
            }

            var sequence = SequenceGuid.GetGuid();//new SequenceService().CreateSequence("LH");

            var uploadpath = ConfigurationManager.AppSettings["上传文件路径"];

            //该目录设定死,最好不要修改
            var fileTemp = (string.Format(@"{0}/temp/{1}/", uploadpath, DateTime.Now.ToString("yyyy-MM-dd"))); //

            if (!LHDirFile.XFileExists(context.Server.MapPath(fileTemp)))
            {
                LHDirFile.XCreateDir(context.Server.MapPath(fileTemp));
            }
            //

            uploadpath = string.Format(@"{0}/{1}{2}.xls", fileTemp, fileName, sequence);

            //创建文件            
            using (var fileStream = new FileStream(context.Server.MapPath(uploadpath), FileMode.Create))
            {
                _hssfworkbook.Write(fileStream);
                fileStream.Close();
            }

            filePath = uploadpath;

            return true;
        }


调用过程
====================================
                    string filePath;
                    var data = SHelper.Search(string.Format(@"select name,cardno,sex,
birthday=CONVERT(varchar(6), birthday, 112),
insurance_begindate=CONVERT(varchar(6), insurance_begindate, 112),
用工形式='合同',在岗状况='在岗',婚姻状况='',生育状况='',月工资=declare_base,通讯地址='建设西路11号',联系电话='55199320',变更原因=''
from [dbo].[ss_member]
where deleteflag=0
                                                                        and id in ({0})", ids));


                    var parms = new Dictionary<string, object>();
                    parms.Clear();

                    if (data != null && data.Tables.Count > 0&&data.Tables[0].Rows.Count>0)
                    {
                        parms.Add("3|1", data.Tables[0].Rows[0]["name"]);
                        parms.Add("3|3", data.Tables[0].Rows[0]["cardno"]);
                        parms.Add("3|5", data.Tables[0].Rows[0]["sex"]);
                        parms.Add("3|8", data.Tables[0].Rows[0]["insurance_begindate"]);

              
                        NpoiUtility.ExportExcel("LH", Context, parms, Constant.YlbxContinue, out filePath);
                        Response.Redirect(string.Format(@"{0}", filePath), false);
                    }
                }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2014-3-6 18:52:29 | 只看该作者
样例模板 能否共享一下,或者截个图也行
板凳
 楼主| 发表于 2014-3-6 20:29:26 | 只看该作者
希望大家在做高难度的报表,可以帮到大家
地板
发表于 2014-3-7 17:36:23 | 只看该作者
thanks  受启发了 呵呵
6#
发表于 2014-3-12 12:39:25 | 只看该作者
InitializeWorkbook(context, templatePath);
这个是那个命名空间的???
7#
发表于 2014-3-26 17:09:55 | 只看该作者
能不能做个demo啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-4-29 00:25 , Processed in 0.049829 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表