zoukankan      html  css  js  c++  java
  • jxl最全使用方法

      1. package test;  
      2.   
      3. import java.io.File;  
      4. import java.io.IOException;  
      5. import java.net.MalformedURLException;  
      6. import java.net.URL;  
      7. import java.util.ArrayList;  
      8. import java.util.Calendar;  
      9. import java.util.Date;  
      10.   
      11. import jxl.CellType;  
      12. import jxl.Workbook;  
      13. import jxl.format.Alignment;  
      14. import jxl.format.Border;  
      15. import jxl.format.BorderLineStyle;  
      16. import jxl.format.Colour;  
      17. import jxl.format.ScriptStyle;  
      18. import jxl.format.UnderlineStyle;  
      19. import jxl.format.VerticalAlignment;  
      20. import jxl.read.biff.BiffException;  
      21. import jxl.write.Blank;  
      22. import jxl.write.DateFormat;  
      23. import jxl.write.DateFormats;  
      24. import jxl.write.DateTime;  
      25. import jxl.write.Formula;  
      26. import jxl.write.Label;  
      27. import jxl.write.Number;  
      28. import jxl.write.NumberFormat;  
      29. import jxl.write.WritableCell;  
      30. import jxl.write.WritableCellFeatures;  
      31. import jxl.write.WritableCellFormat;  
      32. import jxl.write.WritableFont;  
      33. import jxl.write.WritableHyperlink;  
      34. import jxl.write.WritableImage;  
      35. import jxl.write.WritableSheet;  
      36. import jxl.write.WritableWorkbook;  
      37. import jxl.write.WriteException;  
      38.   
      39. /** 
      40.  *  
      41.  * @author why 
      42.  * 
      43.  */  
      44. public class ExcelTest {  
      45.   
      46.     /** 
      47.      * @param args 
      48.      * @throws IOException  
      49.      * @throws BiffException  
      50.      * @throws WriteException  
      51.      */  
      52.     public static void main(String[] args) throws IOException, BiffException, WriteException {  
      53.         Workbook wb = Workbook.getWorkbook(new File("src\test\test.xls")); // 获得原始文档  
      54.         WritableWorkbook workbook = Workbook.createWorkbook(new File("d:\test_modified.xls"),wb); // 创建一个可读写的副本  
      55.           
      56.           
      57.         /** 
      58.          * 定义与设置Sheet 
      59.          */  
      60.         WritableSheet sheet = workbook.getSheet(0);  
      61.         sheet.setName("修改后"); // 给sheet页改名  
      62.         workbook.removeSheet(2); // 移除多余的标签页  
      63.         workbook.removeSheet(3);  
      64.           
      65.         sheet.mergeCells(0, 0, 4, 0); // 合并单元格  
      66.         sheet.setRowView(0, 600); // 设置行的高度  
      67.         sheet.setColumnView(0, 30); // 设置列的宽度  
      68.         sheet.setColumnView(1, 20); // 设置列的宽度  
      69.           
      70.          WritableCell cell = null;  
      71.          WritableCellFormat wcf = null;  
      72.          Label label = null;  
      73.          WritableCellFeatures wcfeatures = null;  
      74.           
      75.          // 更改标题字体  
      76.          cell = sheet.getWritableCell(0,0);  
      77.          WritableFont titleWf = new WritableFont(WritableFont.createFont("仿宋_GB2312"),// 字体  
      78.                                                  20,//WritableFont.DEFAULT_POINT_SIZE,  // 字号  
      79.                                                  WritableFont.NO_BOLD,                  // 粗体  
      80.                                                  false,                                 // 斜体  
      81.                                                  UnderlineStyle.NO_UNDERLINE,           // 下划线  
      82.                                                  Colour.BLUE2,                          // 字体颜色  
      83.                                                  ScriptStyle.NORMAL_SCRIPT);  
      84.          wcf = new WritableCellFormat(titleWf);  
      85.          wcf.setBackground(Colour.GRAY_25);// 设置单元格的背景颜色  
      86.          wcf.setAlignment(Alignment.CENTRE); // 设置对齐方式  
      87.          wcf.setBorder(Border.ALL, BorderLineStyle.THICK); // 添加边框  
      88.          cell.setCellFormat(wcf);  
      89.           
      90.          // 将B3的字体改为仿宋_GB2312  
      91.          cell = sheet.getWritableCell(1,2);  
      92.          WritableFont fs = new WritableFont(WritableFont.createFont("仿宋_GB2312"),  
      93.                                            11);  
      94.          wcf = new WritableCellFormat(fs);  
      95.          cell.setCellFormat(wcf);  
      96.           
      97.          // 将B4的字号改为20  
      98.          cell = sheet.getWritableCell(1,3);  
      99.          WritableFont size20 = new WritableFont(WritableFont.createFont("宋体"),   
      100.                                                20);  
      101.          wcf = new WritableCellFormat(size20);  
      102.          cell.setCellFormat(wcf);  
      103.           
      104.          // 将B5的字体改为加粗  
      105.          cell = sheet.getWritableCell(1,4);  
      106.          WritableFont bold = new WritableFont(WritableFont.createFont("宋体"),   
      107.                                                11,  
      108.                                                WritableFont.BOLD);  
      109.          wcf = new WritableCellFormat(bold);  
      110.          cell.setCellFormat(wcf);  
      111.           
      112.          // 将B6的字体改为倾斜  
      113.          cell = sheet.getWritableCell(1,5);  
      114.          WritableFont italic = new WritableFont(WritableFont.createFont("宋体"),   
      115.                                                 11,  
      116.                                                 WritableFont.NO_BOLD,  
      117.                                                 true);  
      118.          wcf = new WritableCellFormat(italic);  
      119.          cell.setCellFormat(wcf);  
      120.           
      121.          // 将B7字体加下划线  
      122.          cell = sheet.getWritableCell(1,6);  
      123.          WritableFont underline = new WritableFont(WritableFont.createFont("宋体"),   
      124.                                                    11,  
      125.                                                    WritableFont.NO_BOLD,  
      126.                                                    false,  
      127.                                                    UnderlineStyle.SINGLE);  
      128.          wcf = new WritableCellFormat(underline);  
      129.          cell.setCellFormat(wcf);  
      130.           
      131.          // 将B8的文字改为“待修改文字-已修改”  
      132.          cell = sheet.getWritableCell(1,7);  
      133.          if (cell.getType() == CellType.LABEL)  
      134.          {  
      135.              Label lc = (Label) cell;  
      136.              lc.setString(lc.getString() + " - 已修改");  
      137.          }  
      138.           
      139.          // 将B9文字对齐方式改为垂直居中、右对齐  
      140.          cell = sheet.getWritableCell(1,8);  
      141.          WritableFont align = new WritableFont(WritableFont.createFont("宋体"),   
      142.                                                   11);  
      143.          wcf = new WritableCellFormat(align);  
      144.          wcf.setAlignment(Alignment.RIGHT); // 设置为右对齐  
      145.          wcf.setVerticalAlignment(VerticalAlignment.CENTRE); // 设置为垂直居中  
      146.          cell.setCellFormat(wcf);  
      147.           
      148.          // 将E3文字改为自动换行  
      149.          cell = sheet.getWritableCell(4,2);  
      150.          WritableFont justify = new WritableFont(WritableFont.createFont("宋体"),   
      151.                                                   11);  
      152.          wcf = new WritableCellFormat(justify);  
      153.          wcf.setAlignment(Alignment.JUSTIFY);  
      154.          cell.setCellFormat(wcf);  
      155.           
      156.           
      157.          // 将B12的数字有效位数从5位改为7位  
      158.          cell = sheet.getWritableCell(1,11);  
      159.          NumberFormat sevendps = new NumberFormat("#.0000000");  
      160.          wcf = new WritableCellFormat(sevendps);  
      161.          cell.setCellFormat(wcf);  
      162.           
      163.          // 将B13改为4位科学计数法表示  
      164.          cell = sheet.getWritableCell(1,12);  
      165.          NumberFormat exp4 = new NumberFormat("0.####E0");  
      166.          wcf = new WritableCellFormat(exp4);  
      167.          cell.setCellFormat(wcf);  
      168.           
      169.          // 将B14改为默认数字表示  
      170.          cell = sheet.getWritableCell(1,13);  
      171.          cell.setCellFormat(WritableWorkbook.NORMAL_STYLE);  
      172.           
      173.          // 将B15数字类型的值17改为22  
      174.          cell = sheet.getWritableCell(1,14);  
      175.          if (cell.getType() == CellType.NUMBER)  
      176.          {  
      177.              Number n = (Number) cell;  
      178.              n.setValue(42);  
      179.          }  
      180.           
      181.          // 将B16的值2.71进行加法运算2.71 + 0.1  
      182.          cell = sheet.getWritableCell(1,15);  
      183.          if (cell.getType() == CellType.NUMBER)  
      184.          {  
      185.              Number n = (Number) cell;  
      186.              n.setValue(n.getValue() + 0.1);  
      187.          }  
      188.           
      189.          // 将B19日期格式改为默认  
      190.          cell = sheet.getWritableCell(1,18);  
      191.          wcf = new WritableCellFormat(DateFormats.FORMAT9);  
      192.          cell.setCellFormat(wcf);  
      193.           
      194.          // 将B20日期格式改为dd MMM yyyy HH:mm:ss  
      195.          cell = sheet.getWritableCell(1,19);  
      196.          DateFormat df = new DateFormat("dd MMM yyyy HH:mm:ss");  
      197.          wcf = new WritableCellFormat(df);  
      198.          cell.setCellFormat(wcf);  
      199.           
      200.          // 将B21的日期设置为 2011-6-1 11:18:50  
      201.          cell = sheet.getWritableCell(1,20);  
      202.          if (cell.getType() == CellType.DATE)  
      203.          {  
      204.              DateTime dt = (DateTime) cell;  
      205.              Calendar cal = Calendar.getInstance();  
      206.              cal.set(2011, 5, 1, 11, 18, 50);  
      207.              Date d = cal.getTime();  
      208.              dt.setDate(d);  
      209.          }  
      210.           
      211.           
      212.          // 将B24文字添加链接http://www.baidu.com  
      213.          WritableHyperlink link = new WritableHyperlink(1, 23, new URL("http://www.baidu.com"));  
      214.          sheet.addHyperlink(link);  
      215.           
      216.          // 更改URL链接  
      217.          WritableHyperlink hyperlinks[] = sheet.getWritableHyperlinks();  
      218.          for (int i = 0; i < hyperlinks.length; i++) {  
      219.              WritableHyperlink wh = hyperlinks[i];  
      220.              if (wh.getColumn() == 1 && wh.getRow() == 24) {  
      221.                  // 将B25文字链接取消  
      222.                  sheet.removeHyperlink(wh,true);//true:保留文字;false:删除文字  
      223.              }else if(wh.getColumn() == 1 && wh.getRow() == 25){  
      224.                  try {  
      225.                      // 将B26链接更改为http://wuhongyu.javaeye.com  
      226.                      wh.setURL(new URL("http://wuhongyu.javaeye.com"));  
      227.                  } catch (MalformedURLException e) {  
      228.                      e.printStackTrace();  
      229.                  }  
      230.              }  
      231.          }  
      232.           
      233.           
      234.          // 利用公式取得B29、B30的值  
      235.          Formula f1 = new Formula(1, 28, "SUM(C29:D29)");  
      236.          sheet.addCell(f1);  
      237.          Formula f2 = new Formula(1, 29, "AVERAGE(C30:G30)");  
      238.          sheet.addCell(f2);  
      239.           
      240.          // 在B32处添加图片,图片大小占10行3列,只支持png格式  
      241.          File file = new File("d:\shu05.png");  
      242.          WritableImage image = new WritableImage(1, 31, 3, 10, file);  
      243.          sheet.addImage(image);  
      244.           
      245.          // 在A44出添加内容"Added drop down validation",并为其添加注释  
      246.          label = new Label(0, 43, "Added drop down validation");  
      247.          wcfeatures = new WritableCellFeatures();  
      248.          wcfeatures.setComment("右边列是个下拉列表");  
      249.          label.setCellFeatures(wcfeatures);  
      250.          sheet.addCell(label);  
      251.            
      252.          // 在B44处添加一个下拉列表并添加注释  
      253.          Blank b = new Blank(1, 43);  
      254.          wcfeatures = new WritableCellFeatures();  
      255.          ArrayList al = new ArrayList();  
      256.          al.add("why");  
      257.          al.add("landor");  
      258.          al.add("tjm");  
      259.          wcfeatures.setDataValidationList(al);  
      260.          wcfeatures.setComment("这是一个注释");  
      261.          b.setCellFeatures(wcfeatures);  
      262.          sheet.addCell(b);  
      263.            
      264.          // 为A46添加注释。  
      265.          // 此处比较麻烦,试了多次发现必须将cell强制类型转换、添加CellFeatures再修改注释才可用,不知有没有更好的办法。  
      266.          cell = sheet.getWritableCell(0,45);  
      267.          wcfeatures = new WritableCellFeatures();  
      268.          wcfeatures.setComment("这个注释不会被显示,删了这行还不行,MD");  
      269.          cell.setCellFeatures(wcfeatures);  
      270.            
      271.          label = (Label) cell;  
      272. //       label.setCellFeatures(wcfeatures);// 直接这样写会报一个警告(“注释已存在”),但那个注释仍会被显示。  
      273.          label.addCellFeatures();  
      274.          label.getWritableCellFeatures().setComment("终于加上注释了,哈哈哈哈");  
      275.            
      276.            
      277. //      if (cell instanceof Number) {  
      278. //          Number num = (Number) cell;  
      279. //          num.setCellFeatures(wcfeatures);  
      280. //      } else if (cell instanceof jxl.write.Boolean) {  
      281. //          jxl.write.Boolean bool = (jxl.write.Boolean) cell;  
      282. //          bool.setCellFeatures(wcfeatures);  
      283. //      } else if (cell instanceof jxl.write.DateTime) {  
      284. //          jxl.write.DateTime dt = (jxl.write.DateTime) cell;  
      285. //          dt.setCellFeatures(wcfeatures);  
      286. //      } else {  
      287. //          Label _label = (Label) cell;  
      288. //          _label.setCellFeatures(wcfeatures);  
      289. //      }  
      290.            
      291.          workbook.write();  
      292.          workbook.close();  
      293.          wb.close();  
      294.     }  
      295.   

  • 相关阅读:
    C++ 模板特化
    左值引用,右值引用以及移动语义
    搜狐2016研发工程师编程题
    java配置环境变量与常用技巧
    java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)
    c++中的结构体:声明 定义 初始化
    用指针变量作函数形参接收数组地址,解决10个整数按由小到大顺序排序问题
    java在线聊天项目 实现基本聊天功能后补充的其他功能详细需求分析 及所需要掌握的Java知识基础 SWT的激活方法,swt开发包下载,及破解激活码
    java在线聊天项目1.0版 异常处理——开启多个客户端,关闭一个客户端后,在其他客户端中再发出信息会出现异常的处理
    第十一次作业
  • 原文地址:https://www.cnblogs.com/hmpcly/p/9493214.html
Copyright © 2011-2022 走看看