java 读取 并 写入一个新的Excle

来源:互联网 发布:重庆编程培训 编辑:程序博客网 时间:2024/06/11 20:44
package com.write;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import jxl.Cell;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 JSXWriteExcelXls {    public static void main(String[] args) {        //只支持读取2003                Map<Integer, List<String[]>> map = readExcel(new File("e:/读取excel.xls"));         for(int n=0;n<map.size();n++){            List<String[]> list = map.get(n);            System.out.println("-------------------------sheet"+n+"--------------------------------");            for(int i=0;i<list.size();i++){                String[] arr = (String[]) list.get(i);                for(int j=0;j<arr.length;j++){                    if(j==arr.length-1)                        System.out.print(arr[j]);                    else                        System.out.print(arr[j]+"|");                }                System.out.println();            }        }                writeExcel(new File("e:/写入excel.xls"),map);    }    public static Map<Integer, List<String[]>> readExcel(File file) {        Map<Integer, List<String[]>> map = new HashMap<Integer, List<String[]>>();        try {            Workbook wb = Workbook.getWorkbook(file);            for(int n=0;n<wb.getSheets().length;n++){                Sheet sheet = wb.getSheet(n);                if (sheet == null) {                    continue;                }                List<String[]> list = new ArrayList<String[]>();                for (int i = 0; i < sheet.getRows(); i++) {                    Cell[] row = sheet.getRow(i);                    if (row == null) {                        continue;                    }                    String[] singleRow = new String[row.length];                    for (int j = 0; j < sheet.getColumns(); j++) {                        Cell cell = sheet.getCell(j, i); // 列 行                        //获取Cell的类型:cell.getType()   类型的枚举CellType.xxx                        singleRow[j] = cell.getContents();                    }                    list.add(singleRow);                }                map.put(n, list);            }        } catch (BiffException e) {            // TODO 自动生成的 catch 块            e.printStackTrace();        } catch (IOException e) {            // TODO 自动生成的 catch 块            e.printStackTrace();        }        return map;    }   // 写文件    public static void writeExcel(File file,Map<Integer, List<String[]>> map) {        try {            // 创建文件            WritableWorkbook book = Workbook.createWorkbook(file);            for(int n=0;n<map.size();n++){                WritableSheet sheet = book.createSheet("sheet"+(n+1), n);                List<String[]> list = map.get(n);                for(int i=0;i<list.size();i++){                    String[] arr = list.get(i);                    for(int j=0;j<arr.length;j++){                        sheet.addCell(new Label(j, i, arr[j]));                    }                }            }            book.write();            book.close();        } catch (Exception e) {            e.printStackTrace();        }    }}
阅读全文
0 0