`
kimmking
  • 浏览: 546241 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

web导出excel文件的几种方法

阅读更多

经常有人问怎么导出数据到excel文件。

 

web导出excel文件的几种方法

 

KimmKing

kimmking@163.com

20099410:19:09

 

总的来说,两种方法:服务器端生成和浏览器端生成。

 

服务器端生成就是:根据用户请求,获取相应的数据,使用poi/jxl, jacob/jawin+excel,或是用数据拼htmltable或是cvs纯文本的数据格式等。然后按.xls或是.cvs格式的文件的形式返回给用户,指定Content-Type:application/vnd.ms-excel ,浏览器就会提示要下载的文件是excel文件。

poi/jxl, jacob/jawin生成的是excelbiff格式。html/csv的是文本格式,不另存为excel文件,很多excel功能是用不了的。jacob/jawin需要服务器端是windows系统,且安装了excel2000以上版本。poi/jxlhtml/csv方式的话,服务器端可以跨平台。

 

浏览器端生成excel文件还没有特别完善的方案,这是因为js无法处理二进制。大概有以下几个方案,各有利弊。

1.       activex方式:使用js/vbs调用excel对象,http://setting.iteye.com/blog/219302,有个extjsgridpanel导出为excel的例子。            ie+excel

2.       ie命令方式:将html或是csv输出到openwindow,然后使用execCommandsaveas命令,存为csvxls                                               (ie6 only)

3.       服务器端中转方式:将htmltable或是拼接的csv传到服务器端,服务器端再按照Content-Type:application/vnd.ms-excel返回,浏览器就会按excel方式处理。与服务器端拼接相比,少了一次取数操作。                                (all)

4.       data协议方式:对于支持data协议的浏览器,可以将html或是csv先用js base64处理,然后前缀data:application/vnd.ms-excel;base64,,即可使浏览器将其中的数据当做excel来处理,浏览器将提示下载或打开excel文件,可惜的是ie不支持。extjs的官网有一个gridplugin,实现导出xhtml格式的伪excel文件,就是这么做的。   (except IE)

 

浏览器端只有第一种方案导出的是真正的biff格式的excel文件,其他方式都是文本格式。activex方式只能在windows平台的ie浏览器使用,而且需要降低ie的安全性,所以应用比较有限。复杂的excel文件,还是在服务器端用poi/jxl生成excel比较好。如果浏览器固定位ie6,浏览器端方式2是最好的方案。如果要降低服务器端cpu的计算压力,客户端方案3可行,而且跨平台(比poi/jxl方式少了取数和生成二进制文件)。如果是非ie浏览器,方案4也不失为一种好方法。

 

 

ps: 还有一个方案,就是让安装了ieexcel的用户在网页上右键,点击“导出到 Microsoft Excel”,然后可以选择要导出的table区域,点“导入”按钮,完成导入。

 

 

 

分享到:
评论
6 楼 viMory 2009-09-05  
十分感谢kimmking的分享 ,问个问题:用POI处理后,导出的Excel单元格格式能否设置成文本类型的?代码中我设置格式为HSSFCell.CELL_TYPE_STRING,导出后单元格格式为常规类型的,这样我一输入2009-09-05常规类型就会自动转换成日期类型!
5 楼 axbyzc 2009-09-04  
lz总结的很好,要是有例子的话就更好了啊 支持支持
4 楼 damoqiongqiu 2009-09-04  
楼上的方式比较实用,复杂格式和数比较多的报表的话后台拿jxl定时生成比较好些
3 楼 fireinjava 2009-09-04  
我都第三种:
  1.import jxl.Workbook;
  2.直接jsp的header定义为Content-Type:application/vnd.ms-excel,
     然后页面就是<table></table>
   (这种没1的好看)
2 楼 damoqiongqiu 2009-09-04  
比较完善的总结,每种方法给个小例子就更好咯
1 楼 atian25 2009-09-04  
不错,就是格式难看了点.

相关推荐

    DataGrid导出EXCEL的几个方法(WebControl)

    ### DataGrid导出EXCEL的几种方法:深入探讨与实践 在Web开发中,将数据导出为Excel格式是常见的需求之一,尤其是当涉及到大量数据分析和报表制作时。本文将详细解析如何使用ASP.NET中的DataGrid控件实现数据导出至...

    DataGrid导出EXCEL的几个方法(WebControl).rar

    接下来,我们将详细探讨几种常见的DataGrid数据导出到Excel的方法。 1. **Response.Write和HTML表格** 这是最基础的方法,它利用了Excel能够识别HTML表格的特性。首先,通过遍历DataGrid的Item对象,生成HTML表格...

    asp.net导出数据到Excel的几种方法 学习心得

    以下将详细讨论几种常见的导出方法,特别是基于控件的HTML渲染方式。 首先,我们来了解一下最常用的方法,即利用控件的`RenderControl`功能。这个方法的基本思路是,先将ASP.NET网页中的控件(如GridView、DataGrid...

    WebExcel文件展现

    在ASP.NET中实现WebExcel文件展现,通常涉及到以下几个关键知识点: 1. **服务器控件**:ASP.NET提供了一些服务器控件,如Microsoft Office Interop库,可以直接在网页上嵌入Excel文件。不过,这种方式会消耗大量...

    WEB页面导出为EXCEL文档的方法

    下面将详细介绍几种常见的方法。 1. **JavaScript**: - 使用`window.open()`函数配合`application/vnd.ms-excel` MIME类型:在HTML元素上添加`onclick`事件,触发`window.open()`,将网页内容重定向到一个新的...

    Vue+axios+WebApi+NPOI导出Excel文件实例方法

    对于导出方案,有以下几种常见方法: 1. **使用location.href**:直接打开接口地址,但这种方法无法传递token,安全性较低,且仅支持GET请求。 2. **axios请求生成并保存文件**:先在服务器生成并保存文件,返回...

    lodop导出ExcelDemo

    5. 执行导出:调用LODOP的相应方法,执行数据到Excel的转换,并通常会提供一个下载对话框供用户保存文件。 "exe"标签可能指的是LODOP服务端程序的可执行文件,它在服务器端运行,处理来自浏览器的打印请求。用户在...

    asp.net里导出excel表方法汇总

    下面将详细介绍 ASP.NET 中几种常见的导出 Excel 的方法及其实现原理。 #### 方法一:使用 DataSet 直接生成 Excel 文件 此方法适用于简单的情况,即直接将内存中的数据集(DataSet)转换成 Excel 文件格式。具体...

    java生成Excel及jar包和文件下载的几种方式

    首先,让我们了解一下Java生成Excel的几种常见库: 1. **JXL库**:压缩包中的`jxl.jar`文件就是JXL库,这是一个广泛使用的Java库,用于读写Excel文件。JXL支持多种Excel操作,如创建工作簿、添加工作表、设置单元格...

    html静态读取excel文件

    另一种方式是使用Web Workers或Service Worker,但这种方法实现起来较为复杂。 总的来说,HTML通过JavaScript读取Excel文件需要结合HTML5的File API、Excel解析库(如SheetJS)以及可能的跨域解决方案。理解这些...

    C# 将数据导出到Excel汇总

    本文将基于给定的文件信息,深入探讨C#中将数据导出到Excel的几种方法,包括在ASP.NET环境中导出Excel的具体步骤。 #### ASP.NET中导出Excel的方法概览 在ASP.NET中导出数据到Excel主要分为两种基本策略:一是将...

    C#利用Response流将数据库数据导出成Excel

    在本文中,我们将探讨如何使用C#语言将数据库数据导出到Excel文件中。 Response流 在C#中,Response流是指ASP.NET框架中用于将数据发送到客户端的流媒体。Response流可以将服务器端的数据推送到客户端,实现实时...

    ASP_NET导出Excel数据方法总结

    本篇文章将深入探讨几种在ASP.NET环境中导出Excel数据的方法,包括它们的工作原理、优缺点以及适用场景。 #### 方法一:引用COM组件 这种方法通过直接调用Excel COM组件,将数据从DataTable导入至Excel单元格,并...

    C#导出数据到EXCEL方法

    在ASP.NET Web应用程序中,经常需要将数据从datagridview组件导出到Excel文件,以便用户可以轻松地查看、编辑和共享数据。本文将详细介绍如何在C#中实现这个功能,并提供一个详细的实例源码和讲解。 首先,我们要...

    js导出excel的方法

    在Web开发中,经常需要将数据导出到Excel文件中,以便用户能够方便地查看或进一步处理这些数据。本文将详细介绍几种使用JavaScript实现导出数据到Excel的方法,包括利用ActiveX对象的方式以及纯JavaScript的方式。 ...

    asp.net中如何导出excel表的几个方法

    ASP.NET 中导出 Excel 表的几个方法 在 ASP.NET 开发过程中,经常需要将数据导出到 Excel 表中,以便于用户查看和分析数据。这篇文章将介绍三种在 ASP...这些方法可以根据需要选择使用,以便将数据导出到 Excel 表中。

    Ext Grid 导出Excel

    总结来说,"Ext Grid 导出Excel"这个话题涵盖了从JavaScript数据结构到Excel文件格式转换的过程,涉及到的主要技术有Ext JS的Grid和Store组件,以及第三方库SheetJS。这个过程对于那些需要提供数据导出功能的Web应用...

    asp.net里导出excel表方法汇总.

    在 ASP.NET 开发中,经常需要将数据导出到 Excel 文件中,以供用户下载或进一步分析使用。本文将详细介绍 ASP.NET 中常用的几种导出 Excel 的方法及其实现细节。 #### 一、通过 DataSet 生成 Excel 文件 这种方法...

    kettle循环导出数据到Excel中

    总之,Kettle循环导出数据到Excel是一种实用的数据处理方法,尤其适合处理大型数据集。它提供了强大的工具和灵活性,能够满足各种ETL需求,而不仅仅是数据导出。通过熟练掌握Kettle,IT专业人士能够更高效地管理和...

    ASP.NET中把Gridview导出为EXCEL

    在ASP.NET开发中,将Gridview控件中的数据导出到Excel是一种常见的需求,这有助于用户方便地管理和处理大量数据。下面将详细讲解如何实现这一功能,并解决中文乱码问题。 首先,我们需要理解ASP.NET Gridview的基本...

Global site tag (gtag.js) - Google Analytics