精华内容
下载资源
问答
  • 序:最近在给客户做一个管理系统的时候,客户提出要查询结果导出Excel。对于还是实习生的我倍感压力,于是找了点资料。www.coolite.com上有个示例,其中方法十分简单。于是照猫画虎,把方法和心得与大家分享。OK...

    序:

    最近在给客户做一个管理系统的时候,客户提出要将查询结果导出到Excel。对于还是实习生的我倍感压力,于是找了点资料。www.coolite.com上有个示例,其中方法十分简单。于是照猫画虎,把方法和心得与大家分享。OK,Let`s

    go

    第一步:

    创建一个Excel文件(就是

    普通的Excel),在第一个单元格输入“city”,然后选择“另存为”,此时弹出保存窗口。注意:将保持格式选择为“XML

    表格(*.xml)”,点击保存。完毕后用记事本打开这个Excel文件。你将看到如下的代码

    version="1.0"?>

    progid="Excel.Sheet"?>

    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="http://www.w3.org/TR/REC-html40">

    xmlns="urn:schemas-microsoft-com:office:office">

    MC

    SYSTEM

    MC

    SYSTEM

    2009-05-28T16:20:57Z

    MC

    SYSTEM

    11.5606

    xmlns="urn:schemas-microsoft-com:office:excel">

    11250

    18180

    120

    75

    False

    False

    ss:Vertical="Center"/>

    ss:Size="12"/>

    ss:ExpandedRowCount="1" x:FullColumns="1"

    x:FullRows="1" ss:DefaultColumnWidth="54"

    ss:DefaultRowHeight="14.25">

    ss:Type="String">org

    xmlns="urn:schemas-microsoft-com:office:excel">

    3

    3

    1

    False

    False

    ss:ExpandedRowCount="0" x:FullColumns="1"

    x:FullRows="1" ss:DefaultColumnWidth="54"

    ss:DefaultRowHeight="14.25"/>

    xmlns="urn:schemas-microsoft-com:office:excel">

    False

    False

    ss:ExpandedRowCount="0" x:FullColumns="1"

    x:FullRows="1" ss:DefaultColumnWidth="54"

    ss:DefaultRowHeight="14.25"/>

    xmlns="urn:schemas-microsoft-com:office:excel">

    False

    False

    其实这个就是将XML转换成Excel最关键的部分。实际上这就是Excel对应的XML格式。也就是说按照这个格式来写一个XML文件,然后用Excel打开,Excel会将这个文件以Excel的样子正确的现实出来。

    第二步:

    在.net项目中添加一个xslt文件。学过xslt的朋友都知道通过xslt可以将xml转换成其他的格式。可能有的朋友还没有理解我的意思。其实我们通过xslt将xml转换成“第一步”中的格式,然后保存或者输出到客户端就完成了导出Excel的功能了。

    对于第一步中的XML代码我们要进行一些修改,因为这是Excel自动生成的,其中包含了大量的无用信息。修改后的代码如下:

    progid="Excel.Sheet"?>

    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="http://www.w3.org/TR/REC-html40">

    ss:Name="Sheet1">

    ss:ExpandedRowCount="1" x:FullColumns="1"

    x:FullRows="1" ss:DefaultColumnWidth="54"

    ss:DefaultRowHeight="14.25">

    city 

    到目前为止,这个代码还没有实际的用处。我们将这个代码copy到创建的xslt文件中,并将xslt的一些语法加入到上面的代码中,最后xslt文件将是这个样子:

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    match="/">

    progid="Excel.Sheet"?>

    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="http://www.w3.org/TR/REC-html40">

    ss:Type="String">

    展开全文
  • 序:最近在给客户做一个管理系统的时候,客户提出要查询结果导出Excel。对于还是实习生的我倍感压力,于是找了点资料。网上有个示例,其中方法十分简单。于是照猫画虎,把方法和心得与大家分享。OK,Let`s go第一...

    序:

    最近在给客户做一个管理系统的时候,客户提出要将查询结果导出到Excel。对于还是实习生的我倍感压力,于是找了点资料。网上有个示例,其中方法十分简单。于是照猫画虎,把方法和心得与大家分享。OK,Let`s go

    第一步:

    创建一个Excel文件(就是 普通的Excel),在第一个单元格输入“city”,然后选择“另存为”,此时弹出保存窗口。注意:将保持格式选择为“XML 表格(*.xml)”,点击保存。完毕后用记事本打开这个Excel文件。你将看到如下的代码

    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="http://www.w3.org/TR/REC-html40">

    MC SYSTEM

    MC SYSTEM

    2009-05-28T16:20:57Z

    MC SYSTEM

    11.5606

    11250

    18180

    120

    75

    False

    False

    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">

    org

    3

    3

    1

    False

    False

    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25"/>

    False

    False

    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25"/>

    False

    False

    其实这个就是将XML转换成Excel最关键的部分。实际上这就是Excel对应的XML格式。也就是说按照这个格式来写一个XML文件,然后用Excel打开,Excel会将这个文件以Excel的样子正确的现实出来。

    第二步:

    在.net项目中添加一个xslt文件。学过xslt的朋友都知道通过xslt可以将xml转换成其他的格式。可能有的朋友还没有理解我的意思。其实我们通过xslt将xml转换成“第一步”中的格式,然后保存或者输出到客户端就完成了导出Excel的功能了。

    对于第一步中的XML代码我们要进行一些修改,因为这是Excel自动生成的,其中包含了大量的无用信息。修改后的代码如下:

    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="http://www.w3.org/TR/REC-html40">

    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">

    city

    到目前为止,这个代码还没有实际的用处。我们将这个代码copy到创建的xslt文件中,并将xslt的一些语法加入到上面的代码中,最后xslt文件将是这个样子:

    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="http://www.w3.org/TR/REC-html40">

    保存这个xslt文件。

    第三步:

    编写.net后台代码,我是通过一个按钮事件触发导出的。代码如下:

    private void button1_Click(object sender, EventArgs e)

    {

    XmlDocument xdoc = new XmlDocument();

    xdoc.LoadXml("北京");

    XslCompiledTransform xct = new XslCompiledTransform();

    xct.Load(Application.StartupPath+"\\excel.xslt");

    XmlTextWriter writer = new XmlTextWriter("output.xls", null);

    writer.WriteProcessingInstruction("xml", "version="1.0"");

    xct.Transform(xdoc, null,writer);

    writer.Close();

    }

    总结:

    其实这个方法的核心就是利用.net的xslt转换功能将xml以一种特殊格式输出出去。而这种格式可以利用Excel软件自动生成

    展开全文
  • java将数据库数据导出为Excel文件

    千次阅读 2017-05-02 16:09:27
    一、开发环境 使用框架:spring,springmvc,mybatis jdk1.7 tomcat 7.0 Apache POI组件操作(自导jar包) ...2.2、UserVOMapper.xml 代码 2.3、UserVOMapper.java代码 2.4、UserService代码

    一、开发环境

    ssm框架;MySQL;JDK1.7;Tomcat7.0
    Apache POI组件操作自导jar包),官网下载地址:点击打开链接

    二、具体内容

    2.1、数据库数据

    2.2、UserVOMapper.xml 核心代码

      <select id="queryExportUser" resultMap="BaseResultMap">
      	select * from user u
      </select>

    2.3、UserVOMapper.java 核心代码

    List<UserVO> queryExportUser();

    2.4、service层代码(最重要)

    package com.gusy.muban.service;
    import java.util.List;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.CellStyle;
    import org.apache.poi.ss.usermodel.HorizontalAlignment;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.xssf.streaming.SXSSFWorkbook;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import com.gusy.muban.dao.UserVOMapper;
    import com.gusy.muban.model.UserVO;
    
    /**  
    * @author gusy  
    */
    @Service
    public class UserService {
    	@Autowired
    	private UserVOMapper mapper;
    	
    	/**
    	 * 导出excel
    	 * @throws Exception 
    	 */
    	public Workbook queryExportUser() throws Exception{
    		List<UserVO> list=mapper.queryExportUser();   //读取数据库数据
    		String[] excelHeader={"账号ID","账号","用户名","密码"};  //设置Excel头部
    		Workbook wb = new SXSSFWorkbook(1000);
    		
    		Sheet sheet = wb.createSheet("Sheet1");//创建工作表
    		Row row = sheet.createRow(0);  //创建行,从0开始
    		CellStyle style = wb.createCellStyle();
    		style.setAlignment(HorizontalAlignment.CENTER);  //对齐方式
    		
    		//导入头部
    		for (int i = 0; i < excelHeader.length; i++) {
    			Cell cell = row.createCell(i);
    			cell.setCellValue(excelHeader[i]);
    			cell.setCellStyle(style);
    			sheet.setColumnWidth(1, (short) 6000);  //设置列宽
    		}
    		UserVO user=null;
    		//导入数据
    		for(int i=0 ; i<list.size();i++){
    			row = sheet.createRow(i + 1);  
    			user=list.get(i);
    			row.createCell(0).setCellValue(user.getId());   //设置单元格内容
    			row.createCell(1).setCellValue(user.getAccount());
    			row.createCell(2).setCellValue(user.getName());
    			row.createCell(3).setCellValue(user.getPassword());
    		}
    		return wb;
    	}
    }
    

    2.5 controller层代码

    package com.gusy.muban.controller;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.UUID;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.log4j.Logger;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.aspectj.apache.bcel.classfile.Constant;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.gusy.common.utils.FileUtil;
    import com.gusy.common.utils.ResultVO;
    import com.gusy.muban.service.UserService;
    
    
    
    /**  
    * @author gusy 
    */
    @Controller
    @RequestMapping("/user")
    public class UserController {
    	
    	private static Logger logger=Logger.getLogger(UserController.class);
    	
    	@Autowired
    	private UserService userService;
    	
    	/**
    	 * 导出excel
    	 * @param response
    	 * @param request
    	 */
    	@RequestMapping("/queryExportUser")
    	public void queryExportUser(HttpServletResponse response,HttpServletRequest request){
    		OutputStream ouputStream = null;
    		try {
    			Workbook wb = userService.queryExportUser();
    			FileUtil.setResponse(request,response,"用户表_"+UUID.randomUUID()+".xlsx");		
    			ouputStream = response.getOutputStream();
    			wb.write(ouputStream);
    			ouputStream.flush();
    		} catch (Exception e) {
    			logger.error("[queryExportUser]异常", e);
    		} finally {
    			if (ouputStream != null) {
    				try {
    					ouputStream.close();
    				} catch (IOException e) {
    					logger.error("[queryExportUser]输出流关闭异常", e);
    				}
    			}
    		}
    	}
    }

    2.6 网页代码

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    	String path = request.getContextPath();
    	pageContext.setAttribute("path", path);
    	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    
    <!doctype html>
    <html>
    
    <head>
    <meta charset="utf-8">
    <title>主页</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
    	content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="${path }/common/layui/css/layui.css"
    	media="all">
    <script src="${path }/common/layui/layui.js"></script>
    <style type="text/css">
    .main {
    	text-align: center;
    	margin: 200px 0;
    }
    </style>
    </head>
    <body>
    
    	<div class="main">
    		<a href="#">
    			<button
    				class="layui-btn layui-btn-big layui-btn-normal layui-btn-radius" οnclick="exportUser()">导出</button>
    		</a>
    	</div>
    
    </body>
    <script type="text/javascript">
    	function exportUser(){
    		var url="/muban/user/queryExportUser.do"
    		window.location.href = url;
    	}
    </script>
    </html>

    三、运行结果


    补充:Fileutil setResponse方法代码
    	/**
    	 * 设置excel文件响应(解决火狐中文名问题)
    	 * @param request 请求对象
    	 * @param response 响应对象
    	 * @param filename 文件名
    	 * @throws Exception
    	 */
    	public static void setResponse(HttpServletRequest request,HttpServletResponse response,String filename) throws Exception{
    		String userAgent = request.getHeader("User-Agent");		
    		if(userAgent.toLowerCase().contains("firefox")){
    			filename = new String(filename.getBytes("UTF-8"), "ISO-8859-1");
    		}else{
    			filename = URLEncoder.encode(filename, "UTF-8");
    		}
    		response.setContentType(request.getServletContext().getMimeType(filename)); 		
    		response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", filename));	
    	}

    over!


    展开全文
  • 笔者在Java开发中常常会遇到数据库数据导出Excel的要求,比如在我的一个项目中,客户要求所有查询结果都可以导出Excel,对于数据量不大的(几万条),这比较容易实现,但对于数据量比较大的(几十万及以上,...

    笔者在Java开发中常常会遇到将数据库数据导出到Excel的要求,比如在我的一个项目中,客户要求所有查询结果都可以导出到Excel,对于数据量不大的(几万条),这比较容易实现,但对于数据量比较大的(几十万及以上,具体要看导出内容的字段个数和长短),则在数据库查询和生成excel文件上都会有麻烦。

     

    以我在实际项目中的一个表为例,Oracle 10g数据库,这个表中有40多个字段,内容是姓名、年龄、性别、地址、生日、职业、工作单位等个人信息,要求导出20多个字段。导出为HTML的表格的话,即数据放在<table><tr><td>中,1万条数据大约需要7.5-8M。

     

    对于数据库查询,可以通过以下二个方法解决:

     

    一、采用分页查询。根据数据库服务器性能和数据库操作频繁程度,决定每页大小,比如每页5000到10000行,每次查询出一页,然后生成excel文件。这种方法的缺点是需要多次查询数据库,而数据库分页查询因需要使用临时表,所以比较耗性能。

     

    二、采用中间表。一次性将查询结果放到中间表中,可采用“select ...into...”,再从中间表中一部分一部分地取出来生成excel。每取一部分,就可以删除它,或者标记为“已导出”。这种方法需要操作中间表,过程麻烦一些,但效率好。

     

     

    下面是生成excel的几种方法(Office 2000以上实现):

     

    一、采用POI或者JXL组件生成EXCEL格式的文件。这种方式可以很好地控制内容的格式,缺点是这二种方式都是将EXCEL文件整个加载到内存中进行处理的,向excel追加数据时,也要先全部加载原文件,当数据量大时,生成的EXCEL文件会很大,可能会因占内存太多而导致WEB服务器内存溢出。

     

    二、利用Excel文件支持HTML格式的功能,即系将html文件后缀名改为.xls,就可以用excel打开。这是最简单的方法,在Jsp中只要将http头改一下,让客户端浏览器下载生成的.xls文件,而不是让浏览器打开html文件就可以了。Jsp文件代码如下:

    [xhtml] view plaincopy
    1. <%@ page language="java" contentType="text/html; charset=GBK" %>  
    2. <%  
    3.  String fileName = "export_file_name.xls";//下载对话框的保存文件名  
    4.  response.setHeader("Content-disposition", "attachment; filename="+ fileName);  
    5. %>  
    6. <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">  
    7. <head>  
    8. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=GBK">  
    9. <title>个人信息导出清单</title>  
    10. </head>  
    11. <table>  
    12.   <tr>  
    13.     <td>姓名</td><td>年龄</td><td>性别</td><td>身份证号</td><td>......</td>  
    14.   </tr>  
    15.   <tr>  
    16.     <td>张三</td><td>25</td><td></td><td x:str="'1234567890"></td><td>......</td>  
    17.   </tr>  
    18.   <tr>  
    19.     <td>小美</td><td>23</td><td></td><td x:str="'0987654321"></td><td>......</td>  
    20.   </tr>  
    21.   <% /*利用Jsp输出更多行*/ %>  
    22. </table>  
    23. </html>  

    注意上面的<html>标记,加上了microsoft office的命名空间,主要是处理excel格式问题,比如身份号“440957198402125468”,在excel中会认为是数字型,转换为“4.41E+17”这样的科学计数法。所以要控制格式,而格式转换最简单的就是在字符串前加一个单引号“'”,在excel中就不会自动转换了,对于时间格式也一样。这里加单引号,是通过在表格中的单元格中加属性x:str来实现的:<td x:str="'数字或时间字符串内容"></td>,加了这个属性后,单元格中不需要再加内容了,这样正好减少了生的的xls文件的源码。

     

    采用这种方法,用jsp来生成xls文件并下载时,jsp页面一次性将内容加载到内存中,如果数据量大,生成的文件太大,可能会使web服务器内存溢出面抛出OutOfMemory异常。可以换一种方法,生成文件时先写到服务器文件系统中,写文件采用流的方式不断追加,写完文件后再下载。

     

    不过这种方式还有另外一个问题,就是只能生成一个工作表,而EXCEL一个工作表(sheet)最多只能有65535行数据,当数据内容多时,需要建更多的sheet,笔者目前还没找到在html中加多个sheet的方法。

     

    三、生成符合EXCEL的XML规范的XML文件。类似第二种方法,生成后缀名为.xls,内容为xml格式的文本,其中的xml必须完全符合excel xml规范(Excel xml schema/DTD,相关内容在http://msdn.microsoft.com/en-us/library/aa140062(office.10).aspx),否则excel不能打开。采用DataOutStream流的形式,先将xml格式的内容写到服务器文件系统中,再下载。如果数据量大,可分多个sheet。xml格式如下:

    [xhtml] view plaincopy
    1. <?xml version="1.0" encoding="GBK" ?>  
    2. <?mso-application progid="Excel.Sheet"?>  
    3. <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"  
    4.  xmlns:o="urn:schemas-microsoft-com:office:office"  
    5.  xmlns:x="urn:schemas-microsoft-com:office:excel"  
    6.  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"  
    7.  xmlns:html="http://www.w3.org/TR/REC-html40">  
    8.  <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">  
    9.   <Version>11.9999</Version>  
    10.  </DocumentProperties>  
    11.  <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">  
    12.   <WindowHeight>10005</WindowHeight>  
    13.   <WindowWidth>10005</WindowWidth>  
    14.   <WindowTopX>120</WindowTopX>  
    15.   <WindowTopY>135</WindowTopY>  
    16.   <ActiveSheet>1</ActiveSheet>  
    17.   <ProtectStructure>False</ProtectStructure>  
    18.   <ProtectWindows>False</ProtectWindows>  
    19.  </ExcelWorkbook>  
    20.  <Styles>  
    21.   <Style ss:ID="Default" ss:Name="Normal">  
    22.    <Alignment ss:Vertical="Center"/>  
    23.    <Borders/>  
    24.    <Font ss:FontName="ËÎÌå" x:CharSet="134" ss:Size="12"/>  
    25.    <Interior/>  
    26.    <NumberFormat/>  
    27.    <Protection/>  
    28.   </Style>  
    29.   <Style ss:ID="s23">  
    30.    <Font ss:FontName="ËÎÌå" x:CharSet="134" ss:Size="12" ss:Color="#0000FF"  
    31.     ss:Bold="1"/>  
    32.    <Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>  
    33.   </Style>  
    34.  </Styles>  
    35.  <Worksheet ss:Name="Sheet1">  
    36.   <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="3" x:FullColumns="1"  
    37.    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="16.5">  
    38.    <Row ss:AutoFitHeight="0">  
    39.     <Cell><Data ss:Type="Number">1</Data></Cell>  
    40.     <Cell><Data ss:Type="String">aaa</Data></Cell>  
    41.    </Row>  
    42.    <Row ss:AutoFitHeight="0">  
    43.     <Cell><Data ss:Type="Number">2</Data></Cell>  
    44.     <Cell><Data ss:Type="String">bbb</Data></Cell>  
    45.    </Row>  
    46.    <Row ss:AutoFitHeight="0">  
    47.     <Cell><Data ss:Type="Number">3</Data></Cell>  
    48.     <Cell><Data ss:Type="String">ccc</Data></Cell>  
    49.    </Row>  
    50.   </Table>  
    51.   <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">  
    52.    <Unsynced/>  
    53.    <ProtectObjects>False</ProtectObjects>  
    54.    <ProtectScenarios>False</ProtectScenarios>  
    55.   </WorksheetOptions>  
    56.  </Worksheet>  
    57.  <Worksheet ss:Name="Sheet2">  
    58.   <Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="4" x:FullColumns="1"  
    59.    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">  
    60.    <Column ss:AutoFitWidth="0" ss:Width="73.5"/>  
    61.    <Column ss:AutoFitWidth="0" ss:Width="119.25"/>  
    62.    <Column ss:AutoFitWidth="0" ss:Width="89.25"/>  
    63.    <Column ss:AutoFitWidth="0" ss:Width="141"/>  
    64.    <Row>  
    65.     <Cell ss:StyleID="s23"><Data ss:Type="String">aaaa</Data></Cell>  
    66.     <Cell ss:StyleID="s23"><Data ss:Type="String">bbbb</Data></Cell>  
    67.     <Cell ss:StyleID="s23"><Data ss:Type="String">cccc</Data></Cell>  
    68.     <Cell ss:StyleID="s23"><Data ss:Type="String">dddd</Data></Cell>  
    69.    </Row>  
    70.    <Row>  
    71.     <Cell><Data ss:Type="String">aaaa</Data></Cell>  
    72.     <Cell><Data ss:Type="String">bbbb</Data></Cell>  
    73.     <Cell><Data ss:Type="String">cccc</Data></Cell>  
    74.     <Cell><Data ss:Type="String">dddd</Data></Cell>  
    75.    </Row>  
    76.    <Row>  
    77.     <Cell><Data ss:Type="String">aaaa</Data></Cell>  
    78.     <Cell><Data ss:Type="String">bbbb</Data></Cell>  
    79.     <Cell><Data ss:Type="String">cccc</Data></Cell>  
    80.     <Cell><Data ss:Type="String">dddd</Data></Cell>  
    81.    </Row>  
    82.    <Row>  
    83.     <Cell><Data ss:Type="String">aaaa</Data></Cell>  
    84.     <Cell><Data ss:Type="String">bbbb</Data></Cell>  
    85.     <Cell><Data ss:Type="String">cccc</Data></Cell>  
    86.     <Cell><Data ss:Type="String">dddd</Data></Cell>  
    87.    </Row>  
    88.   </Table>  
    89.   <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">  
    90.    <Print>  
    91.     <ValidPrinterInfo/>  
    92.     <PaperSizeIndex>9</PaperSizeIndex>  
    93.     <HorizontalResolution>600</HorizontalResolution>  
    94.     <VerticalResolution>600</VerticalResolution>  
    95.    </Print>  
    96.    <Selected/>  
    97.    <ProtectObjects>False</ProtectObjects>  
    98.    <ProtectScenarios>False</ProtectScenarios>  
    99.   </WorksheetOptions>  
    100.  </Worksheet>  
    101.  <Worksheet ss:Name="Sheet3">  
    102.   <Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"  
    103.    x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="16.5"/>  
    104.   <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">  
    105.    <Unsynced/>  
    106.    <ProtectObjects>False</ProtectObjects>  
    107.    <ProtectScenarios>False</ProtectScenarios>  
    108.   </WorksheetOptions>  
    109.  </Worksheet>  
    110. </Workbook>  

    注意:xml头、命名空间必须正确,Workbook为根标记,Worksheet为一个工作表(sheet),Table为工作表中的表,Row为表中一行,Cell为单元格,Data为单元格中的数据,可以有诸如String、Number等不同格式。Styles类似Html的style,定义之后可以在后面的行、单元格中引用。其他标记和属性,请到查microsoft csdn文档。输出时,不断追加Worksheet、Table、Row、Cell到目标文件中即可。

     

    采用这种方式,由于是采用流输出,不用一次加载到内存中,所以比POI和JXL效率好,而又能生成多个sheet,所以比第二种方法好,可应用来导出大批量数据。

     

    以上几种方式,可根据实际情况采用,另外还有其他xml方式,比如结合xslt、MIME映射等,但是更加复杂,笔者尚未作研究。

    展开全文
  • 最近项目需要导出一个复杂的excel,发现无论是使用 poi 还是阿里巴巴的 easyexcel 这种编程式的方式实现起来代码很麻烦,于是采用 freemarker 的方式,做法是先 真正的excel 另存 xml格式,然后 编辑此xml文件 写...
  • 笔者在Java开发中常常会遇到数据库数据导出Excel的要求,比如在我的一个项目中,客户要求所有查询结果都可以导出Excel,对于数据量不大的(几万条),这比较容易实现,但对于数据量比较大的(几十万及以上,...
  • 1. pom.xml 添加依赖 <!--poi start--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </...
  • java 大数据EXCEL导出

    千次阅读 2018-04-20 15:00:28
    1、需要加载以下三个包使用XSSFWorkbook 实现大数据导出数据分批从数据库取出,比如一次1万条,然后按顺序生成相应的EXCEL文件,再通过压缩处理,生成的EXCEL文件压缩ZIP包,下载该包poi-ooxml-3.17.jar、...
  • 做管理系统比较爱用,还在像以前用html化报表,还像以前那样用DIV固定...我可以通过这样去取值2、这文件另存为xml表(.xml)的格式,然后文件扔在你的action包中,或者其他文件夹下。3、这时候的文件还是.xml格...
  • 有需求就是EasyUI Datagrid的数据导出为Excel且需要通用,因此本文使用EasyUI Datagrid的数据转换成XML Post提交给java 后台代码如下: outputExcel.js $.extend($.fn.datagrid.methods, { getExcelXml...
  • 原文地址:https://www.cnblogs.com/qaz110/p/4936544.html做管理系统比较爱用,还在像以前用html化...这个是方便找它的位置,像我这样是因为我的JAVA代码封装了map,我可以通过这样去取值2、这文件另存为xml表(....
  • Java 实现导出excel

    2019-08-21 10:35:04
    拿到数据,使用自定义xml中的查询方法获取数据,再用辅助工具类处理,调用下载方法进行下载。 下面用jsp页面例来获取列表数据。 filter是自定义的传值方式,用它品牌名称的查询条件带到后台,实现维度筛选进行...
  • java大数据量的excel导入导出 ...07版后, 底层文件 xml, 可以 xlsx后缀改rar 后用解压软件打开查看源文件 导入: 所需jar包: 3个 poi-ooxml-3.12-beta1-sources.jar poi-3.12-bet...
  • java导出TXT和Excel文件

    热门讨论 2012-05-24 17:08:57
    导出Excel文件利用apache的poi第三方包,可在阿帕奇官网下载(最新版本3.8,支持office2010)。解压文件后,只需要把项目导入到eclipse,再hibernate.cfg.xml里连接Oracle的URL和用户名、密码更改下。参考entity...
  • 导出excel方法: ``` exportResult:function(){ var fileName = this.title; var vExportContent = this.getExcelXml(); //alert(vExportContent); if (Ext.isIE6 || Ext.isIE7 || Ext....
  • (3)FusionChart输出图片、PDF、Excel 环境: 操作系统:Windows 8.1 企业版 开发环境:MyEclipse 2015 Stable 2.0 1、准备JavaWeb项目 FusionCharts可以接受JSON、XML类型的数据...
  • 使用FreeMaker导出excel

    2017-09-13 10:54:38
    编写excel模板并将excel模板导出为xml 用编辑工具打开xml文件其修改为 ftl标签用法请自行百度 文件后缀名改为ftl即可 编写java代码 这样可以不用生成excel文件直接导出下载 异常问题汇总 操作步骤1.编写excel...
  • 快逸报表导出成XML文件快逸报表有着强大的输出功能,可以直接把web报表导出为Excel、Word、Pdf、Txt等文件形式。但是一些web报表用户希望可以报表导出到XML文件中以便对数据进行分析与解析,这样就需要我们用一些...
  • 说明:适合数据库导出为xml时转成Excel 本工具上传至GitHub:https://github.com/xiaostudy/xiaostudyAPI3 doc4j的maven依赖 1 <!--xml解析的dom4j--> 2 <!-- ...
  • (1)准备一个Java Web项目(2)FusionCharts加入到项目(3)FusionChart输出图片、PDF、Excel环境:操作系统:Windows 8.1 企业版开发环境:MyEclipse 2015 Stable 2.01、准备JavaWeb项目FusionCharts可以...
  • java数据导出表格

    2020-01-11 10:56:15
    最近用到了数据导出为excel文件,记录一下。 1 环境配置 本人是在SSM框架测试该技术,所以要在pom.xml文件中引入依赖 <!--用于查询到的数据导出为excel文件--> <!-- ...
  • 2.做好的模板文件保存为xml文件 3.打开xml文件,查看"道乐夫{unitName}"是否在一起,不在一起的话删除多余部分 4.修改的xml文件后缀改ftl 5.工具类 package com.util; import java.io.BufferedWriter; import...
  •  数据库采用MySQL,开发框架采用Spring+mybatis, 表已经建立好,Excel文件每一列的标题汉字,所以每个表的字段名是自己定义的,并列标题作为该字段的注释。梳理表之间的关系并建表,写好实体类,xml映射文...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

java将xml导出为excel

java 订阅