JAVA 与 EXCEL的完美整合工具:JXL

来源:互联网 发布:淘宝推广广告 编辑:程序博客网 时间:2024/05/16 12:27
本文只是介绍jxl.jar,不做技术层次的讨论。至于技术留到下篇文章进行讨论。
 jxl.jar 下载的链接:
http://sourceforge.net/projects/jexcelapi/
在下载包里有C#和JAVA的,不要被它的名字给吓到了(名字竟然说是for C#的!!)
至于添加LIB之类的工作就不多说了(大家用java到这个份上,应该也不需要了。呵呵)
直接来个简单例子:
package ts;
import java.io.FileOutputStream;
import java.io.OutputStream;
import jxl.Workbook;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class JxlTest {
 public static void main(String[] args) {
  String targetfile = "c:/out.xls ";//输出的excel文件名
  String worksheet = "List ";//输出的excel文件工作表名
  String[] title = { "ID ", "NAME ", "DESCRIB "};//excel工作表的标题
  WritableWorkbook workbook;
  try {
   //创建可写入的Excel工作薄,运行生成的文件在tomcat/bin下
   System.out.println( "begin ");
   OutputStream os=new FileOutputStream(targetfile);
   workbook=Workbook.createWorkbook(os);
   WritableSheet sheet = workbook.createSheet(worksheet, 0); //添加第一个工作表
   //WritableSheet sheet1 = workbook.createSheet( "MySheet1 ", 1); //可添加第二个工作
   jxl.write.Label label;
   for (int i=0; i <title.length; i++) {
    //Label(列号,行号 ,内容 )
    label = new jxl.write.Label(i, 0, title[i]);
    sheet.addCell(label);
   }
   //下列添加的对字体等的设置均调试通过,可作参考用
   //添加数字
   jxl.write.Number number = new jxl.write.Number(3, 4, 3.14159); //put the number 3.14159 in cell D5
   sheet.addCell(number);
   //添加带有字型Formatting的对象
   jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,true);
   jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
   jxl.write.Label labelCF = new jxl.write.Label(4,4, "文本 ",wcfF);
   sheet.addCell(labelCF);
   //添加带有字体颜色,带背景颜色 Formatting的对象
   jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
   jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
   wcfFC.setBackground(jxl.format.Colour.BLUE);
   jxl.write.Label labelCFC = new jxl.write.Label(1,5, "带颜色 ",wcfFC);
   sheet.addCell(labelCFC);
   //添加带有formatting的Number对象
   jxl.write.NumberFormat nf = new jxl.write.NumberFormat( "#.## ");
   jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
   jxl.write.Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
   sheet.addCell(labelNF);
   //3.添加Boolean对象
   jxl.write.Boolean labelB = new jxl.write.Boolean(0,2,false);
   sheet.addCell(labelB);
   //4.添加DateTime对象
   jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
   sheet.addCell(labelDT);
   //添加带有formatting的DateFormat对象
   jxl.write.DateFormat df = new jxl.write.DateFormat( "ddMMyyyyhh:mm:ss ");
   jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
   jxl.write.DateTime labelDTF = new jxl.write.DateTime(1,3,new java.util.Date(),wcfDF);
   sheet.addCell(labelDTF);
   //合并单元格
   sheet.mergeCells(4,5,8,10);//左上角到右下角
   wfc = new jxl.write.WritableFont(WritableFont.ARIAL,40,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);
   jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);
   wchB.setAlignment(jxl.format.Alignment.CENTRE);
   labelCFC = new jxl.write.Label(4,5, "单元合并 ",wchB);
   sheet.addCell(labelCFC);
   //设置边框
   jxl.write.WritableCellFormat wcsB = new jxl.write.WritableCellFormat();
   wcsB.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THICK);
   labelCFC = new jxl.write.Label(0,6, "边框设置 ",wcsB);
   sheet.addCell(labelCFC);
   workbook.write();
   workbook.close();
   
  }catch(Exception e) {
   e.printStackTrace();
  }
  System.out.println( "end ");
  Runtime r = Runtime.getRuntime();
  Process p = null;
  //将cmd的第一个参数改成excel.exe的路径
  String cmd[] = { "F://Program Files//Microsoft Office//OFFICE11//EXCEL.EXE ", "c:/out.xls "};
  try{
   p = r.exec(cmd);
  }
  catch(Exception e){
   System.out.println( "error executing: "+cmd[0]);
  }
 }
}
以上程序将在C盘根目录下生成一个out.xls文件,可以看到以上代码所设置的样式。如下:
附加两个样式参照:
1.单元格边框样式:
2.单元格背景样式:
最后,补充一个小例子,在该例子中,展示了app和web中应用jxl进行数据保存的全部代码.可以将web网页中的table数据保存到本地excel文件中.
        下载:实例
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝被投诉商标侵权怎么办 淘宝后商家页面打不开了怎么办 淘宝遇到职业打假人怎么办 发票被复写上字怎么办 淘宝直播广告图片的商品怎么办 美团商家排名低怎么办 想成为淘宝主播怎么办 用移动流量很卡怎么办 淘宝店铺被恶意刷流量怎么办 一个想要公司权利的人怎么办 淘宝商家短信推广告怎么办 在群里乱发信息怎么办 支付宝扫不了码怎么办 淘宝商家收款不发货怎么办 淘宝申请退款商家拒绝怎么办 一件代发找不到供货商怎么办 淘宝京东兼职上当怎么办 退货时快递丢件怎么办 淘宝店铺代销1688有订单怎么办 供应商已解除合作无法代销怎么办 被代运营骗了怎么办 被淘宝运营骗了怎么办 淘宝运营公司骗了怎么办 被金融公司骗了怎么办 天猫品牌方投诉怎么办 淘宝卖家售假被扣了12分怎么办? 淘宝店被投诉了怎么办 淘宝商品被投诉侵权怎么办 淘宝小二胡乱判怎么办 淘宝卖家不干了怎么办 花呗剩下的钱怎么办 蚂蚁花呗无法使用怎么办 淘宝不能用花呗怎么办 淘宝号给冻结了怎么办 淘宝买家号封了怎么办 拼多多商家盗图怎么办 被拼多多盗图了怎么办 淘宝盗用图片被投诉怎么办 淘宝别人盗用我的图片怎么办 淘宝盗图申诉原图过大怎么办 淘宝别人举报我盗用图片怎么办