天天看点

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();
        }
    }
    
    
}
	
           

继续阅读