`
zhangchunxiao
  • 浏览: 16578 次
社区版块
存档分类
最新评论

导出excel的两种方式(一)

    博客分类:
  • Java
 
阅读更多

1.导出excel方法调用:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.OutputStream;

@Controller
@RequestMapping(value = "/collection")
public class CollectionAction {
 @RequestMapping("/exportExcel4ServiceFee")
    public void exportExcel4ServiceFee(LoanSplitModel loanSplitModel,HttpServletRequest request, HttpServletResponse response) {
		PageView<LoanSplitModel> pageView = collectionService.downPageView4RemindersServiceFee(loanSplitModel);
        int count = 1;
        List<String[]> list = new ArrayList<String[]>();
        list.add(new String[]{"序号","合同编号","客户姓名","合同金额"});
        for (LoanSplitModel item : pageView.getRecords()) {
            StringBuffer sb = new StringBuffer();
            sb = sb.append(count++).append(",")//序号
                   .append(item.getContractCode() != null ? item.getContractCode() : "").append(",")//合同编号
                   .append(item.getCustomerName() != null ? item.getCustomerName() : "").append(",")//客户姓名
                   .append(item.getContractMoney() != null ? df.format(item.getContractMoney()) : "").append(",");//合同金额    
            list.add(sb.toString().split(","));
        }
        HSSFWorkbook workbook = ExcelUtil.addHSSFSheet(list);
        try {
            OutputStream os = ExcelUtil.getRespone("服务费统计表.xls", response);
            workbook.write(os);
            os.flush();
            os.close();
        } catch (IOException e) {
        	e.printStackTrace();
            logger.error("-----------服务费统计列表导出excel异常", e);
        }
    }

 调用的ExcelUtil类如下:

import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcelUtil {
	public static HSSFWorkbook addHSSFSheet(List<String[]> list) {
		HSSFWorkbook workbook = new HSSFWorkbook();
		// 产生工作表对象
		HSSFSheet sheet = workbook.createSheet();
		HSSFCellStyle cellStyle = workbook.createCellStyle();
		cellStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
		HSSFCellStyle numCellStyle = workbook.createCellStyle();
		numCellStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
		numCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
		HSSFRow row = sheet.createRow((int) 0);// 创建一行
		  
		HSSFCell cell = row.createCell((int) 0);// 创建一列

		for (int i = 0; i < list.size(); i++) {
			row = sheet.createRow((int) (i));// 创建一行
			String[] files = list.get(i);
			for (int k = 0; k < files.length; k++) {
				sheet.setColumnWidth( k, 5900);// 设置列宽  
				cell = row.createCell((int) k);// 创建一列
				cell.setCellStyle(cellStyle);
				Pattern pNum=Pattern.compile("^(([1-9]\\d{0,9})|0)(\\.\\d{2})+$"); 
				if(files[k] == null || !pNum.matcher(files[k]).matches()){
					cell.setCellType(HSSFCell.CELL_TYPE_STRING);
					cell.setCellValue(files[k]!=null?files[k]:"");
				}else{
					
					cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
					cell.setCellStyle(numCellStyle);
					cell.setCellValue(Double.parseDouble(files[k]));
				}
			}
		}
		return workbook;
	}
	
	public static OutputStream getRespone(String filename,
			HttpServletResponse response) {
		OutputStream os = null;
		try {
			filename = new String(filename.getBytes("GBK"), "ISO8859-1");
		} catch (UnsupportedEncodingException e) {
		}
		response.setCharacterEncoding("utf-8");
		response.setContentType("multipart/form-data");
		response.setHeader("Content-Disposition", "attachment;fileName="
				+ filename);
		try {
			os = response.getOutputStream();
		} catch (IOException e) {
		}
		return os;
	}
	  
}

 

分享到:
评论

相关推荐

    Excel导出两种方式

    本篇文章将深入探讨如何通过javabean和Map两种方式使用Apache POI库来导出包含图片的Excel表格。 Apache POI是Apache软件基金会的一个开源项目,它为Microsoft Office格式(如DOC, XLS, PPT等)提供了读写支持。...

    unifastreport导出Excel二种方式.rar

    本压缩包文件“unifastreport导出Excel二种方式.rar”主要包含了两种方法将UnifastReport报表导出为Excel格式的详细说明。以下是对这两种方法的详细解释: 1. 使用UnifastReport内置的导出功能: UnifastReport...

    POI导出Excel文件

    这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序...

    C# 导出excel表格(xls、xlsx两种格式)

    总之,C#提供了多种方式来导出Excel表格,可以根据项目需求和环境选择合适的方法。通过上述代码,你可以根据自己的数据结构创建自定义的Excel文件,不论是xls还是xlsx格式。在实际应用中,还可以进一步完善功能,如...

    C#导出Excel 导出PDF

    这两种格式在数据共享、报告生成和打印等方面非常常见。 首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx`或`.xls`格式存储,C#可以借助Microsoft Office Interop库直接操作Excel对象,但这要求目标机器上...

    unifastreport导出Excel二种方式

    导出过程与导出Excel类似,只需将导出类型设置为frxExportPdf即可。 在Unigui环境中,FastReport的集成非常顺畅,Unigui提供了丰富的控件和事件来支持FastReport的操作,如在按钮点击事件中触发报表的生成和导出。...

    asp导出Access数据到Excel两种方法实例

    这两种方法各有优缺点:服务器端方法需要服务器有Excel安装,但能直接生成Excel文件;客户端方法无需服务器端支持Excel,但用户必须手动用Excel打开CSV文件。选择哪种方法取决于具体的应用场景和资源限制。

    POI和JXL两种方式导出EXCEL

    这两种库都是Java中广泛使用的处理Microsoft Office文件格式的库,特别是Excel。 首先,Apache POI是一个开源项目,它提供了读取和写入Microsoft Office格式文件的能力,包括Excel。POI库的强大之处在于它可以处理...

    VUE导出Excel,两种方法,方法二带样式:文字居中,自动换行,列宽设置,单元格合并,冻结表头等

    在标题提到的两种方法中,我们将重点讨论如何利用SheetJS和xlsx-style库来实现更复杂的Excel导出功能,如文字居中、自动换行、列宽设置、单元格合并以及冻结表头。 SheetJS是一个强大的JavaScript库,它允许开发者...

    easyui datagrid 数据导出到Excel

    下面将详细介绍两种有效的方法来实现EasyUI Datagrid数据导出到Excel的功能,并结合提供的文件名来推测具体实现步骤。 **方法一:使用JavaScript库(例如wxport)** 文件`wxport excel.txt`可能包含了使用wxport库...

    关于导出excel时保持样式的一个方法

    但是这两种导出方法难以保持表头等单元格合并,表格颜色,表格字体等样式. 利用将网页导出到excel中的方式,可以解决以上问题. &lt;br&gt;/// &lt;summary&gt;&lt;br&gt; /// 导出excel /// &lt;/summary&gt;&lt;br&gt; /// ...

    Export2Excel.js导出excel

    标签中的"vue"表明这是一个与Vue框架相关的技术,Vue提供了一种声明式的编程方式,使得组件化开发更加便捷高效。"excel"则表示这是关于处理Excel文件的技术。"Blob"是Web API的一部分,用于处理二进制数据,它在前端...

    easyPoi模板导出Excel报表(xls 和xlsx 都支持)

    为了解决这个问题,Java开发领域出现了许多库,其中EasyPoi是一款广泛应用的工具,它能够方便地生成Excel报表,支持xls和xlsx两种格式。本文将详细介绍如何使用EasyPoi模板来导出Excel报表,并深入探讨其背后的原理...

    servlet导入导出excel

    在Java Web开发中,Servlet是一种常用的服务器端编程接口,用于扩展服务器的功能。...通过这种方式,你可以构建一个功能完善的Web应用,允许用户方便地导入和导出Excel数据,从而提升数据处理的效率和便捷性。

    GridView导出Excel DataTable导出Excel 实例源码

    以上两种方法都可以实现在VS2008和Access数据库环境下将数据导出为Excel文件,适用于需要将Web应用中的数据以Excel格式分享或存档的情况。需要注意的是,对于大数据量,直接导出DataTable可能更高效,因为不需要先将...

    组态王历史数据导出EXCEL表格的方法.docx

    组态王历史数据导出EXCEL表格的方法 组态王是一种工业自动化软件,具有强大的数据采集和处理能力。为了更好地对历史数据进行分析和处理,需要将其导出到EXCEL表格中。本文将介绍组态王历史数据导出EXCEL表格的方法...

    excel导出支持前台和后台导出

    总结,Excel导出支持前台和后台两种方式,每种都有其适用场景。前台导出适合小数据量和对实时性要求高的情况,而后台导出则适合大数据量和需要保证格式一致性的场景。结合Struts2框架,我们可以轻松地在后台实现高效...

    导出Excel方法大全

    本篇文章将详细介绍两种在ASP.NET中导出Excel的方法,主要关注如何从GridView控件导出数据。 1. 存储在服务器并提供下载链接 这种方法首先将导出的Excel文件存储在服务器的特定文件夹下,然后通过HTTP响应将文件...

    纯前端:luckysheet在线编辑Excel导出,Excel文件导入

    在现代Web应用中,处理Excel数据已经成为一种常见的需求,特别是在数据分析、报表制作等领域。本文将深入探讨一个纯前端解决方案——Luckysheet,它允许用户在浏览器中直接编辑Excel,并实现文件的导入导出功能。 ...

    普通方式和Ext方式导出Excel代码

    本篇将详细讲解两种常见的导出Excel的方法:普通方式和Ext方式。 首先,让我们从普通方式导出Excel开始。普通方式通常指的是使用服务器端编程语言(如Java、Python、C#等)生成Excel文件,然后将其作为HTTP响应返回...

Global site tag (gtag.js) - Google Analytics