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案例的更多相关文章

  1. 反射导出 Excel

    /// <summary> /// List 数据导出Excel /// </summary> /// <param name="list">数 ...

  2. SSM poi通过模板 反射导出excel

    1 import java.lang.reflect.Field; 2 import java.lang.reflect.Method; 3 import java.util.Iterator; 4 ...

  3. 1、jxl导入/导出excel案例,黏贴即可运行

    package junit.test; import java.io.File; import java.io.IOException; import java.util.ArrayList; imp ...

  4. jxl导入/导出excel(网上的案例)

    jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...

  5. jxl导入/导出excel

    1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOException; import ...

  6. 导出Excel(终极版)

    /** * 导出excel 案例 */ public void exportExcel(){ long beginTime = System.currentTimeMillis(); HttpServ ...

  7. NPOI操作EXCEL(四)——反射机制批量导出excel文件

    前面我们已经实现了反射机制进行excel表格数据的解析,既然有上传就得有下载,我们再来写一个通用的导出方法,利用反射机制实现对系统所有数据列表的筛选结果导出excel功能. 我们来构想一下这样一个画面 ...

  8. C# 导入导出excel文件案例

    个人总结导出excel报表的案例: //导出报表 protected void btnExport_Click(object sender, EventArgs e) { List<ProOut ...

  9. Java基于注解和反射导入导出Excel

    代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...

随机推荐

  1. 一个MP3播放的插件jPlayer

    Jplayer小样   最近应公司要求需要一个MP3播放的插件,网上找了很多插件,看来看去还是jPlayer用着最舒服也最容易扩展.所以就找了个资料研究了下,简单做了个小DEMO.支持实时控制列表,常 ...

  2. Sql Server存储过程和函数浅谈

    今天给大家总结一下sql server中的存储过程和函数.本人是小白,里面内容比较初级,大神不喜勿喷 自行飘过就是.. 首先给大家简单列出sql server中的流控制语句,后面会用到的^_^ sql ...

  3. 【Java】【jquery】ajax垃圾问题

    1.暗示HTML.JSP文件本身使用UTF-8格公式 2.HTML的head加: <META http-equiv="Content-Type" content=" ...

  4. 动态传递参数到DevExpress.XtraReports的小结

    原文:动态传递参数到DevExpress.XtraReports的小结 前两种方法和WinForm一样,可以传递参数.数组.实体对象.DataTable等1. 采用构造函数具体用法:在Report中p ...

  5. MD5算法的原理与实现

    ***********************************************声明************************************************ 原创 ...

  6. Entity Framework执行Sql语句返回DataTable

    Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作.如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的 ...

  7. ChartType属性

    xl3DArea:三维面积图 xl3DAreaStacked:三维堆积面积图 xl3DAreaStacked100:三维堆积面积图 xl3DBarClustered:三维簇状条形图 xl3DBarSt ...

  8. MAC使用小技巧(二)

    一.Safari-->广告数量不足 --原因:DNS被拦截,被恶意推送广告. ----------------------------- [ 思路 ] 修改hosts文件 $ cd /etc $ ...

  9. Linux C/C++计划Shell命令大杂烩(1)

    1, 请参见发行信息 cat /etc/issue 2, 查看内核版本号 uname -r 查看内核版本号 uname -p 查看处理器类型32bit/64bit uname -n 查看网络主机名(o ...

  10. 安全系列之二:OAuth2.0 开放授权协议

    本文提取出OAuth2.0规范RFC6749的主要内容,部分内容从文档复制出来,给大家讲讲第三方授权背后的故事. 先是举个知乎的QQ登录授权的例子,然后讲四种授权方式,两种令牌,接着是看看协议流程,分 ...