您的位置:首页 > 编程语言 > Java开发

java 读取 并 写入一个新的Excle

2017-11-29 15:39 218 查看
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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: