自己写的,记录下来,方便以后使用。
package org.wsr.utils;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/**
* 导出excel工具 110829
*
* @author wangsr
*
*/
public class JXLUtils {
/**
* 导出excel
* @param os 输出流
* @param data 导出数据,格式:list(0)为标题的名字,list(1..n)vo/po的属性
* 例如:
* list(0){"姓名","年龄","性别"}
* list(1..n){"张三","10","男"},{"李四","10","女"}
* @param sheetName sheet1的名字(暂时只有一个sheet)
* @throws Exception
*/
public static void exportExcel(OutputStream os, List<String[]> data,
String sheetName) throws Exception {
if (data == null || data.size() == 0) {
throw new Exception("导出的数据不能为空!!");
} else {
// 创建工作簿
try {
WritableWorkbook wb = Workbook.createWorkbook(os);
// 创建工作表
WritableSheet sheet = wb.createSheet(sheetName, 0);
//设置默认宽度
sheet.getSettings().setDefaultColumnWidth(15);
// 字体格式
WritableFont wf = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD);
WritableCellFormat wcf = new WritableCellFormat(wf);
// 设置背景色
wcf.setBackground(Colour.LIGHT_GREEN);
// 对对齐方式
wcf.setAlignment(jxl.format.Alignment.CENTRE);
int count = 0;
int[] len = new int[data.get(0).length];
Iterator<String[]> iter = data.iterator();
while (iter.hasNext()) {
String[] temp = iter.next();
// 单元格
Label label = null;
// 标题行,第一列为序号
if (count == 0) {
//标题行有特殊的格式(第一行)
label = new Label(0, 0, "序号", wcf);
sheet.addCell(label);
for (int i = 0; i < temp.length; i++) {
label = new Label(i+1, 0, temp[i], wcf);
//设置列宽
int tempLen = temp[i].getBytes().length;
if (tempLen > len[i] && tempLen > 15) {
//默认列宽为15,如果有大于15的列,则记下了,
//并将该列设置为改宽度+4(效果好看点)【因为需求要求列必须容纳所有内容,而jxl不能自动适应列宽,所有手动设置】
sheet.setColumnView(i+1, tempLen + 4);
//每次都要记录下最大的列宽,方便添加新的一行数据时使用该值
len[i] = tempLen;
}
sheet.addCell(label);
}
count++;
} else {
//第一列为序号
jxl.write.Number labelNum = new jxl.write.Number(0, count, count);
sheet.addCell(labelNum);
// 内容列
//列宽
int tempLen = 0;
for (int i = 0; i < temp.length; i++) {
// 是数字的转化一下
if (temp[i] != null && temp[i].trim().matches("[+-]?((0|([1-9]+[0-9]*))(\\.[0-9]+)?)")) {
labelNum = new jxl.write.Number(i+1, count, Double.valueOf(temp[i]));
sheet.addCell(labelNum);
} else {
label = new Label(i+1, count, temp[i]);
sheet.addCell(label);
}
// 设置列宽
if (temp[i] != null){
tempLen = temp[i].getBytes().length;
}
if (tempLen > len[i] && tempLen > 15) {
sheet.setColumnView(i+1, tempLen + 1);
len[i] = tempLen;
}
}
count++;
}
}
// 写出
wb.write();
wb.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
Domino notes java版导出excel,需要组件poi支持,解决Domino日常数据批量导出需求!
Java Excel读写组件jxl使用 例如导出ofice文件
这是我设计的excel导入导出组件,使用java 编写,通过xml文件的配置,来设置excel到java bean的映射。关键(配置)文件:ExcelModeMappingl.xml。 之前一直为excel的导入导出烦恼,每写一次都感觉是“重复造轮子”,...
java导入导出excel操作(jxl)
报表导出为excel、pdf、图片等多种格式,支持java
导入导出组件导入导出组件导入导出组件导入导出组件导入导出组件
Java平台下著名的POI组件下的excel导出功能代码 Java平台下著名的POI组件下的excel导出功能代码
利用开源组件POI3.0.2,用java语言实现了动态导出Excel文档,并且也实现了Excel文档的导入。有完整的例子,可直接使用。ExportExcel类为导出Excel报表通用类。 1.将源代码导入eclipse中 2.部署项目,启动tomcat...
该组件只支持小程序Excel 的表格导出 EclexArray:该属性是 表格的体的数据 tableToExcel:这个是导出事件 `<tr><td style="text-align: center; width:100rpx;">人员姓名</td></tr >`表格的头部
java ,使用POI组件导出Excel
Excel-export是用于将JAVA中的数据结构导出为excel文件的工具组件,该组件目前版本为1.0,支持office2007和office2003,调用该组件将会在服务端生成两个文件,一个是office2007xls,一个是office2003.xls ,由于开发...
java组件(DateUtils,EncryptUtil,StringUtils,WordEdit功能,ZipUtils,导出Excel,读写Excel文件)
一个通用从数据库导出excel、excel导入数据库组件的Java项目程序所用到的jar包。
现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI。这里我们用Apache POI!我们先去Apache的大本营下载POI的jar包:http://poi.apache.org/ ,我这里使用的是3.0.2版本
主要介绍了Java使用poi组件导出Excel格式数据,需要的朋友可以参考下
java通过POI组件可以给导出的excel表格添加水印,不需要额外的组件
只需要查出结果,调用引擎生成excel,其他全部配置写在配置文件里
Excel 格式使用在非 Excel 软件中来实现导入-导出功能。因为如此,Java 软件也应该提供通用的剪贴板功能,例如在 JTable 和 Excel 间复制和粘贴。本文展示了如何使用系统粘贴板在 Java 程序和 Excel 间复制数据。...
这个rar中包含了Java开发中常用的组件,其中有,验证码模块,上传下载模块,分页,导出excel模块的Java代码实现
POI工具包可用来读写Excel,在java开发中可用来创建、导出信息到excel表格中,还可读取excel中的信息使用到应用程序中。