Epplus 使用案例
//拷贝
sheet.Cells["6:12"].Copy(sheet.Cells["1:2"]);
//边框无
sheet.Cells[(i * 6 + i + j), 2].Style.Border.Right.Style = ExcelBorderStyle.None;
//设边框颜色
sheet.Cells[5, 5 + i].Style.Border.Right.Style = ExcelBorderStyle.Thin;
sheet.Cells[5, 5 + i].Style.Border.Right.Color.SetColor(Color.FromArgb(223, 223, 223));
//背景色
sheet.Cells[5, 5 + i].Style.Fill.PatternType = ExcelFillStyle.Solid;
sheet.Cells[5, 5 + i].Style.Fill.BackgroundColor.SetColor(Color.FromArgb(89, 89, 89));
//垂直居中
sheet.Cells[5, 5 + i].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
//上下居中
sheet.Cells[5, 5 + i].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
//字体颜色
sheet.Cells[5, 5 + i].Style.Font.Color.SetColor(Color.FromArgb(255, 255, 255));
using (ExcelPackage p = new ExcelPackage(fi))
{
foreach (ExcelWorksheet sheet in p.Workbook.Worksheets)
{
//Template
switch (selectProject)
{
case "0":
for (int i = 2; i < rtList.Count; i++)
{
sheet.Cells["6:12"].Copy(sheet.Cells[(i * 6 + i - 1) + ":" + (i * 6 + i + 5)]);
if (i == rtList.Count - 1)
{
for (int j = -1; j < 6; j++)
{
sheet.Cells[(i * 6 + i + j), 2].Style.Border.Right.Style = ExcelBorderStyle.None;
sheet.Cells[(i * 6 + i + j), 1].Style.Border.Right.Style = ExcelBorderStyle.None;
}
}
}
break;
case "1":
for (int i = 2; i < rtList.Count; i++)
{
sheet.Cells["6:7"].Copy(sheet.Cells[(6 + i + i - 2) + ":" + (6 + i + i - 1)]);
if (i == rtList.Count - 1)
{
sheet.Cells[(6 + i + i - 2 ), 1, (6 + i + i - 1),1].Style.Border.Right.Style = ExcelBorderStyle.None;
sheet.Cells[(6 + i + i - 2), 2, (6 + i + i - 1), 2].Style.Border.Right.Style = ExcelBorderStyle.None;
sheet.Cells[(6 + i + i - 2), 3, (6 + i + i - 1), 3].Style.Border.Left.Style = ExcelBorderStyle.None;
sheet.Cells[(6 + i + i - 2), 2, (6 + i + i - 1), 2].Style.Border.Left.Style = ExcelBorderStyle.None;
}
}
break;
case "2":
for (int i = 2; i < rtList.Count; i++)
{
sheet.Cells["6:9"].Copy(sheet.Cells[(i * 4 + 2) + ":" + (i * 4 + 5)]);
if (i == rtList.Count - 1)
{
for (int j = 0; j < 4; j++)
{
sheet.Cells[(i * 4 + 2 + j), 2].Style.Border.Right.Style = ExcelBorderStyle.None;
sheet.Cells[(i * 4 + 2 + j), 1].Style.Border.Right.Style = ExcelBorderStyle.None;
}
}
}
break;
}
//Title
sheet.Cells[1, 2].Value = bs.MEASURES_NM.ToString();
sheet.Cells[2, 2].Value = bs.MEASURES_OVERVIEW.ToString();
sheet.Cells[3, 2].Value = bs.BEGIN_DATE.ToString() + " ~ " + bs.END_DATE.ToString();
//TableTitle
sheet.Cells[5, 1].Value="分類";
sheet.Cells[5, 2].Value="媒体属性";
sheet.Cells[5, 3].Value="ASP/ASID/AS名/運営者";
sheet.Cells[5, 4].Value="項目";
for (int i = 0; i < rtList[0].DETAIL_TITLE.Count(); i++)
{
sheet.Cells[5, 5 + i].Value = rtList[0].DETAIL_TITLE[i].ToString().Replace("年", "/").Replace("月", "").Substring(2);
}
//Contents
int currentrow = 6;
for (int i = 1; i < rtList.Count; i++)
{
switch (selectProject)
{
case "0":
#region すべて
//1 DataRow
sheet.Cells[currentrow, 1].Value = rtList[i].PROM_NM;
sheet.Cells[currentrow, 2].Value = rtList[i].SITE_CATEGORY;
sheet.Cells[currentrow, 3].Value = rtList[i].ASP_ID;
sheet.Cells[currentrow, 4].Value = MBProject.PV数.ToString();
for (int j = 0; j < rtList[i].DETAIL.PV_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow, 5 + j].Value = rtList[i].DETAIL.PV_CNT_LIST[j].CalculateValue;
}
//2 DataRow
sheet.Cells[currentrow + 1, 3].Value = rtList[i].AS_ID;
sheet.Cells[currentrow + 1, 4].Value = MBProject.Click数.ToString();
for (int j = 0; j < rtList[i].DETAIL.CL_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow + 1, 5 + j].Value = rtList[i].DETAIL.CL_CNT_LIST[j].CalculateValue;
}
//3 DataRow
sheet.Cells[currentrow + 2, 3].Formula = "HYPERLINK(\"" + rtList[i].URL + "\",\"" + rtList[i].AS_NM + "\")";
sheet.Cells[currentrow + 2, 4].Value = MBProject.Click率.ToString();
for (int j = 0; j < rtList[i].DETAIL.CL_RATE_LIST.Count(); j++)
{
sheet.Cells[currentrow + 2, 5 + j].Value = rtList[i].DETAIL.CL_RATE_LIST[j].FormateValue;
}
//4 DataRow
sheet.Cells[currentrow + 3, 3].Value = rtList[i].UNEI_USER_NAME;
sheet.Cells[currentrow + 3, 4].Value = MBProject.申込数.ToString();
for (int j = 0; j < rtList[i].DETAIL.MOSHI_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow + 3, 5 + j].Value = rtList[i].DETAIL.MOSHI_CNT_LIST[j].CalculateValue;
}
//5 DataRow
sheet.Cells[currentrow + 4, 4].Value = MBProject.CV率.ToString();
for (int j = 0; j < rtList[i].DETAIL.CV_RATE_LIST.Count(); j++)
{
sheet.Cells[currentrow + 4, 5 + j].Value = rtList[i].DETAIL.CV_RATE_LIST[j].FormateValue;
}
//6 DataRow
sheet.Cells[currentrow + 5, 4].Value = MBProject.契約数.ToString();
for (int j = 0; j < rtList[i].DETAIL.KEIYAKU_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow + 5, 5 + j].Value = rtList[i].DETAIL.KEIYAKU_CNT_LIST[j].CalculateValue;
}
//7 DataRow
sheet.Cells[currentrow + 6, 4].Value = MBProject.契約率.ToString();
for (int j = 0; j < rtList[i].DETAIL.KEIYAKU_RATE_LIST.Count(); j++)
{
sheet.Cells[currentrow + 6, 5 + j].Value = rtList[i].DETAIL.KEIYAKU_RATE_LIST[j].FormateValue;
}
currentrow += 7;
#endregion
break;
case "1":
#region 申込数
//1 DataRow 申込数
sheet.Cells[currentrow, 1].Value = rtList[i].PROM_NM;
sheet.Cells[currentrow, 2].Value = rtList[i].SITE_CATEGORY;
sheet.Cells[currentrow, 3].Formula = "HYPERLINK(\"" + rtList[i].URL + "\",\"" + rtList[i].AS_NM + "\")";
sheet.Cells[currentrow + 1, 3].Value = rtList[i].UNEI_USER_NAME;
sheet.Cells[currentrow, 4].Value = MBProject.申込数.ToString();
for (int j = 0; j < rtList[i].DETAIL.MOSHI_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow, 5 + j].Value = rtList[i].DETAIL.MOSHI_CNT_LIST[j].CalculateValue;
}
currentrow += 2;
#endregion
break;
case "2":
#region 申込数・CV率・契約数・契約率
//1 DataRow 申込数
sheet.Cells[currentrow, 1].Value = rtList[i].PROM_NM;
sheet.Cells[currentrow, 2].Value = rtList[i].SITE_CATEGORY;
sheet.Cells[currentrow, 3].Value = rtList[i].ASP_ID;
sheet.Cells[currentrow, 4].Value = MBProject.申込数.ToString();
for (int j = 0; j < rtList[i].DETAIL.MOSHI_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow, 5 + j].Value = rtList[i].DETAIL.MOSHI_CNT_LIST[j].CalculateValue;
}
//2 DataRow CV率
sheet.Cells[currentrow + 1, 3].Value = rtList[i].AS_ID;
sheet.Cells[currentrow + 1, 4].Value = MBProject.CV率.ToString();
for (int j = 0; j < rtList[i].DETAIL.CV_RATE_LIST.Count(); j++)
{
sheet.Cells[currentrow + 1, 5 + j].Value = rtList[i].DETAIL.CV_RATE_LIST[j].FormateValue;
}
//3 DataRow 契約数
sheet.Cells[currentrow + 2, 3].Formula = "HYPERLINK(\"" + rtList[i].URL + "\",\"" + rtList[i].AS_NM + "\")";
sheet.Cells[currentrow + 2, 4].Value = MBProject.契約数.ToString();
for (int j = 0; j < rtList[i].DETAIL.KEIYAKU_CNT_LIST.Count(); j++)
{
sheet.Cells[currentrow + 2, 5 + j].Value = rtList[i].DETAIL.KEIYAKU_CNT_LIST[j].CalculateValue;
}
//4 DataRow 契約率
sheet.Cells[currentrow + 3, 3].Value = rtList[i].UNEI_USER_NAME;
sheet.Cells[currentrow + 3, 4].Value = MBProject.契約率.ToString();
for (int j = 0; j < rtList[i].DETAIL.KEIYAKU_RATE_LIST.Count(); j++)
{
sheet.Cells[currentrow + 3, 5 + j].Value = rtList[i].DETAIL.KEIYAKU_RATE_LIST[j].FormateValue;
}
currentrow += 4;
#endregion
break;
}
}
}
p.Workbook.Worksheets[1].View.TabSelected = true;
p.Save();
}
Epplus 使用案例的更多相关文章
- 建议收藏:.net core 使用导入导出Excel详细案例,精心整理源码已更新至开源模板
还记得刚曾经因为导入导出不会做而发愁的自己吗?我见过自己前同事因为一个导出改了好几天,然后我们发现虽然有开源的库但是用起来却不得心应手,主要是因为百度使用方案的时候很多方案并不能解决问题. 尤其是尝试 ...
- [转]比NPOI更討喜的Excel元件-EPPlus
本文转自:http://blog.darkthread.net/post-2012-05-12-epplus.aspx 前陣子發表 [潛盾機]將檔案結構匯成Excel文件,從網友佑翔的留言(特此感謝) ...
- 一次 C# 查詢數據庫 算法優化的案例
最近有次在修改某段程式時,發現一段程式算法看起來簡單. 但背後因為多次查詢數據庫,導致效能問題. 這段程式主要是利用 EPPLUS 讀取 Excel 資料,檢查資料是否已存在數據庫中,若有就將已存在的 ...
- .NET CORE webapi epplus 导入导出 (实习第一个月的笔记)
最近有个需求就是网页表格里面的数据导出到excel 于是从各位前辈的博客园搜了搜demo 大部分非为两类 都是用的插件NPOI和Eppluse ,因此在这里就介绍Eppluse 用法,还有就是在博 ...
- 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...
- SQL Server内存遭遇操作系统进程压榨案例
场景: 最近一台DB服务器偶尔出现CPU报警,我的邮件报警阈(请读yù)值设置的是15%,开始时没当回事,以为是有什么统计类的查询,后来越来越频繁. 探索: 我决定来查一下,究竟是什么在作怪,我排查的 ...
- solr_架构案例【京东站内搜索】(附程序源代码)
注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...
- Yeoman 官网教学案例:使用 Yeoman 构建 WebApp
STEP 1:设置开发环境 与yeoman的所有交互都是通过命令行.Mac系统使用terminal.app,Linux系统使用shell,windows系统可以使用cmder/PowerShell/c ...
- 了不起的 nodejs-TwitterWeb 案例 bug 解决
了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...
随机推荐
- [MySQL] Group Commit理解
简单的方法理解MySQL Group Commit原理 一个摆渡将乘客从A点传输到B点 MySQL 5.0 行为 在MySQL 5.0中,摆渡会在A点按顺序搭载乘客,并且传送到B点.A点和B点的来回行 ...
- Netty内存池
参考资料:http://blog.csdn.net/youaremoon/article/details/47910971 主要思想:buddy allocation,jemalloc
- (1)jquery基本用法
引入jquery 本地引用 <script src="jquery-3.2.1.js"></script> 网络引用 谷歌CDN <script sr ...
- Hrbust 2363 Symmys (Manacher + DP)
题目链接 Hrbust 2363 来源 “科林明伦杯”哈尔滨理工大学第七届程序设计团队赛 Problem J 题意 给出一个长度为$1e6$的字符串,求最小可重回文子串覆盖数量 首先Manach ...
- POJ 2505 A multiplication game [博弈]
题意:两个人做游戏,每个人都可以在自己的回合里将数p乘以2到9之间的一个数,初始时p=1,谁先将p乘到大于等于n就算赢. 思路:一开始我算sg值,结果算来算去都没算明白... 后来看了别人题解,才豁然 ...
- Loj #6164. 「美团 CodeM 初赛 Round A」数列互质
link : https://loj.ac/problem/6164 莫队傻题,直接容斥做. #include<bits/stdc++.h> #define maxn 100005 #de ...
- Java线程池ThreadPoolExecutor类源码分析
前面我们在java线程池ThreadPoolExecutor类使用详解中对ThreadPoolExector线程池类的使用进行了详细阐述,这篇文章我们对其具体的源码进行一下分析和总结: 首先我们看下T ...
- 无法获得VMCI 驱动程序的版本: 句柄无效。
写在前面 最近在电脑上安装了VMware虚拟机,在安装系统的使用,总提示错误“无法获得VMCI 驱动程序的版本: 句柄无效.”.最近刚买的电脑,也不会是系统的问题吧,为了装个虚机,总不能重装系统吧,没 ...
- iOS UI Element Usage
Bars The Status Bar
- 写在php设计模式前
在学校写代码的时候,看过许多代码,跟着学长学过一段时间.找工作的时候由于种种原因,从事于本专业, 最近重拾php,充充电,找个好工作. 以前项目中设计模式用的比较多的也就是单例模式,看书中回顾写过的代 ...