博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java excel文件的读写
阅读量:4605 次
发布时间:2019-06-09

本文共 4728 字,大约阅读时间需要 15 分钟。

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

 

转载于:https://www.cnblogs.com/kawang/p/4316202.html

你可能感兴趣的文章
mui搜索框 搜索点击事件
查看>>
A == B ?
查看>>
洛谷P3763 [Tjoi2017]DNA 【后缀数组】
查看>>
UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
查看>>
多种方法求解八数码问题
查看>>
spring mvc ModelAndView向前台传值
查看>>
(黑客游戏)HackTheGame1.21 过关攻略
查看>>
Transparency Tutorial with C# - Part 2
查看>>
android 文件上传
查看>>
ASCII 码表对照
查看>>
javascript的DOM操作获取元素
查看>>
Shuffle'm Up(串)
查看>>
20145219 《Java程序设计》第06周学习总结
查看>>
C# 执行bat文件并取得回显
查看>>
基于YOLO的Autonomous driving application__by 何子辰
查看>>
javascript中的继承
查看>>
iOS-如何写好一个UITableView
查看>>
如何在Objective-C中实现链式语法
查看>>
select2 下拉搜索控件
查看>>
WebAPI常见的鉴权方法,及其适用范围
查看>>