package JExcelTest.standard; import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; import jxl.*; import jxl.format.UnderlineStyle; import jxl.write.*; import jxl.write.Number; public class CreateXLS { public static void main(String[] args) { try { //創建一個Excel文件 WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls")); //創建Excel中的頁面,設置頁面名稱,頁面號由0開始,頁面會按頁面號從小到大的順序在Excel中從左向右排列 WritableSheet sheet1 = book.createSheet("第一頁", 0); //設置要合並單元格的下標 sheet1.mergeCells(0, 0, 1, 1); //作用是指定第i+1行的高度,比如將第一行的高度設為200 sheet1.setRowView(1, 2000); //作用是指定第i+1列的寬度,比如將第一列的寬度設為30 //sheet1.setColumnView(1, 160); WritableSheet sheet2 = book.createSheet("Sheet_2", 1); //設置單元格的樣式 WritableCellFormat cellFormat = new WritableCellFormat(); //設置水平居中 cellFormat.setAlignment(jxl.format.Alignment.CENTRE); //設置垂直居中 cellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); //設置自動換行 cellFormat.setWrap(true); //設置顯示的字體樣式,字體,字號,是否粗體,字體顏色 cellFormat.setFont(new WritableFont(WritableFont.createFont("楷體_GB2312"),12,WritableFont.NO_BOLD,false, UnderlineStyle.NO_UNDERLINE,Colour.RED)); //設置單元格背景色 cellFormat.setBackground(jxl.format.Colour.BRIGHT_GREEN); //創建一個單元格,並按行列坐標進行指定的內容寫入 ,最后加入顯示的樣式 Label label = new Label(0, 0, "Excel",cellFormat); Label labe2 = new Label(0, 0, "test22222222"); //插入圖片 File file=new File("D:\\My Documents\\My Pictures\\test.png"); //設置圖片位置,前兩個參數為插入圖片的單元格坐標,后面是設置從插入的單元格開始橫向和縱向分別要占用的單元格個數,最后傳入圖片文件 WritableImage image=new WritableImage(6, 0, 3, 3,file); //將行列的值寫入頁面 sheet1.addCell(label); //將圖片插入頁面 sheet1.addImage(image); sheet2.addCell(labe2); //創建數字類型的行列值 Number number1 = new Number(4, 0, 789.123); Number number2 = new Number(4, 0, 789.12345678910); //將數字類型的行列值插入指定的頁面 sheet1.addCell(number1); sheet2.addCell(number2); //創建日期類型數據,並添加 jxl.write.DateTime dateTime = new DateTime(5, 0, new Date()); sheet1.addCell(dateTime); //開始執行寫入操作 book.write(); //關閉流 book.close(); } catch (Exception e) { e.printStackTrace(); } } }
以上是生成Excel文件的基本步驟,注釋很清晰,有各種對於文件的常用操作,涵蓋了常用的數據類型,對於一般應用基本可以應付的過來。
package JExcelTest.standard; import java.io.*; import jxl.*; public class ReadXLS { public static void main(String[] args) { try { //創建一個Excel的輸入流 Workbook book = Workbook.getWorkbook(new File("d:/Test.xls")); //得到Excel的指定頁數 Sheet sheet = book.getSheet(0); //通過下標得到指定的行列值 Cell cell = sheet.getCell(0, 0); Cell[] cells1 = sheet.getColumn(1);// 獲取某一列所有的單元格
Cell[] cells2 = sheet.getRow(0); // 獲取某一行的所有單元格
//得到具體的行列值並進行顯示
String result = cell.getContents(); System.out.println(result); book.close(); } catch (Exception e) { e.printStackTrace(); } } }
這是對於Excel文件的內容進行讀取,沒有太多的復雜的過程。
package JExcelTest.standard; import java.io.*; import jxl.*; import jxl.write.*; public class UpdateXLS { public static void main(String[] args) { try { Workbook wb = Workbook.getWorkbook(new File("d:/Test.xls")); WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls"), wb); WritableSheet sheet = book.createSheet("Sheet_2", 1); sheet.addCell(new Label(0, 0, "test2")); book.write(); book.close(); } catch (Exception e) { e.printStackTrace(); } } }
對Excel文件進行修改,操作和上面基本類似,就不再做注釋。
以上是第一次使用jxl的筆記,因為工作需要,代碼應該還會加強完善,后面有時間還會在整理的更加詳細和規整。