登录|注册|帮助中心|联系我们

导航
首页 综合百科 生活常识 数码科技 明星名人 传统文化 互联网 健康 影视 美食 教育 旅游 汽车 职场 时尚 运动 游戏 家电 地理 房产 金融 节日 服饰 乐器 歌曲 动物 植物
当前位置:首页 > 教育

winform导出excel设置格式(导出excel的方法汇总)

发布时间:2023年1月7日责任编辑:张小石标签:设置excel方法格式

1. 服务端输出方式

1.1 html 输出方式最常用方式

优点:不需要任何插件

缺点:不是真正excel文件,做不了太复杂的格式,偶尔会出现打不开的情况

代码示例

???????????Response.Clear(); ???????????Response.Buffer = true; ???????????Response.Charset = "GB2312"; ???????????//设置了类型为中文防止乱码的出现 ???????????string danwei = Session["danWeiMingCheng"].ToString(); ???????????//2011.07.14 luochengxin ???????????Response.AddHeader("Content-Disposition", "inline;filename=手术登记查询.xls", System.Text.Encoding.UTF8)); ???????????Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); ???????????//设置输出流为简体中文 ???????????Response.ContentType = "application/ms-excel"; ???????????//设置输出文件类型为excel文件。 ???????????System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true); ???????????System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); ???????????System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); ???????????Response.Write(Sbr.ToString()); ???????????Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>"); ???????????Response.Write(oStringWriter.ToString()); ???????????Response.End();

1.2 office com组件 输出方式

优点:生成真正的Excel文件,强类型编码

缺点:服务器需要安装office且与版本绑定太深(不推荐使用),常用cs类型程序开发

代码示例:

protected void Page_Load(object sender, EventArgs e) ???????{ ???????????if (!Page.IsPostBack) ???????????{ ???????????????ApplicationClass app = new ApplicationClass(); ???????????????Workbook workBook = app.Workbooks.Open(@"e:tt.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); ???????????????Worksheet sheet = (Worksheet)workBook.Worksheets[1]; ???????????????Response.Write(sheet.Name + "<br/>"); ???????????????Range range = sheet.get_Range("E7:J112", Type.Missing); ???????????????Range item = null; ???????????????for (int row = 0; row < range.Rows.Count; row++) ???????????????{ ???????????????????for (int col = 0; col < range.Columns.Count; col++) ???????????????????{ ???????????????????????item = (Range)range.get_Item(row, col); ???????????????????????Response.Write(item.Value2); ???????????????????????Response.Write(" | "); ???????????????????} ???????????????????Response.Write("<br/>"); ???????????????} ???????????????//关闭 ???????????????app.Workbooks.Close(); ???????????????app.Quit(); ???????????????//释放 ???????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(item); ???????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(range); ???????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet); ???????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook); ???????????????System.Runtime.InteropServices.Marshal.ReleaseComObject(app); ???????????????item = null; ???????????????app = null; ???????????????workBook = null; ???????????????range = null; ???????????????GC.Collect(); ???????????????//杀进程 ???????????????try{ ???????????????KillExcelProcess(); ???????????????}catch{} ???????????} ???????} ???????public void KillExcelProcess() ???????{ ???????????Process[] myProcesses; ???????????myProcesses = Process.GetProcessesByName("Excel"); ???????????foreach (Process myProcess in myProcesses) ???????????{ ???????????????myProcess.Kill(); ???????????} ???????}

1.3 NPOI 输出方式

优点:生成真正的Excel文件,可做特殊复杂操作,且为独立第三方DLL,不需要依然office组件解决了1.2的问题,

缺点:生成时占用内存资源大,CPU耗时大,如果生成一万条以上excel极其容易出现内存溢出

代码示例:

???????????private void button1_Click(object sender, EventArgs e) ???????????{ ???????????//创建工作薄 ???????????HSSFWorkbook wk = new HSSFWorkbook(); ???????????//创建一个名称为mySheet的表 ???????????ISheet tb = wk.CreateSheet("mySheet"); ????????????//创建一行,此行为第二行 ???????????IRow row = tb.CreateRow(1); ???????????for (int i = 0; i < 20; i++) ???????????????{ ???????????ICell cell = row.CreateCell(i); ?//在第二行中创建单元格 ???????????cell.SetCellValue(i);//循环往第二行的单元格中添加数据 ???????????} ???????????//打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件! ???????????using (FileStream fs = File.OpenWrite(@"c:/myxls.xls")) ????????????{ ???????????wk.Write(fs); ??//向打开的这个xls文件中写入mySheet表并保存。 ???????????MessageBox.Show("提示:创建成功!"); ???????????} ???????????}

2. 客户端输出方式

2.1 OCX组件导出

优点:生成真正的Excel文件

缺点:仅IE下可用,需要开启activeX权限

代码示例:

??????function AllAreaExcel(content) { ???????????var oXL = new ActiveXObject("Excel.Application"); ???????????var oWB = oXL.Workbooks.Add(); ???????????var oSheet = oWB.ActiveSheet; ???????????var div_all = content; ???????????var sel = document.body.createTextRange(); ???????????sel.moveToElementText(div_all); ???????????sel.select(); ???????????sel.execCommand("Copy"); ???????????oSheet.Paste(); ???????????oXL.Visible = true; ???????}

2.2 第三方JS插件

优点

缺点:仅标准H5可用,IE兼容模式下不可能用

其它知识推荐

溜溜百科知识网——分享日常生活学习工作各类知识。 垃圾信息处理邮箱 tousu589@163.com
icp备案号 闽ICP备14012035号-2 互联网安全管理备案 不良信息举报平台 Copyright 2023 www.6za.net All Rights Reserved