导出 excel 有时也挺头痛的
poi,jxl 未免太过复杂
js 方式有浏览器兼容问题,而且不能把页面的样式一般导出
其实有一种简单的方式可以导出格式良好的 excel
我之前就用这种方式做简单格式的 excel 导出的
今天有个技术群里有人问导出 excel 方法
于是做了个例子
第一步:打开 excel,设置一个 excel 模板, 然后另存为 XML 表格
第二步:用文本编辑器打开刚刚保存的模板文件,把代码复制粘贴到JSP页面,如 export.jsp
第三步:如展示页面一样写后台 Action, Action 跳转到对应的JSP页面(export.jsp)
JSP 页面代码如下
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page contentType="application/vnd.ms-excel; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%response.addHeader("Content-Disposition: attachment", "filename=test.xls");%>
<!-- 以下为 excel 里定制的模板代码,打开 excel 设置格式,然后另存为 XML 表格 -->
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="<A href="http://www.w3.org/TR/REC-html40">http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Ivan Self</Author>
<LastAuthor>Ivan Self</LastAuthor>
<Created>2010-07-21T11:40:53Z</Created>
<LastSaved>2010-07-21T12:01:49Z</LastSaved>
<Version>11.5606</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>8895</WindowHeight>
<WindowWidth>11715</WindowWidth>
<WindowTopX>240</WindowTopX>
<WindowTopY>15</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="12"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s21">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="14" ss:Bold="1"/>
<Interior ss:Color="#00CCFF" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s22">
<Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
</Style>
</Styles>
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="3013" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
<Row ss:Height="18.75">
<!-- 标题 相当于后台传来的标题数组 -->
<c:forEach begin="1" end="3" var="h">
<Cell ss:StyleID="s21"><Data ss:Type="String">标题_${h}</Data></Cell>
</c:forEach>
</Row>
<!-- 结果集 相当于后台传来的结果集 -->
<c:forEach begin="1" end="3" var="rs">
<Row>
<Cell ss:StyleID="s22"><Data ss:Type="String">a_${rs}</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">b_${rs}</Data></Cell>
<Cell ss:StyleID="s22"><Data ss:Type="String">c_${rs}</Data></Cell>
</Row>
</c:forEach>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>2984</ActiveRow>
<ActiveCol>3</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
这样就如同JSP展示页面一样做导出了
把下面的代码也放到 action 中
<%response.addHeader("Content-Disposition: attachment", "filename=test.xls");%>
这样就可以多个导出需求(多少 action/方法)都对应一个JSP页面
每个需求设置不同的文件名,传不同的标题数组以及结果集就可以了
注意一点:定义模板时的行一定好大于实际导出的行,要不导出的文件无法打开
分享到:
相关推荐
这是一种使用 Excel 组件来从 DBGrid 导出到 Excel 表格的方法。在该方法中,我们使用了 Excel97 组件,該组件提供了丰富的功能来操作 Excel 文件。我们首先创建了一个 TForm 对象,并在该对象中添加了几个控件,...
下面将详细介绍 ASP.NET 中几种常见的导出 Excel 的方法及其实现原理。 #### 方法一:使用 DataSet 直接生成 Excel 文件 此方法适用于简单的情况,即直接将内存中的数据集(DataSet)转换成 Excel 文件格式。具体...
### .NET中导出Excel表方法汇总 #### 标题:.NET里导出Excel表方法汇总 #### 描述:.NET里导出Excel表方法汇总 #### 标签:C#导出Excel #### 知识点: ##### 1. 引入Excel组件 在.NET环境中使用C#导出数据至...
JSP是一种基于Java的动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,以实现服务器端的逻辑处理。在我们的场景中,JSP将用于生成Excel文件。 要将JSP页面的HTML表格导出为Excel,我们通常会利用HTTP响应...
一种常见策略是分批写入,或者使用内存流处理技术,减少内存占用。 5. **模板设计**:为了提供一致的视觉效果,可以预先设计Excel模板,包括固定头部、冻结行列、图表、公式等,然后将动态数据填充到模板中。 6. *...
总结来说,"pb导出excel2007"是一种利用DLL技术在PowerBuilder中高效地将数据窗口数据导出到Excel 2007文件的方法,它避免了对Excel软件的依赖,提高了导出性能,适用于大量数据的处理场景。通过深入理解DLL的工作...
组态王历史数据导出EXCEL表格的方法 组态王是一种工业自动化软件,具有强大的数据采集和处理能力。为了更好地对历史数据进行分析和处理,需要将其导出到EXCEL表格中。本文将介绍组态王历史数据导出EXCEL表格的方法...
在本篇文章中,我们将探讨一种简单的方法来将ASP.NET中的GridView控件中的数据导出到Excel文件中。这种方法利用了C#语言的强大功能以及ASP.NET框架提供的工具,使得导出过程既高效又简洁。 #### GridView简介 `...
本篇文章将详细介绍两种在ASP.NET中导出Excel的方法,主要关注如何从GridView控件导出数据。 1. 存储在服务器并提供下载链接 这种方法首先将导出的Excel文件存储在服务器的特定文件夹下,然后通过HTTP响应将文件...
在IT行业中,Excel作为一种强大的电子表格工具,广泛用于数据处理、分析和报告。有时,我们需要将数据导出到Excel文件中以便进一步操作或共享。本文将详细介绍四种在编程环境中导出数据到Excel的方法,每种方法都有...
在Java Web开发中,JSP(JavaServer Pages)是一种常用的动态网页技术,它允许开发者将HTML、CSS、JavaScript与Java代码结合在一起,用于构建交互式的Web应用。在某些场景下,我们可能需要从服务器端导出数据到Excel...
这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序...
在C++环境中,使用Microsoft Foundation Class (MFC) 库并结合Visual Studio 2010来导出数据到Excel是一种常见的需求。本教程将详细解释如何实现这一过程,包括必要的步骤和代码示例。 首先,你需要创建一个C++工程...
【lodop导出ExcelDemo】是一个基于LODOP技术实现的JavaScript示例,它展示了如何通过LODOP组件将网页中的数据导出为Excel文件。这个功能在许多Web应用程序中非常实用,允许用户方便地保存和处理数据。下面将详细阐述...
delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):boolean; const xlNormal=-4143; var y : integer; tsList : TStringList; s,filename :string; aSheet :...
第一种方法简单但仅限于IE浏览器;第二种方法同样依赖ActiveX对象,但通过遍历表格来填充Excel,更加灵活;第三种方法使用纯JavaScript实现,具有更好的跨浏览器兼容性。开发者可以根据实际需求选择合适的方法进行...
在VB6.0(Visual Basic 6.0)中,导出数据到Excel是一种常见的需求,主要用于数据分析、报表生成和数据交换。这个标题"VB6.0_导出excel_方法源代码_excel_vb6_vb6_VB_"指的是一个使用VB6.0实现的程序,它包含了将...
### PL/SQL 导出数据至 Excel 的三种方法详解 #### 方法一:直接导出(适用于少量数据) 此方法较为直观简单,适用于导出数量不多的数据。具体步骤如下: 1. **查询数据**:首先,在PL/SQL Developer的SQL Window...
易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语句,降低了编程的门槛,使得更多非计算机专业的人也能进行程序开发。在易语言中,处理表格数据和导出到Excel是一项常见的任务,这对于数据分析和报表...
EXTJS提供了一种高效的方法来将数据导出到Excel格式,使得用户能够方便地处理和分析数据。在这个场景下,我们可以从以下几个关键知识点入手: 1. **EXTJS组件**:EXTJS的核心是其丰富的组件库,包括表格(Grid)、...