天天看點

JXL 操作Excel

JXL操作Excel的一些常用對象、方法,資料寫入到Excel模版中

package com.zsd.tool;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.CellFormat;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


/**
 * JXL 操作Excel
 * @author admini
 * 注意:JXL隻支援xls檔案格式,并且不能處理大資料量。
 */
public class ExcelOperationJXL {
	
	
	/**
     * 建立一個excel檔案寫入操作
     * @param args
     */
    public static void main(String[] args) {
    	//建立一個新的Excel
    	createExcel();
    	//讀取Excel模版,并寫入資料
    	//readExcel();
        System.out.println("表格生成!");
    }
    
    /**
     * 建立一個Excel檔案
     */
    public static void createExcel(){
    	File file = new File("F:/2.xls");//生成的表格存儲的位置
        String [] str = {"id","name","sex"};//标題内容
        try {
            if(!file.exists()){//判斷檔案是否存在
                file.createNewFile();//建立新的檔案
            }
            //建立工作簿
            WritableWorkbook workbook = Workbook.createWorkbook(file);
            
            /*這兩個對象隻能進行讀取操作,不能寫入
            Workbook work = Workbook.getWorkbook(file);
            Sheet s = work.getSheet(0);*/
            
            //建立sheet對象 WritableSheet 可以進行讀、寫操作
            WritableSheet sheet = workbook.createSheet("sheet1", 0);
            //給A,B,C列設定不同的寬度;  
            sheet.setColumnView(0, 10);  
            sheet.setColumnView(1, 20);  
            sheet.setColumnView(2, 30);
            //設定字型;  
            WritableFont font1 = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.RED);  
            
            WritableCellFormat cellFormat1 = new WritableCellFormat(font1);  
            //設定背景顔色;  
            cellFormat1.setBackground(Colour.BLUE_GREY);  
            //設定邊框;  
            cellFormat1.setBorder(Border.ALL, BorderLineStyle.DASH_DOT);  
            //設定自動換行;  
            cellFormat1.setWrap(true);  
            //設定文字居中對齊方式;  
            cellFormat1.setAlignment(Alignment.CENTRE);  
            //設定垂直居中;  
            cellFormat1.setVerticalAlignment(VerticalAlignment.CENTRE);  
            //建立單元格  
            Label label1 = new Label(3, 0, "第一行第一個單元格(測試是否自動換行!)",cellFormat1);  
            sheet.addCell(label1);
            //行對象
            Label label = null;
            
            
            //添加标題
            for (int i = 0; i < str.length; i++) {
                /**
                 * Label(i,j,String);
                 * i:列
                 * j:行
                 * String:表示内容
                 */
                label = new Label(i, 0, str[i]);
                sheet.addCell(label);
            }
            
            //添加資料
            for (int i = 1; i <= 10; i++) {
                label = new Label(0, i, i+"");
                sheet.addCell(label);
                label = new Label(1, i, "My name"+i);
                sheet.addCell(label);
                label = new Label(2, i, "男");
                sheet.addCell(label);
            }
            
            workbook.write();//把表格資訊寫入檔案
            workbook.close();//關閉
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 根據現有的Excel模版寫入資料
     */
    public static void readExcel(){
    	File file = new File("F:/2.xls");//生成的表格存儲的位置
        try {
            if(!file.exists()){//判斷檔案是否存在
                file.createNewFile();//建立新的檔案
            }
            
            InputStream is = new FileInputStream("F:/3.xls"); //建立一個檔案流,讀入Excel檔案  
            Workbook wb = Workbook.getWorkbook(is); //将檔案流寫入到workbook對象 
            is.close();
            //建立工作簿
            WritableWorkbook workbook = Workbook.createWorkbook(file,wb);
            //建立sheet對象
            WritableSheet sheet = workbook.getSheet(0);
            //行對象
            Label label = null;
            
            //添加資料
            for (int i = 1; i <= 10; i++) {
                label = new Label(0, i, i+"");
                sheet.addCell(label);
                label = new Label(1, i, "My name"+i);
                sheet.addCell(label);
                label = new Label(2, i, "男");
                sheet.addCell(label);
            }
            //表格的第一行,第一列的索引都是 0 開始
            //對某一單元格 寫入值
            label = new Label(0, 14, "測試");
            //擷取某一單元格的樣式,如果單元格沒有設定樣式,則不需要擷取,否則會報 NULL 錯誤
            WritableCell cell =sheet.getWritableCell(0, 14);
            CellFormat cf = cell.getCellFormat();
            //對要寫入的單元格設定樣式
            label.setCellFormat(cf);
            sheet.addCell(label);
            
            workbook.write();//把表格資訊寫入檔案
            workbook.close();//關閉
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
}
	
           

繼續閱讀