Java 解析 Excel

2 篇文章 0 订阅

/*读 */

import java.io.*; 

import jxl.*; 

import jxl.write.*; 

import jxl.format.*; 

 

class Aa{ 

public static void main(String args[]) { 

 

try{ 

 

Workbook workbook = null; 

 

try { 

    workbook = Workbook.getWorkbook(new File("d:\\a.xls")); 

} catch (Exception e) { 

    throw new Exception("file to import not found!"); 

 

Sheet sheet = workbook.getSheet(0); 

Cell cell = null; 

 

int columnCount=3; 

int rowCount=sheet.getRows(); 

for (int i = 0; i <rowCount; i++) { 

    for (int j = 0; j <columnCount; j++) { 

        //注意,这里的两个参数,第一个是表示列的,第二才表示行 

        cell=sheet.getCell(j, i); 

        //要根据单元格的类型分别做处理,否则格式化过的内容可能会不正确 

        if(cell.getType()==CellType.NUMBER){ 

            System.out.print(((NumberCell)cell).getValue()); 

        } 

        else if(cell.getType()==CellType.DATE){ 

            System.out.print(((DateCell)cell).getDate()); 

        } 

        else{ 

            System.out.print(cell.getContents()); 

        } 

        

        //System.out.print(cell.getContents()); 

        System.out.print("\t"); 

    } 

    System.out.print("\n"); 

//关闭它,否则会有内存泄露 

workbook.close(); 

}catch(Exception e){ } 

 

 

/*写 */

import java.io.*; 

import jxl.*; 

import jxl.write.*; 

import jxl.format.*; 

 

class Aa{ 

public static void main(String args[]) { 

 

try{ 

 

File tempFile=new File("d:" + java.io.File.separator + "output00.xls"); 

System.out.println( "d:" + java.io.File.separator + "output00.xls" ); 

 

WritableWorkbook workbook = Workbook.createWorkbook(tempFile); 

WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0); 

 

//一些临时变量,用于写到excel中 

Label l=null; 

jxl.write.Number n=null; 

jxl.write.DateTime d=null; 

 

//预定义的一些字体和格式,同一个Excel中最好不要有太多格式 

WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE); 

WritableCellFormat headerFormat = new WritableCellFormat (headerFont); 

 

WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); 

WritableCellFormat titleFormat = new WritableCellFormat (titleFont); 

 

WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); 

WritableCellFormat detFormat = new WritableCellFormat (detFont); 

 

NumberFormat nf=new NumberFormat("0.00000");  //用于Number的格式 

WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf); 

 

DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的 

WritableCellFormat dateFormat = new WritableCellFormat (detFont, df); 

 

//剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中 

l=new Label(0, 0, "用于测试的Excel文件", headerFormat); 

sheet.addCell(l); 

 

//add Title 

int column=0; 

l=new Label(column++, 2, "标题", titleFormat); 

sheet.addCell(l); 

l=new Label(column++, 2, "日期", titleFormat); 

sheet.addCell(l); 

l=new Label(column++, 2, "货币", titleFormat); 

sheet.addCell(l); 

l=new Label(column++, 2, "价格", titleFormat); 

sheet.addCell(l); 

 

//add detail 

int i=0; 

column=0; 

l=new Label(column++, i+3, "标题 "+i, detFormat); 

sheet.addCell(l); 

d=new DateTime(column++, i+3, new java.util.Date(), dateFormat); 

sheet.addCell(d); 

l=new Label(column++, i+3, "CNY", detFormat); 

sheet.addCell(l); 

n=new jxl.write.Number(column++, i+3, 5.678, priceFormat); 

sheet.addCell(n); 

 

i++; 

column=0; 

l=new Label(column++, i+3, "标题 "+i, detFormat); 

sheet.addCell(l); 

d=new DateTime(column++, i+3, new java.util.Date(), dateFormat); 

sheet.addCell(d); 

l=new Label(column++, i+3, "SGD", detFormat); 

sheet.addCell(l); 

n=new jxl.write.Number(column++, i+3, 98832, priceFormat); 

sheet.addCell(n); 

 

//设置列的宽度 

column=0; 

sheet.setColumnView(column++, 20); 

sheet.setColumnView(column++, 20); 

sheet.setColumnView(column++, 10); 

sheet.setColumnView(column++, 20); 

 

workbook.write(); 

workbook.close(); 

}catch(Exception e){ 

 

 

  

另一个例子

public ArrayList parseVideo() {   

 

    try {   

            Workbook book = Workbook.getWorkbook(new File("ua.xls"));   

            Sheet se = book.getSheet(1);得到第1个sheet

            int rownum = se.getRows();   //得到总行数   

            // Cell ce = null;   

            // StringBuffer su = new StringBuffer();   

            ArrayList list = new ArrayList();   

            DBManager db = new DBManager();   

            conn = db.getConnection();   

            stmt = conn.createStatement();   

            for (int i = 1; i < rownum; i++) {   

                Mobilemeter rea = new Mobilemeter();   

                rea.setMobileID(se.getCell(0, i).getContents());  //第i行的第1列   

                rea.setModel(se.getCell(3, i).getContents());//第i行的第4列   

                rea.setShortUA(se.getCell(11, i).getContents());   

                String arr = se.getCell(8, i).getContents();   

                String ayy = arr.replaceAll("\\u002A", "x");   

                rea.setPicFormat(se.getCell(8, i).getContents());   

                rea.setResourceRing(se.getCell(9, i).getContents());   

                rea.setRingFormat(se.getCell(10, i).getContents());   

                list.add(rea);   

            }   

            book.close();   

            return list;   

        } catch (Exception e) {   

            e.printStackTrace();   

            return null;   

        }   

  

    }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值