随笔-204  评论-90  文章-8  trackbacks-0
    通过jxl.jar读写Excel:
package com.pub.util;

import java.io.File;
import java.io.IOException;
import java.util.Vector;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExlUtil {

    
public static Vector readExl(String fileName) {
        Vector vec1 
= null;
        Vector vec2 
= new Vector();
        File f 
= new File(fileName);

        
try {
            
// 构建Workbook对象, 只读Workbook对象
            Workbook workbook = Workbook.getWorkbook(f);
            
// 获取第一张Sheet表
            Sheet sheet = workbook.getSheet(0);
            
// 获取行数
            int rows = sheet.getRows();
            
// 获取列数
            int columns = sheet.getColumns();
            
for (int i = 0; i < rows; i++) {
                vec1 
= new Vector();
                
for (int j = 0; j < columns; j++) {
                    
// 获取j列i行的值
                    String cbxmdm = sheet.getCell(j, i).getContents();
                    
if (cbxmdm == null)
                        cbxmdm 
= "";
                    vec1.add(cbxmdm);
                }
                
if (vec1 != null)
                    vec2.add(vec1);
            }
        } 
catch (BiffException e) {
            e.printStackTrace();
        } 
catch (IOException e) {
            e.printStackTrace();
        }
        
return vec2;

    }

    
public static void writeExl(String fileName, Vector vec) {
        WritableWorkbook book 
= null;
        WritableSheet sheet 
= null;
        
try {
            book 
= Workbook.createWorkbook(new File(fileName));

            
// 生成名为“第一页”的工作表,参数0表示这是第一页
            sheet = book.createSheet("第一页"0);

            
// 打开文件
            for (int i = 0; i < vec.size(); i++) {
                
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
                Vector vec2 = (Vector) vec.get(i);
                
for (int j = 0; j < vec2.size(); j++) {
                    
// 第i行第j列
                    Label label = new Label(j, i, (String) vec2.get(j));
                    
// 将定义好的单元格添加到工作表中
                    sheet.addCell(label);
                }
            }
            
// 写入数据并关闭文件
            book.write();
            book.close();

        } 
catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
public static void main(String[] args) {
        ExlUtil.writeExl(
"f:/new.xls", ExlUtil.readExl("f:/xx.xls"));
    }
}


posted on 2008-01-21 16:37 一凡 阅读(389) 评论(0)  编辑  收藏 所属分类: JAVA 基础

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问