利用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 次评分)
评论: 67 | 查看次数: 1698
发表评论
订阅
上一篇
|

文章来自:
标签: 
泵
泵
水泵
水泵
齿轮输油泵
齿轮输油泵
离心泵
离心泵
磁力泵
磁力泵
化工泵
化工泵
隔膜泵
隔膜泵
转子泵
转子泵
螺杆泵
螺杆泵
潜水泵
潜水泵
多级泵
多级泵
循环泵
循环泵
排污泵
排污泵
自吸泵
自吸泵
液下泵
液下泵
管道泵
管道泵
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.
11yuexlljiayou
wow gold
wow power leveling
world of warcraft account
world of warcraft account
留学
英国留学中介
英国大学排名
英国留学申请
英国留学费用
英国留学签证
英国留学网
英国留学论坛
法国签证
wow account
wow account
wow accounts
wow accounts
buy wow account
buy wow account
buy wow accounts
buy wow accounts
buy-warhammer-online-gold
wow account
英国留学
留学英国
美国留学
留学美国
日本留学
留学日本
荷兰留学
澳洲签证
华申留学
朗阁培训
意大利留学
wow gold
wow power leveling
澳洲留学网
澳洲留学费用
澳洲留学签证
德国签证
澳洲留学论坛
澳洲留学申请
澳洲大学排名
澳洲留学中介
英国商学院
美国签证
伦敦摄政学院
韩国签证
澳洲大学排名
伦敦大学
美国签证
buy worhammer gold
buy worhammer gold
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
新西兰签证
爱尔兰签证
马来西亚签证
出国留学
英国签证
新加坡签证
澳洲留学费用
澳洲留学签证
澳洲留学论坛
澳洲留学申请
澳洲留学网
韩国签证
德国签证
wow account
wow accounts
buy wow account
buy wow accounts
world of warcraft account
EP1-OXMAN
wow gold
wow power leveling
brogame
brogame
oofay.com
buy warhammer online gold
buy warhammer online gold
空调
空调
空调
格力空调
格力空调
格力空调
上海展览公司
上海展览公司
上海展览公司
螺杆泵
螺杆泵
螺杆泵
新加坡留学
新加坡留学
新加坡留学
留学新加坡
留学新加坡
留学新加坡
家用中央空调
家用中央空调
家用中央空调
上海新加坡留学
上海新加坡留学
上海新加坡留学
上海水泵
上海水泵
[url=http://www.jiushu.cn/blog/blog.php?do-showone-uid-14561-type-blog-itemid-1150.html]上海展览公司
家用中央空调
新加坡留学
留学新加坡
上海新加坡留学
上海水泵
乳腺癌
食道癌
肺癌
直肠癌
胃癌
结肠癌
肝癌
珍香胶囊
清肺散结丸
翻译公司
北京翻译公司
搬场公司
上海搬场公司
上海搬家公司
搬家公司
Google排名
楼梯
楼梯
汽车网
婚庆公司
货架
quilting machine
光盘印刷
光盘刻录
光盘制作
管理咨询
北京婚庆
货架
北京搬家
北京长途搬家
北京长途搬家公司
海淀搬家公司
中关村搬家公司
礼品
亚克力
亚克力
有机玻璃
有机玻璃
保洁
保洁公司
北京猎头公司
猎头公司
管道疏通
写字楼
猎头
北京猎头
猎头公司
北京猎头公司
Led显示屏
显示屏
电子显示屏
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
喜来健
wow gold
CAD软件下载
CAD软件下载
CAD软件
CAD软件
CAD
CAD
item4sale
item4sale
item4sale
item4sale
item4sale
item4sale
item4sale
age of conan power leveling
age of conan power leveling
buy warhammer online gold
warhammer online power leveling
warhammer gold
warhammer online gold
buy worhammer gold
warhammer power leveling
干洗加盟连锁
洗衣
干洗机
洗衣设备
洗衣设备
连锁干洗加盟
干洗加盟连锁
连锁干洗加盟
干洗店设备
干洗店设备
水洗机
水洗机
洗衣
爱尔兰留学费用
爱尔兰留学签证
爱尔兰留学中介
爱尔兰留学网
爱尔兰留学论坛
爱尔兰大学排名
爱尔兰留学申请
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
wow gold
水洗机
水洗机
洗衣
洗衣
连锁干洗加盟
连锁干洗加盟
洗衣设备
洗衣设备
干洗加盟连锁
干洗加盟连锁
水洗机
水洗机
水洗机
水洗机
hhygr11jxx
jxx1103jyo
计米器
插标机
调节表
喷粉设备
多层信号灯
测长传感器
声光报警器
电流继电器
静电消除器
时间继电器
累加计数器
润滑控制器
预置计数器
电压表电流表
免费电影
防伪
seo
三通球阀
防伪标签
防伪商标
防伪标识
防伪标志
防伪标贴
数码防伪
防伪技术
激光防伪
防伪公司
防伪系统
防伪印刷
佛像雕刻机
饰品雕刻机
打标机
鞋模雕刻机
模具雕刻机
真空吸附雕刻机
雕刻机
雕铣机
打胶机
钥匙扣
温州设计公司
温州企划公司
温州样本设计
丽水房地产策划公司
台州房地产策划公司
台州vi设计
温州品牌设计公司
温州广告设计公司
温州平面广告设计
温州广告公司
温州样本设计
温州海报设计
温州商标设计
温州标志设计
温州包装设计
Ceramic tile
Ceramic floor tile
Border tile
Rustic tile
Carpet tile
Skirting tile
Polished tile
Glazed tile
Skirting tile
Rustie tile
Border tile
Ceramic tile