利用JAVA操作EXCEL文件(JAVA EXCEL API)
作者:silvermew 日期:2007-12-18 08:51:58
JAVA EXCEL API简介
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
提供以下功能:
从Excel 95、97、2000等格式的文件中读取数据;
读取Excel公式(可以读取Excel 97以后的公式);
生成Excel数据表(格式为Excel 97);
支持字体、数字、日期的格式化;
支持单元格的阴影操作,以及颜色操作;
修改已经存在的数据表;
能够读取图表信息
1.应用示例:
包括从Excel读取数据,生成新的Excel,以及修改Excel
2.在jsp中做相关测试,创建一个writeExcel.jsp
在IE中浏览writeExcel.jsp就可以动态生成Excel文档了,其中response.setContentType("application/vnd.ms-excel");语句必须要,才能确保不乱码,在jsp中输入<%@page contentType="application/vnd.ms-excel;charset=GBK"%>不行。
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
提供以下功能:
从Excel 95、97、2000等格式的文件中读取数据;
读取Excel公式(可以读取Excel 97以后的公式);
生成Excel数据表(格式为Excel 97);
支持字体、数字、日期的格式化;
支持单元格的阴影操作,以及颜色操作;
修改已经存在的数据表;
能够读取图表信息
1.应用示例:
包括从Excel读取数据,生成新的Excel,以及修改Excel
1 | package common.util;
import jxl.*;
import jxl.format.UnderlineStyle;
import jxl.write.*;
import jxl.write.Number;
import jxl.write.Boolean;
import java.io.*;
/**
* Created by IntelliJ IDEA.
* User: xl
* Date: 2005-7-17
* Time: 9:33:22
* To change this template use File | Settings | File Templates.
*/
public class ExcelHandle
{
public ExcelHandle()
{
}
/**
* 读取Excel
*
* @param filePath
*/
public static void readExcel(String filePath)
{
try
{
InputStream is = new FileInputStream(filePath);
Workbook rwb = Workbook.getWorkbook(is);
//Sheet st = rwb.getSheet("0")这里有两种方法获取sheet表,1为名字,而为下标,从0开始
Sheet st = rwb.getSheet("original");
Cell c00 = st.getCell(0,0);
//通用的获取cell值的方式,返回字符串
String strc00 = c00.getContents();
//获得cell具体类型值的方式
if(c00.getType() == CellType.LABEL)
{
LabelCell labelc00 = (LabelCell)c00;
strc00 = labelc00.getString();
}
//输出
System.out.println(strc00);
//关闭
rwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 输出Excel
*
* @param os
*/
public static void writeExcel(OutputStream os)
{
try
{
/**
* 只能通过API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,
* 因为类WritableWorkbook的构造函数为protected类型
* method(1)直接从目标文件中读取WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));
* method(2)如下实例所示 将WritableWorkbook直接写入到输出流
*/
WritableWorkbook wwb = Workbook.createWorkbook(os);
//创建Excel工作表 指定名称和位置
WritableSheet ws = wwb.createSheet("Test Sheet 1",0);
//**************往工作表中添加数据*****************
//1.添加Label对象
Label label = new Label(0,0,"this is a label test");
ws.addCell(label);
//添加带有字型Formatting对象
WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
WritableCellFormat wcf = new WritableCellFormat(wf);
Label labelcf = new Label(1,0,"this is a label test",wcf);
ws.addCell(labelcf);
//添加带有字体颜色的Formatting对象
WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
Label labelCF = new Label(1,0,"This is a Label Cell",wcfFC);
ws.addCell(labelCF);
//2.添加Number对象
Number labelN = new Number(0,1,3.1415926);
ws.addCell(labelN);
//添加带有formatting的Number对象
NumberFormat nf = new NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
ws.addCell(labelNF);
//3.添加Boolean对象
Boolean labelB = new jxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
ws.addCell(labelDT);
//添加带有formatting的DateFormat对象
DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
WritableCellFormat wcfDF = new WritableCellFormat(df);
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
//添加图片对象,jxl只支持png格式图片
File image = new File("f:\\2.png");
WritableImage wimage = new WritableImage(0,1,2,2,image);
ws.addImage(wimage);
//写入工作表
wwb.write();
wwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 拷贝后,进行修改,其中file1为被copy对象,file2为修改后创建的对象
* 尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去,
* 以使单元格的内容以不同的形式表现
* @param file1
* @param file2
*/
public static void modifyExcel(File file1,File file2)
{
try
{
Workbook rwb = Workbook.getWorkbook(file1);
WritableWorkbook wwb = Workbook.createWorkbook(file2,rwb);//copy
WritableSheet ws = wwb.getSheet(0);
WritableCell wc = ws.getWritableCell(0,0);
//判断单元格的类型,做出相应的转换
if(wc.getType == CellType.LABEL)
{
Label label = (Label)wc;
label.setString("The value has been modified");
}
wwb.write();
wwb.close();
rwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//测试
public static void main(String[] args)
{
try
{
//读Excel
ExcelHandle.readExcel("f:/testRead.xls");
//输出Excel
File fileWrite = new File("f:/testWrite.xls");
fileWrite.createNewFile();
OutputStream os = new FileOutputStream(fileWrite);
ExcelHandle.writeExcel(os);
//修改Excel
ExcelHandle.modifyExcel(new file(""),new File(""));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
|
2.在jsp中做相关测试,创建一个writeExcel.jsp
1 | <%
response.reset();//清除Buffer
response.setContentType("application/vnd.ms-excel");
File fileWrite = new File("f:/testWrite.xls");
fileWrite.createNewFile();
new FileOutputStream(fileWrite);
ExcelHandle.writeExcel(new FileOutputStream(fileWrite));
%>
|
在IE中浏览writeExcel.jsp就可以动态生成Excel文档了,其中response.setContentType("application/vnd.ms-excel");语句必须要,才能确保不乱码,在jsp中输入<%@page contentType="application/vnd.ms-excel;charset=GBK"%>不行。
平均得分
(0 次评分)
评论: 74 | 查看次数: 2005
发表评论
订阅
上一篇
|

文章来自:
标签:
道闸-挡车器
车库门
工业门
伸缩门
卷帘门
放心包袱,奔向新生活!
免烧砖机
制砖机
加气混凝土设备
加气混凝土
加气砼设备
加气块
加气块设备
压砖机
打砖机
砖机
砖机厂
免烧砖机厂
砌块砖机
氧化锌
回转窑
制砖机
加气砼设备
加气块设备
活性石灰窑
活性石灰
陶粒砂
铝矾土
锻烧窑
金属镁
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
代孕
氧化锌
水泥窑
回转窑
石灰窑
烘干窑
灰沙蒸养砖设备
灰沙砖
灰沙砖设备
灰沙蒸养砖
蒸养砖
加气砖
电加热反应釜
不锈钢反应釜
血液分析仪
塔机
塔吊
塔式起重机
塔式起重机
混凝土搅拌站
烟台经济技术开发区医院
烟台开发区医院
蒸汽流量计
涡街流量计
反应釜
淀粉设备
木薯粉设备
储罐
生态鸡蛋
水性漆
水性防锈漆
水性金属漆
水性玩具漆
数控转台
过滤机
反应釜
捏合机
化工机械
不锈钢反应釜
自控系统工程
计量灌装设备
烟台西门子
不锈钢标准件
不锈钢法兰
车库门
卷帘门
花生米脱皮机
烟台船舶物资
铁屑粉碎机
排屑器
排屑机
过滤机
过滤纸
工艺纸绳
工艺纸布
无水乙醇
facom
气动工具
管道工具
硅酸钾
油水分离器
纸带过滤机
排屑机
烟台演出
烟台留学中介
钢格板
胶浆
排屑机
纸带过滤机
蒸汽流量计
气缸
液压缸
二手不绣钢反应釜
海景房
塑料鸡笼
塑料鸭笼
双T板
假山盆景
电瓶修复
反应釜
玻璃反应釜
玻璃反应釜
高压反应釜
水热合成反应釜
外贸服装批发
液压油缸
活性炭
收缩膜
注塑
变频器
软起动器
电站锅炉清洗
GGH清洗
工业清洗
铬锆铜板
结晶器铜板
铬锆铜模具
铝青铜铸件
高炉风口
高炉冷却板
铸造铜冷却壁
电炉铜水箱
电炉集束射流氧枪
电炉导电铜瓦
矿热炉铜配件
电机斜楔
结晶轮
非晶带铸辊
铬锆铜棒
铬锆铜铸件
自耗炉坩埚
大转炉氧枪喷头
电机端环
电机导条
冰淇淋粉百度
PE板
液压油缸
油炸锅
大蒜脱皮机
蚕豆切口机
脱皮机
花生脱皮机
花生烤炉
切削液集中过滤
切屑压块机
液压缸
气缸
裤业百度
洗车机已在首页 做到前五
滤油机
iron oxide red
PE再生料
美术颜料
丙烯颜料
水粉颜料
广告画颜料
直流弧焊机
气体保护焊机
等离子弧切割机
捏合机百度
导热油炉百度 google
保温材料
直线导轨
外贸服装批发料百度
塑料托盘百度
硅橡胶电热带
渔网
管缝式锚杆
piping producers
Tubing pipe11
ERW steel pipe
China casing pipes1
Steel piping manufacturers
China steel pipe fittings
China steel pipe manufacturers
China seamless steel pipes1
塑料托盘百度
硅橡胶电热带
渔网
管缝式锚杆
烟台起重安装
烟台设备搬运
烟台搬厂
洗车机
自动洗车机
N-甲酰吗啉
电刷镀
冷焊机
铸造缺陷修补机
烟台书画
塑料管帽
烟台驾校
挖掘机配件
导电膏
气动量仪
钢格板
捏合机
泡沫机械
钢丝网架板生产线
过滤机
卡盘
排屑器
动力卡盘
油气缸
保洁公司
保洁
北京搬家
货架
有机玻璃
亚克力
光盘制作
标志设计
logo设计
vi设计
画册设计
包装设计
设计公司
液位开关
磁翻板液位计
浮球液位计
雷达物位计
料位开关
Google排名
礼品
北京翻译公司
货架
保洁
保洁公司
搬家公司
北京搬家
北京搬家公司
北京婚庆
北京婚庆公司
婚庆
婚庆公司
拓展
拓展训练
翻译公司
楼梯
北京搬家公司
管道疏通
疏通管道
北京疏通下水道
北京疏通管道
北京高压清洗
北京管道疏通
高压清洗
环卫抽粪
北京卫星电视安装
北京安装卫星电视
北京卫星天线安装
北京卫星电视天线维修
光盘印刷
光盘刻录
网站设计
Google排名
网页设计
网站制作
货架
管理咨询
猎头
北京猎头
猎头公司
北京猎头公司
写字楼
北京写字楼
写字楼出租
写字楼出售
条码机
条码打印机
hfer
管道疏通
脱发
有机玻璃
亚克力
北京翻译公司
保洁公司
保洁
货架
楼梯
北京搬家
北京搬家公司
翻译公司
礼品
拓展
拓展训练
Google排名
汽车网
搬家公司
搬家公司
北京搬家
北京搬家公司
北京搬家公司
光盘制作
光盘印刷
光盘刻录
货架
网站设计
Google排名
网页设计
网站制作
北京婚庆
北京婚庆公司
婚庆
婚庆公司
猎头
北京猎头
保洁
保洁公司
缩阴
缩阴方法
缩阴产品
缩阴膏
缩阴宝
缩阴水
缩阴药品
如何缩阴
缩阴棒
怎样缩阴
阴道松弛
北京朝阳区管道疏通
北京大兴区管道疏通
北京通州区管道疏通
清理化粪池
管理咨询
写字楼
北京写字楼
写字楼出租
写字楼出售
Led显示屏
电子显示屏
显示屏
条码机
条码打印机
ghd12y
oofay.us
oofay.us
brogame
brogame
wow gold
wow gold
wow power leveling
oofay.com
oofay
oofay
wow account
world of warcraft account
中央空调
中央空调
中央空调
空调
空调
海尔空调
海尔空调
美的空调
美的空调
大金中央空调
大金中央空调
家用中央空调
家用中央空调
大金空调
大金空调
美的中央空调
美的中央空调
美的中央空调
格力空调
格力空调
格力空调
海尔中央空调
海尔中央空调
海尔中央空调
格力中央空调
格力中央空调
商用中央空调
商用中央空调
韩语培训
韩语培训
上海韩语培训
上海韩语培训
德国留学申请
留学
出国留学
德国大学排名
德国大学排名
德国留学申请
wow account
wow accounts
wow account
buy wow account
buy wow accounts
world of warcraft account
mobile Games
Java Games
cell phone games
phone games
泵
泵
水泵
水泵
齿轮输油泵
齿轮输油泵
离心泵
离心泵
磁力泵
磁力泵
化工泵
化工泵
隔膜泵
隔膜泵
转子泵
转子泵
螺杆泵
螺杆泵
潜水泵
潜水泵
多级泵
多级泵
循环泵
循环泵
排污泵
排污泵
自吸泵
自吸泵
液下泵
液下泵
管道泵
管道泵
留学韩国
留学日本
荷兰留学
留学荷兰
加拿大签证
澳洲留学签证
韩国签证
brogame
brogame
wow gold
wow gold
wow power leveling
oofay.com
oofay.com
oofay
oofay
buy wow account
buy wow accounts
SAT培训
SAT培训
韩语培训
韩语培训
上海韩语培训
上海韩语培训
海尔空调
海尔空调
空调
空调
大金空调
大金空调
美的空调
美的空调
中央空调
中央空调
留学
出国留学
德国大学排名
德国大学排名
德国留学申请
德国留学申请
上海SAT培训
上海SAT培训
韩国语出国预科班
韩国语出国预科班
韩国语出国预科班
韩国语留学预科班
韩国语留学预科班
SAT培训
SAT培训
nvlibm0
泵
泵
水泵
水泵
齿轮输油泵
齿轮输油泵
离心泵
离心泵
磁力泵
磁力泵
化工泵
化工泵
隔膜泵
隔膜泵
转子泵
转子泵
螺杆泵
螺杆泵
潜水泵
潜水泵
多级泵
多级泵
循环泵
循环泵
排污泵
排污泵
自吸泵
自吸泵
液下泵
液下泵
管道泵
管道泵
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
法国留学签证
澳洲留学网
澳洲留学论坛
加拿大签证
mobile Games
Java Games
cell phone games
phone games
wow gold
powerleveling
power leveling
runescape gold
rs gold
runescape money
runescape items
Hero Gold
Hero Online Gold
審美歯科
中古車
くりっく365 比較
逆援助
アダルト
風俗
会社設立
人材派遣会社
FX
わきが
埼玉 風俗
千葉 風俗
オリジナル Tシャツ
クーリングオフ
防護服
天仙液
碳素
国旅
股骨头坏死
自由行
效果图
pvc管
玻璃钢
纸袋
塑料袋
包装盒
弯管机
数据采集器
称重仪表
墙锯切割
钢筋混凝土切割
墙体切割
混凝土静力直线切
水钻排孔
切割折除
效果图设计
北京塑料制品
hdpe波纹管
pvc板
液晶监视器
DID拼接墙
超声波探伤仪
英格索兰气动工具
画册印刷
不干胶印刷
手提袋印刷
涂层测厚仪
粗糙度仪
超声波测厚仪
红外测温仪
粗糙度仪
红外测温仪
红外测温仪
变压吸附制氮机
变压吸附制氧机
超声波探伤仪
板材雕刻加工
板材雕刻切割
澳洲旅游
海岛游
四合院
婚纱摄影
亚克力展示架
英达生态园
小汤山温泉度假村
昌平温泉度假村
涂层测厚仪
超声波测厚仪
超声波测厚仪
无线上网卡
卷板机
婚纱摄影
PDU
机柜插座
北京四合院
北京四合院
剪板机
折边机
铣边机
北京效果图
效果图制作
效果图公司
北京展览公司
东空气动工具
北京SEO
炭化木
深度炭化木
巴劳木地板
航空箱
航空箱
北京航空箱
航空箱
设备箱
分水器
线号机
打号机
展厅设计
科技馆设计
博物馆设计
规划展厅设计
北京展厅设计
企业展厅设计
变压吸附制氮机
变压吸附制氧机
石墨
出境游
北京印刷
有机玻璃加工
食道癌
肺癌
直肠癌
肝癌
胃癌
结肠癌
乳腺癌
珍香胶囊
清肺散结丸
翻译公司
北京翻译公司
搬场公司
上海搬场公司
上海搬家公司
搬家公司
Google排名
楼梯
楼梯
汽车网
婚庆公司
货架
quilting machine
光盘印刷
光盘刻录
光盘制作
管理咨询
北京婚庆
货架
北京搬家
北京搬家公司
北京长途搬家
北京长途搬家公司
海淀搬家公司
中关村搬家公司
礼品
拓展
拓展训练
亚克力
亚克力
有机玻璃
有机玻璃
保洁
保洁公司
北京猎头公司
猎头公司
管道疏通
写字楼
猎头
北京猎头
猎头公司
北京猎头公司
Led显示屏
显示屏
电子显示屏
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
11lamam
wow gold
wow power leveling
buy warhammer gold
buy warhammer gold
brogame
brogame
人力资源管理师
人力资源管理师
人力资源管理师
人力资源管理师
隔膜泵
隔膜泵
隔膜泵
空调
空调
空调
人力资源培训
人力资源培训
人力资源培训
大金空调
大金空调
大金空调
海尔空调
海尔空调
格力中央空调
格力中央空调
格力中央空调
美的中央空调
美的中央空调
美的中央空调
海尔中央空调
海尔中央空调
海尔中央空调
大金中央空调
大金中央空调
大金中央空调
大金空调
隔膜泵
海尔空调
人力资源培训
人力资源培训
空调
空调
人力资源管理师
人力资源管理师
balance . mp3 mp4 player plays a part in the outcome . mp3 mp4 player of combat, gear is a major differentiator that makes up for shortcomings in other areas. mp3 mp4 player In fact, with . mp3 player kaufen the introduction of Resilience, gear more than mp4 ever plays a more substantial part in PvP. power level In an Arena match, the very first thing we . power level scope out is gear. wow level Through quick tab-selection viewing .wow leveling of character portraits, we generally wow lvl have a good idea of the classes we're up against if they keep their helm graphic on. wow lvl If they are wearing Season 3 shoulders, then we know . wow lvl 60 their relative experience. wow lvl 70 This is why the visual i.wow power leveling mpact of Arena shoulders is so important.wow powerlevel It immediately gives you a general idea of how tough the match will be. wow powerlevel Players in full S3 will likely have over 10k hp and over. wow powerleveling 400 Resilience, depending on the class and spec. A full S3 SL/SL Warlock, for example, will easily have. about 12-13k hp and over 400 Resilience. Identifying weapons is slightly more . difficult but will also give a general idea of an enemy's strength. Season 1 and 2 weapons share the same graphics, so it's harder to identify. Season 3 weapons, on the other hand, are distinctive and share models with Black Temple and Mount Hyjal weapons. which 最新免费网络游戏 have relatively the same power. A review of Brutal Gladiator weapons will come in handy because these will be the most common way to identify opponents of relative skill. With the new mechanics. in place for Arenas, Season 4 will more or less weed out the chaff from the grain.