第一种:将D ataGr id中的数据以流的形式写到ex cel中,格式以ht ml的形式存在 Resp onse.Clear();
Resp onse.Buffe r = t rue;
Res ponse.Char set = "GB2312";
Re spons e.App endHe ader("Cont ent-D ispos ition",
"a ttach ment;filen ame=D ialou tTemp late.xls");
// 如果设置为G etEnc oding("GB2312");导出的文件将会出现乱码!!!
Re spons e.Con tentE ncodi ng =Syste m.Tex t.Enc oding.UTF8;
R espon se.Co ntent Type= "ap plica tion/ms-ex cel";//设置输出文件类型为exce l文件。
//Res ponse.Cont entTy pe ="appl icati on/vn d.ms-excel";//输出类型
//Re spons e.Cha rset= "";
//关闭V iewSt ate
Enab leVie wStat e = f alse;
Sy stem.IO.St ringW riter tw = newSyste m.IO.Strin gWrit er();//将信息写入字符串 Sy stem.Web.U I.Htm lText Write r hw= new
Syst em.We b.UI.HtmlT extWr iter(tw);//在WEB窗体页上写出一系列连续的HTM L特定字符和文本。
//此类提供AS P.NET服务器控件在将HTM L内容呈现给客户端时所使用的格式化功能
//获取cont rol的H TML
dg.Rende rCont rol(h w);//将tabl e中的内容输出到Ht mlTex tWrit er对象中
// 把HT ML写回浏览器
Respo nse.W rite(tw.To Strin g());
Re spons e.Flu sh();
Re spons e.End();
第二种:将数据源中的数据以文件流的形式写到e xcel中,格式以t xt的形式存在
Fi leStr eam f s = n ew
Fi leStr eam(S erver.MapP ath("repor t_exp ort/D ialou tTemp late.xls"),
Fil eMode.Crea te, F ileAc cess.Write);
Strea mWrit er rw = ne w Str eamWr iter(fs, E ncodi ng.De fault);//建立Stre amWri ter 为写作准备;
Da taTab le dt = Ge tData Table Sourc e();
in t cou nt =dt.Co lumns.Coun t;
strin g hea d = "";
strin g val ues = "";
fo r (in t i = 0; i < co unt;i++)
{
strin g h = dt.C olumn s[i].Colum nName + "\t";
strin g v = dt.R ows[0][i].ToStr ing() + "\t";
head += h;
va lues+= v;
}
rw.Write Line(head);
r w.Wri teLin e(val ues);
r w.Clo se();
fs.Clos e();
Re spons e.Red irect("rep ort_e xport/Dial outTe mplat e.xls");
第三种:将数据源中的数据直接写到e xcel中,格式以x ls形式存在,好处导出的
数据可以直接导入,可以将数字格式自动转化为文本格式,可以减少
格式转化的繁琐环节,还可以预留将数字转换为文本的格式的行数,
可以完全自定义
Exc el.Ap plica tionxlApp;
E xcel.Workb ook x lBook;
E xcel.Workb ooksxlBoo ks;
//Ex cel.R angexlRan ge;
Exce l.She ets x lshee ts;
Exce l.Wor kshee t xlS heet;
in t k = 0;
try
{
strin g str Curre ntPat h = S erver.MapP ath("repor t_exp ort/D ialou tTemp late.xls"); st ringFileP ath = strC urren tPath;
F ileIn fo fi = ne w Fil eInfo(File Path);
if (fi.Exist s) //判断文件是否已经存在,如果存在就删除!
{
fi.Delet e();
}
xlApp = ne w Exc el.Ap plica tion();
x lBook s = x lApp.Workb ooks;
xlB ook = xlBo oks.A dd(Ty pe.Mi ssing);
x lshee ts =xlBoo k.Wor kshee ts;
IntPt r int ptr = newIntPt r(xlA pp.Hw nd);
xlSh eet = (Exc el.Wo rkshe et)xl sheet_Item(1);
Dat aTabl e dt= Get DataT ableS ource();
intcount = dt.Colu mns.C ount;
for (int i =0; i< cou nt; i++)
{
str ing h = dt.Colu mns[i].Col umnNa me;
s tring v =dt.Ro ws[0][i].T oStri ng();
((E xcel.Range)xlSh eet.C ells[1, i+ 1]).Valu e2 =h;
Ex cel.R anger1 =xlShe et.ge t_Ran ge(xl Sheet.Cell s[1,1], x lShee t.Cel ls[1, i +1]);
r1.Nu mberF ormat Local = "@";
((Excel.Rang e)xlS heet.Cells[2, i + 1]).Val ue2 = v;
Excel.Rang e r2= xlS heet.get_R ange(xlShe et.Ce lls[2, 1], xlSh eet.C ells[2, i+ 1]);
r2.Numbe rForm atLoc al ="@";
}
for (int j = 1; j <500;j++)
{
Ex cel.R anger = x lShet_Rang e(xlS heet.Cells[2 +j, 1], xlS heet.Cells[2 +j, co unt]);
r.N umber Forma tLoca l = "@";
}
x lBook.Save As(Fi lePat h, Ty pe.Mi ssing, Typ e.Mis sing, Type.Miss ing,
Type.Missi ng, T ype.M issin g, Ex cel.X lSave AsAcc essMo de.xl NoCha nge,
Type.Missi ng, T ype.M issin g, Ty pe.Mi ssing, Typ e.Mis sing, Type.Miss ing);
xlB ook.C lose(false, Typ e.Mis sing, Type.Miss ing);
xlB ooks.Close();
xlApp.Quit();
Respo nse.R edire ct("r eport_expo rt/Di alout Templ ate.x ls");
Get Windo wThre adPro cessI d(int ptr,out k); S ystem.Diag nosti cs.Pr ocess p =
Syste m.Dia gnost ics.P roces s.Get Proce ssByI d(k);
p.K ill();
}
c atch(Exce ption ex)
{
Respo nse.W rite(ex.Me ssage);
}
f inall y
{
//x lRang e = n ull;excel口内打 或者x
xlSh eet = null;
xl Book= nul l;
x lApp= nul l;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论