反射导出excel案例
1.代码案例:
protected void btnExportExcel_Click(object sender, EventArgs e)
{
SetSearchValue();
Dictionary<string, string> titles = new Dictionary<string, string>();
titles.Add("ProductName", "产品名称");
titles.Add("DanOrShuang", "单机/双机");
titles.Add("SN1", "SN1");
titles.Add("SN2", "SN2");
titles.Add("InstallQTY", " 安装数量");
titles.Add("ServerName", "服务器名称");
titles.Add("Area", " 区域");
titles.Add("CustomerName", " 客户名称");
titles.Add("CinemaName", "影院名称");
SII_ExcelExportUtil.ExcelExport("Tenancy Equipment", "Tenancy Equipment", this, _bll.ExportExcel(_search), titles);
}
======================
public class SII_ExcelExportUtil:ExcelExportUtil
{
public static void ExcelExport(string FileName, string sheetName, Page page, IList list,Dictionary<string,string> Titles)
{
new SII_ExcelExportUtil().ExcelExportData(FileName, sheetName, page, list, Titles);
}
}
2.
----------------
public virtual bool ExcelExportData(string FileName, string sheetName, Page page, IList list, Dictionary<string, string> Titles)
{
Excel.Application m_xlApp = null;
string path;
string floder;
GetPath(FileName, page, out path, out floder);
bool result = false;
//if (list != null && list.Count > 0)
if (Titles!=null && Titles.Count>0)
{
int rowNum = list.Count;//行数
int columnNum = Titles.Count;//列数
m_xlApp = new Excel.Application();
m_xlApp.DisplayAlerts = false;//不显示更改提示
m_xlApp.Visible = false;
Excel.Workbooks workbooks = m_xlApp.Workbooks;
Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
try
{
worksheet.Name = sheetName;
string[,] datas = new string[rowNum + 1, columnNum];
int columnIndex = 0;
foreach (KeyValuePair<string, string> item in Titles)
{
datas[0, columnIndex] = item.Value;
columnIndex++;
}
Excel.Range range = SetColumsStyle(columnNum, worksheet);
if (list != null && list.Count > 0)
{
PropertyInfo[] Columns = list[0].GetType().GetProperties();
for (int index = 0; index < list.Count; index++)
{
//在当前行中,逐列获得数据
int cIndex = 0;
foreach (KeyValuePair<string, string> item in Titles)
{
PropertyInfo pro = Columns.First(p => p.Name == item.Key);
string value = "";
if (pro != null)
{
object resultValue = pro.GetValue(list[index], null);
if (resultValue is DateTime)
{
value = Convert.ToDateTime(resultValue).ToString("yyyy/MM/dd");
}
else value = resultValue == null ? "" : resultValue.ToString();
}
datas[index + 1, cIndex] = value;
cIndex++;
}
}
}
range = SetRowData(m_xlApp, path, rowNum, columnNum, worksheet, datas, range);
workbook.SaveAs(path);
result = true;
}
catch (Exception ex)
{
}
finally
{
EndReport(m_xlApp);
}
HttpDown(path, page, floder);
}
return result;
}
-----------
private Excel.Range SetRowData(Excel.Application m_xlApp, string path, int rowNum, int columnNum, Excel.Worksheet worksheet, string[,] datas, Excel.Range range)
{
Excel.Range fchR = worksheet.Range[worksheet.Cells[1, 1], worksheet.Cells[rowNum + 1, columnNum]];
fchR.Value2 = datas;
worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
m_xlApp.WindowState = Excel.XlWindowState.xlMinimized;
range = worksheet.Range[worksheet.Cells[1, 1], worksheet.Cells[rowNum + 1, columnNum]];
//range.Interior.ColorIndex = 15;//15代表灰色
range.Font.Size = 9;
range.RowHeight = 14.25;
//range.Borders.LineStyle = 1;
range.HorizontalAlignment = 1;
ActiveWindow(m_xlApp);
//workbook.SaveCopyAs(path);
return range;
}
反射导出excel案例的更多相关文章
- 反射导出 Excel
/// <summary> /// List 数据导出Excel /// </summary> /// <param name="list">数 ...
- SSM poi通过模板 反射导出excel
1 import java.lang.reflect.Field; 2 import java.lang.reflect.Method; 3 import java.util.Iterator; 4 ...
- 1、jxl导入/导出excel案例,黏贴即可运行
package junit.test; import java.io.File; import java.io.IOException; import java.util.ArrayList; imp ...
- jxl导入/导出excel(网上的案例)
jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...
- jxl导入/导出excel
1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOException; import ...
- 导出Excel(终极版)
/** * 导出excel 案例 */ public void exportExcel(){ long beginTime = System.currentTimeMillis(); HttpServ ...
- NPOI操作EXCEL(四)——反射机制批量导出excel文件
前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...
- C# 导入导出excel文件案例
个人总结导出excel报表的案例: //导出报表 protected void btnExport_Click(object sender, EventArgs e) { List<ProOut ...
- Java基于注解和反射导入导出Excel
代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...
随机推荐
- 一个MP3播放的插件jPlayer
Jplayer小样 最近应公司要求需要一个MP3播放的插件,网上找了很多插件,看来看去还是jPlayer用着最舒服也最容易扩展.所以就找了个资料研究了下,简单做了个小DEMO.支持实时控制列表,常 ...
- Sql Server存储过程和函数浅谈
今天给大家总结一下sql server中的存储过程和函数.本人是小白,里面内容比较初级,大神不喜勿喷 自行飘过就是.. 首先给大家简单列出sql server中的流控制语句,后面会用到的^_^ sql ...
- 【Java】【jquery】ajax垃圾问题
1.暗示HTML.JSP文件本身使用UTF-8格公式 2.HTML的head加: <META http-equiv="Content-Type" content=" ...
- 动态传递参数到DevExpress.XtraReports的小结
原文:动态传递参数到DevExpress.XtraReports的小结 前两种方法和WinForm一样,可以传递参数.数组.实体对象.DataTable等1. 采用构造函数具体用法:在Report中p ...
- MD5算法的原理与实现
***********************************************声明************************************************ 原创 ...
- Entity Framework执行Sql语句返回DataTable
Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作.如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的 ...
- ChartType属性
xl3DArea:三维面积图 xl3DAreaStacked:三维堆积面积图 xl3DAreaStacked100:三维堆积面积图 xl3DBarClustered:三维簇状条形图 xl3DBarSt ...
- MAC使用小技巧(二)
一.Safari-->广告数量不足 --原因:DNS被拦截,被恶意推送广告. ----------------------------- [ 思路 ] 修改hosts文件 $ cd /etc $ ...
- Linux C/C++计划Shell命令大杂烩(1)
1, 请参见发行信息 cat /etc/issue 2, 查看内核版本号 uname -r 查看内核版本号 uname -p 查看处理器类型32bit/64bit uname -n 查看网络主机名(o ...
- 安全系列之二:OAuth2.0 开放授权协议
本文提取出OAuth2.0规范RFC6749的主要内容,部分内容从文档复制出来,给大家讲讲第三方授权背后的故事. 先是举个知乎的QQ登录授权的例子,然后讲四种授权方式,两种令牌,接着是看看协议流程,分 ...