使用JExcel导出excel文件
package org.aaa.portal.tools; import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map; import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class ExcelUtils {
public static final String COLUMN_KEY="key"; //列的键,对应JSONObject的key
public static final String COLUMN_TEXT="text"; //列头名称
/**
* 把JSONArray存储为Excel
* @param fileName 完整文件路径名称
* @param sheetName sheet 名称
* @param ja JSONArray
* @param columns
* List<Map<String, String>> 按照list Item的顺序生成列
* Map格式:
Map<String,String> column1 =new HashMap<String,String>();
column1.put(ExcelUtils.COLUMN_KEY, "sUserName");
column1.put(ExcelUtils.COLUMN_TEXT, "用户名");
columns.add(column1);
*/
public static boolean exportFromJSONArray(String fileName, String sheetName,JSONArray ja,
List<Map<String, String>> columns) {
boolean isSuccess=true;
WritableWorkbook book;
try {
//确保保存文件目录存在
String filePathStr=fileName.substring(0,fileName.lastIndexOf(File.separatorChar));
File filePath=new File(filePathStr);
if(!filePath.exists()){
filePath.mkdirs();
}
//确保保存文件存在
File file=new File(fileName);
if(!file.exists()){
file.createNewFile();
}
// 在指定地址创建EXCEL表
book = Workbook.createWorkbook(file);
// 设置第一个工作薄的名字
WritableSheet sheet = book.createSheet(sheetName, 0); // 设置列头
for (int i = 0; i < columns.size(); i++) {
// 设置列宽
sheet.setColumnView(i, 20);
// 设置列头样式
// 分别设置表头,表元的格式
WritableFont fontb = new WritableFont(WritableFont.ARIAL, 8,
WritableFont.BOLD, false); // 粗体
WritableCellFormat formatb = new WritableCellFormat(fontb);
formatb.setAlignment(Alignment.CENTRE); // 水平居中
formatb.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直居中
formatb.setBorder(Border.ALL, BorderLineStyle.THIN); // 边框
// 填充列名
Label labelb = new Label(i, 0, columns.get(i).get("text"),
formatb);
sheet.addCell(labelb);
} //设置数据单元格格式
WritableFont fontc = new WritableFont(WritableFont.ARIAL, 8,
WritableFont.NO_BOLD, false);
WritableCellFormat formatc = new WritableCellFormat(fontc);
formatc.setAlignment(Alignment.CENTRE);
formatc.setVerticalAlignment(VerticalAlignment.CENTRE);
formatc.setBorder(Border.ALL, BorderLineStyle.THIN);
// 填充数据
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
// 按照预设的列顺序填充
for (int j = 0; j < columns.size(); j++) {
String key = columns.get(j).get("key");
Object text = jo.get(key);
// 如果是数字,则按照数字的格式填充
if (text != null && text.toString().matches("\\d+")) {
Number numberc = new Number(j, i+1, Long.parseLong(text.toString()),
formatc);
sheet.addCell(numberc);
} else {
//其余全按文字处理
Label labelb = new Label(j, i+1, text.toString(), formatc);
sheet.addCell(labelb);
}
}
} book.write();
book.close();
} catch (IOException e) {
e.printStackTrace();
isSuccess=false;
} catch (RowsExceededException e) {
e.printStackTrace();
isSuccess=false;
} catch (WriteException e) {
e.printStackTrace();
isSuccess=false;
}
return isSuccess;
}
}
使用JExcel导出excel文件的更多相关文章
- ExtJS Grid导出excel文件
ExtJS Grid导出excel文件, 需下载POI:链接:http://pan.baidu.com/s/1i3lkPhF 密码:rqbg 1.将Grid表格数据连同表格列名传到后台 2.后台导出e ...
- PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...
- jxl导出Excel文件
一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...
- PHP导出excel文件
现在教教你如何导入excel文件: 在我的文件储存里面有一个com文件夹的,将其解压放在ThinkPHP/Library/文件夹里面,然后就是写控制器啦!去调用这个插件: <?php names ...
- 【转】 (C#)利用Aspose.Cells组件导入导出excel文件
Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...
- PHPExcel导出excel文件
今天园子刚开,先来个货顶下,后续园丁qing我会再慢慢种园子的,希望大家多来园子逛逛. PHPExcel导出excel文件,先说下重要的参数要记住的东西 impUser() 导入方法 exportEx ...
- 导出Excel文件
/// <summary> /// 类说明:Assistant /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http ...
- 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法
-----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...
- MSSQL2005 导出excel文件
Title:MSSQL2005 导出excel文件 --2011-01-16 16:01 EXEC master..xp_cmdshell 'bcp "select * from 数据库名 ...
随机推荐
- Codeforces Round #154 (Div. 2) : B
一个很简单的题: 方法一: 二分. 代码: #include<cstdio> #include<algorithm> #define maxn 100005 using nam ...
- 关于Cookie跨域操作的一些总结
正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得. 1.可在同一应用服务器内共享方法:设置cookie.setPath("/"); 本机to ...
- win7电脑自动关机怎么设置
WIN7系统自带了关机工具的,下面是步骤 1.“开始”-右键点击“计算机”选择“管理”,在左侧界面中选择“任务计划程序”. 2.在右侧界面中选择“创建基本任务”(向导式创建任务,推荐新手使用)或者“创 ...
- 数据结构(平衡树,树分治,暴力重构):WC 2014 紫荆花之恋
[题目描述] 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来. 仔细看看的话,这棵大树实际上是一个带权 ...
- Python IDLE 清屏工具
转载自:http://www.cnblogs.com/maybego/p/3234055.html 1.下载clearwindow.py(右击-目标另存为,直接点击会打开脚本内容). 2.拷贝c ...
- HDOJ(HDU) 2519 新生晚会(组合公式)
Problem Description 开学了,杭电又迎来了好多新生.ACMer想为新生准备一个节目.来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法? I ...
- Aix项目_shell_rsh_01
rsh(remote shell) 功能说明:远端登入Shell. 语 法:rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令] 补充说明:rsh提供用户环境,也就是 ...
- 《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的期望
在关于离散型随机变量函数的期望的讨论中,我们很容易就得到了如下的等式: 那么推广到连续型随机变量,是否也存在类似的规律呢? 即对于连续型随机变量函数的期望,有: 这里给出一个局部的证明过程,完整的证明 ...
- asterisk 能打电话的配置
若使用的是chan_sip.so模块,则在sip.conf里添加: [10]type=friend;context=phonescontext=publichost=dynamicsecret=123 ...
- 广州Uber优步司机奖励政策(1月25日~1月31日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...