C# 导出 excel 复杂格式 html导出

/// <summary>
        /// 夜班津贴统计导出
        /// </summary>
        public void ExportOtStat(string data)
        {
            var input = data.DeserializeObject<StructExportOtStat>();
            List<Usp_PRO_ExportOtStatResult> list = null;
            using (var context = PRODBHelper.DataContext)
            {
                list = context.Usp_PRO_ExportOtStat(input.beginDate, input.endDate).ToList();
                //var output = results.ToList().SerializeObject();
                //HttpContext.Current.Response.Write(output);
            }
            //HttpContext.Current.Response.End();
            StringBuilder sbdHTML = new StringBuilder();
            DateTime StartDate = input.beginDate;
            DateTime EndDate = input.endDate;
            Hashtable hshData = new Hashtable();
            string[] arrColumns = {"序号",
                                   "员工编号",
                                   "姓名",
                                   "开始时间",
                                   "结束时间",
                                   "夜班日期",
                                   "津贴标准",
                                   "夜班次数",
                                   "津贴总数"};
            sbdHTML.Append("<HTML>");
            sbdHTML.Append(GetExcelTitleHTML(StartDate));
            sbdHTML.Append("<div style=\"height:50px\"></div>");
            sbdHTML.Append(GetExcelInfo(StartDate));
            sbdHTML.Append("<div style=\"height:10px\"></div>");
            sbdHTML.Append("<Table border=1>");
            sbdHTML.Append(GetOTExcelHeaderHTML(arrColumns));
            foreach (Usp_PRO_ExportOtStatResult item in list)
            {
                sbdHTML.Append(GetExcelRowHTML(item));
            }
            sbdHTML.Append("</Table>");
            sbdHTML.Append("</HTML>");
            HttpResponse resp;
            resp = System.Web.HttpContext.Current.Response;
            resp.Charset = "GB2312";
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename="
                + System.Web.HttpUtility.UrlEncode("信息总中心" + StartDate.Month.ToString() + "月夜班津贴统计.xls", System.Text.Encoding.UTF8));
            resp.Write(sbdHTML.ToString());
            resp.End();
        }
        private string GetExcelTitleHTML(DateTime ReportDate)
        {
            StringBuilder sbdHTML = new StringBuilder();
            sbdHTML.AppendFormat("<div align=\"center\" style=\"width:60%; font-size:large; font-weight:bold;\" >{0}年{1}月夜班津贴统计表</div>",
                ReportDate.Year.ToString(),ReportDate.Month.ToString());
            return sbdHTML.ToString();
        }
        private string GetExcelInfo(DateTime ReportDate)
        {
            StringBuilder sbdHTML = new StringBuilder();
            sbdHTML.Append("<div align=\"left\" style=\"width:60%\">部门(盖章):信息总中心</div>");
            return sbdHTML.ToString();
        }
        private string GetOTExcelHeaderHTML(string[] arrColumns)
        {
            StringBuilder sbdHTML = new StringBuilder();
            sbdHTML.Append("<tr>");
            for (int i = 0; i < arrColumns.Length; i++)
            {
                sbdHTML.AppendFormat("<td>{0}</td>", arrColumns[i]);
            }
            sbdHTML.Append("</tr>");
            return sbdHTML.ToString();
        }
        private string GetExcelRowHTML(Usp_PRO_ExportOtStatResult item)
        {
            StringBuilder sbdHTML = new StringBuilder();
            sbdHTML.Append("<tr>");
            sbdHTML.AppendFormat("<td>{0}</td>", item.ID);
            sbdHTML.AppendFormat("<td>{0}</td>", item.UserID);
            sbdHTML.AppendFormat("<td>{0}</td>", item.UserName);
            sbdHTML.AppendFormat("<td>{0}</td>", item.BeginTime);
            sbdHTML.AppendFormat("<td>{0}</td>", item.EndTime);
            sbdHTML.AppendFormat("<td>{0}</td>", item.NightShiftDates);
            sbdHTML.AppendFormat("<td>{0}</td>", item.SalaryNormal.ToString());
            sbdHTML.AppendFormat("<td>{0}</td>", item.NightShiftNum.ToString());
            sbdHTML.AppendFormat("<td>{0}</td>", item.SalarySum.ToString());
            sbdHTML.Append("</tr>");
            return sbdHTML.ToString();
        }
时间: 2024-10-16 15:39:11

C# 导出 excel 复杂格式 html导出的相关文章

goalng导出excel(csv格式)

最近项目中有个小需求,需要将查询结果导出到excel.之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encoding/csv的包,看了下发现可以导出csv文件,大家都知道csv文件其实就是文本格式的excel文件,可以直接通过excel打开或是导入excel. 看起来挺好的,问题如愿解决,但是事实证明对已一个还不成熟的语言或是库最好还是先测一下的好.兴冲冲的卸了测试例子,成功导出了一个text.csv文件,一

.Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法)

.Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构) public class ExcelController : Controller { // // GET: /Excel/ Models.zbwxglEntities myMdl = new Models.zbwxglEntities(); /// <summary> /// 第一种方法,利用文件输出流进行读写操作 /// <

关于project导出excel的格式问题

1.如出现提示格式问题的时候,这样设置: 在"工具"→"选项"→"安全性"中,在"旧式格式"下选择"允许加载使用旧式文件格式或非默认文件格式的文件(A)"单选框.保存后重复步骤(1),即可导出Excel表. 2.关于project任务层级导出excel的问题 1.制作好Project文件. 2.最前面插入一列:大纲级别. 3.新建Excel文件,Copy Project所有内容到Excel工作表中. 4.在

Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框

在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI.这里我们用Apache POI!我们先去Apach

Java POI 导出EXCEL经典实现 Java导出Excel

转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有

基于SSM的POI导入导出Excel实战第二篇-导出EXCEL

业务需求:这里我以产品信息为例,用于POI导入导出Excel实战的操作对象 需求分析:我们要导出的数据格式比较简单,其实就是待导出的表(视图)的数据,如下图所示: 实现思路:A.会发现待导出的数据列表是一个矩阵式的格式,即二维的形式 B.其中的头部id name unit price stock 等字段field是固定不变的,将会充当excel的头部 C.以数据行的角度观察数据列表,会发现每一行每一列的值都是B所指的那些字段一一对应的取值value D.由此可以得出这些数据组织是由每一行数据组成

java poi导出excel response.setHeader设置导出文件名抓包不合法及处理导出文件名为action方法名

问题出现1: spring MVC 框架下使用poi导出excel,设置导出文件名:response.setHeader("Content-Disposition", "attachment;filename=" +sourceId+"_"+dateString+".xls"); 该方法进行抓包测试时,显示BUG url不合法. 解决办法:对 "attachment;filename=" +sourceId

laravel-admin 自定义导出excel功能,并导出图片

https://www.jianshu.com/p/91975f66427d 最近用laravel-admin在做一个小项目,其中用到了excel导出功能. 但是laravel-admin自带的导出功能不带图片,并且导出的数据有很多冗余的字段,并非我所需要的功能. 所以参考官方文档调整代码,实现了自定义导出excel文件,并且带上图片: 步骤如下: 1. 安装laravel-excel插件 可参考laravel5.5 中使用laravel-excel composer require maatw

c# 导入导出excel表格式

c#使用代码导入excel时,当遇到纯数字且大于15位时会出现编码混乱(表现为科学计数法),要想呈现与excel表中纯数字格式和在数据库中呈现纯数字,操作如下: 完成即可. 导出取决于导入的内容排版.