码迷,mamicode.com
首页 > 编程语言 > 详细

java excel文件的读写

时间:2015-03-05 19:09:06      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

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.write.Boolean;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class excel {
    /**
     * 
     * @param filePath 文件保存路径
     * @param fileName 文件名
     */
    public void ExcelExportUtil(String filePath,String fileName) {
        // excel文件表头
        String[] title = {"编号","姓名","性别","年龄","添加时间","测试带有小数点的","测试字体颜色","通过获取模板,改变字体颜色","测试单元格合并"};
        try {
            // 创建Excel工作薄
            WritableWorkbook wwb;
            // 新建立一个jxl文件
            OutputStream os = new FileOutputStream(filePath+fileName);
            wwb = Workbook.createWorkbook(os);
            // 添加第一个工作表并设置第一个Sheet的名字
            WritableSheet sheet = wwb.createSheet("用户", 0);
            Label label;
            for (int i = 0; i < title.length; i++) {
                // 在Label对象的子对象中指明单元格的位置和内容
                label = new Label(i, 0, title[i]);
                // 将定义好的单元格添加到工作表中
                sheet.addCell(label);
            }
            // 填充编号
            Number code = new Number(0,1,001);
            sheet.addCell(code);
            // 填充名称
            label = new Label(1, 1, "张三");
            sheet.addCell(label);
            //添加性别(Bollean 类型:true 男 ,false 女)
            Boolean sex = new Boolean(2,1,true);
            sheet.addCell(sex);
            //添加年龄
            Number age = new Number(3,1,19);
            sheet.addCell(age);
            //添加时间
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String newdate = sdf.format(new Date());
            
            label = new Label(4, 1, newdate);
            sheet.addCell(label);
            /*
             * 带有小数点类型的
             */
            NumberFormat nf = new NumberFormat("#.###");
            WritableCellFormat wcf = new WritableCellFormat(
                    nf);
            
            Number nb = new Number(5, 1, 2.456, wcf);
            sheet.addCell(nb);
            /*
             * 测试单元格样式改变
             */
            WritableCellFormat wc = new WritableCellFormat();
            // 设置居中
            wc.setAlignment(Alignment.CENTRE);
            // 设置单元格的背景颜色
            wc.setBackground(Colour.RED);
            //设置边框线
            wc.setBorder(Border.ALL, BorderLineStyle.THIN);
            label = new Label(6, 1, "字体,颜色", wc);
            sheet.addCell(label);
            /*
             * 
             * 定义公共字体格式 通过获取一个字体的样式来作为模板 首先通过web.getSheet(0)获得第一个sheet
             * 然后取得第一个sheet的第九列,第一行也就是"测试字体颜色"的字体
             */
            CellFormat cf = wwb.getSheet(0).getCell(6, 1).getCellFormat();
            label = new Label(7, 1, "通过模板", cf);
            sheet.addCell(label);
            /*
             * 合并单元格 通过writablesheet.mergeCells(int x,int y,int m,int n);
             * 表示将从第x+1列,y+1行到m+1列,n+1行合并
             */
            sheet.mergeCells(8,1,10,1);
            label = new Label(8,1,"测试单元格合并");
            sheet.addCell(label);

            // 写入数据
            wwb.write();
            // 关闭
            wwb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 
     * @param filePath 文件保存路径
     * @param fileName 文件名
     */
    public void readExcel(String filePath,String fileName){
        try{
            File file = new File(filePath+fileName); // 创建文件对象  
            Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象
            
            Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet)
            // 获取该工作表的行数,以供下面循环使用
             int rowNum = sheet.getRows();
             
             /*
              * 循环打印
              * i=1,i为0时打印的为表头
              */
            for (int i = 1; i < rowNum; i++) { 
                /*
                 * 得到对应的值sheet.getCell(X, i).getContents()
                 * 得到X+1列的值
                 */
                String code = sheet.getCell(0,i).getContents();
                String name = sheet.getCell(1,i).getContents();
                String sex = sheet.getCell(2, i).getContents();
                String age = sheet.getCell(3, i).getContents();
                if(sex.equals("true")){
                    sex="男";
                }else{
                    sex="女";
                }
                System.out.println("编号"+code+",姓名"+name+",性别"+sex+",年龄"+age);
            }  
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

 

java excel文件的读写

标签:

原文地址:http://www.cnblogs.com/kawang/p/4316202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!