MVC3导出Excel

发布 2023-05-19 19:34:28 阅读 5438

所用环境信息:vs2010 mvc3 linq

npoihelper帮助类。

public class npoihelper

// datatable导出到excel文件。

// 源datatable

// 表头文本。

// 保存位置。

public static void export(datatabledtsource, string strheadertext, string strfilename, string columnnames)

using (memorystreamms = export(dtsource, strheadertext, columnnames))

using (filestreamfs = new filestream(strfilename,

byte data =

// datatable导出到excel的memorystream

// 源datatable

// 表头文本。

// 列名。

public static memorystream export(datatabledtsource, string strheadertext, string columnnames)

if (columnnames !=null &&

throw new argumentexception("参数不正确:columnnames,数组元素的个数需要和数据源列的数量相同!")

hssfworkbook workbook = new hssfworkbook();

sheet sheet =

#region 右击文件属性信息。

documentsummaryinformationdsi =

= "上海驰亚防伪科技****";

= dsi;

summaryinformationsi =

= "技术部";

= strheadertext;

= si;#endregion

cellstyledatestyle =

dataformat format =

= "yyyy-mm-dd");

/取得列宽。

int arrcolwidth = new int[

foreach (datacolumn item in

arrcolwidth[ =

for (int i = 0; i < i++)

for (int j = 0; j < j++)

intinttemp =

if (inttemp>arrcolwidth[j])

arrcolwidth[j] =inttemp;

introwindex = 0;

foreach (datarow row in

#region 新建表,填充表头,填充列头,样式。

if (rowindex ==65535 ||rowindex ==0)

if (rowindex !=0)

sheet =

#region 表头及样式。

row headerrow =

cellstyleheadstyle =

font font =

= headstyle;

cellrangeaddress(0, 0, 0, -1));

#endregion

#region 列头及样式。

row headerrow =

cellstyleheadstyle =

font font =

if (columnnames ==null)

foreach (datacolumn column in

= headstyle;

/设置列宽。

(arrcolwidth[ +1) *256);

elseforeach (datacolumn column in

= headstyle;

/设置列宽。

(arrcolwidth[ +1) *256);

#endregion

rowindex = 2;

#endregion

#region 填充内容。

row datarow =

foreach (datacolumn column in

cell newcell =

stringdrvalue = row[column].tostring();

switch (

case ""字符串类型。

break;

case ""日期类型。

datetimedatev;

out datev);

= datestyle;//格式化显示。

break;

case ""布尔型。

boolboolv = false;

out boolv);

break;

case ""整型。

case ""

case ""

case ""

intintv = 0;

out intv);

break;

case ""浮点型。

case ""

double doubv = 0;

out doubv);

break;

case ""空值处理。

break;

default:

break;

#endregion

rowindex++;

using (memorystreamms = new memorystream())

一般只用写这一个就ok了,他会遍历并释放所有资源,但当前版本有问题所以只释放sheet

return ms;

// 用于web导出。

// 源datatable

// 表头文本。

// 文件名。

public static void exportbyweb(datatabledtsource, string strheadertext, string strfilename, string columnnames)

httpcontextcurcontext =

/ 设置编码和附件格式。

= "application/";

content-disposition",attachment;filename="

Excel导出函数

sub exporttoexcel application content disposition attachment filename call writetabledata end sub excel导入数据库。dim filename filename 取得文件名,来自项目经理的指定,路径固...

3初识Excel

2019年度申报评审高级教师讲课教案。初识excel2003 八年级信息技术上册 讲课教师 张发和 工作单位 永靖八中 讲课时间 2019年9月28日。教学目标 知识目标 1 使学生了解excel2003的功能,掌握它的启动和退出方法。2 使学生感性认识excel2003的窗口基本组成部分。3 使学...

Excel上机作业 3

1.使用excel单变量求解工具确定盈亏平衡点 具体如下图所示,其。中总成本 固定成本 单位可变成本 产量,总收入 单位售价 产量,总利润 总收入 总成本 图12.应用excel规划求解工具求解下面问题。某工厂生产两种产品a b。由于这两种产品具有不同的大小 形状 重量和风格,所以它们所需要的主要原...