我在修改 Excel 是这样修改的 ,我想把 原来 是 Number 类型的 改称 Label 类型public static void updateExcel()throws Exception{
String fCopy = "D:\\Myworkspace\\IOTest\\temp\\temp.xls";
String fCreate = "D:\\Myworkspace\\IOTest\\temp\\temp1.xls";
// 首先 获取工作簿
Workbook wb = Workbook.getWorkbook(new File(fCopy));
WritableWorkbook wwb = Workbook.createWorkbook(new File(fCreate),wb);
// 根据 工作表 的名称 获取一个 工作表对象
WritableSheet ws = wwb.getSheet("temp");
// ws.getCell(column, row);
WritableCell wc = null;
Hashtable ht = getData();
System.out.println(ht.size());
for (int i = 0; i < ht.size(); i++) {
wc = ws.getWritableCell(1, i);
// 如果 不等于 null 就修改
String temp = "";
if((temp=(String)ht.get(wc.getContents()))!=null){
if(wc.getType()==CellType.NUMBER){
Number n = (Number)wc; // 原来是 Number 类型
n.setValue(11);
//Label l = (Label)wc; 想修改成这样
//l.setString(temp);
} }else{
System.out.println(wc.getContents());
}
}
wwb.write();
wwb.close();
wb.close();
}
String fCopy = "D:\\Myworkspace\\IOTest\\temp\\temp.xls";
String fCreate = "D:\\Myworkspace\\IOTest\\temp\\temp1.xls";
// 首先 获取工作簿
Workbook wb = Workbook.getWorkbook(new File(fCopy));
WritableWorkbook wwb = Workbook.createWorkbook(new File(fCreate),wb);
// 根据 工作表 的名称 获取一个 工作表对象
WritableSheet ws = wwb.getSheet("temp");
// ws.getCell(column, row);
WritableCell wc = null;
Hashtable ht = getData();
System.out.println(ht.size());
for (int i = 0; i < ht.size(); i++) {
wc = ws.getWritableCell(1, i);
// 如果 不等于 null 就修改
String temp = "";
if((temp=(String)ht.get(wc.getContents()))!=null){
if(wc.getType()==CellType.NUMBER){
Number n = (Number)wc; // 原来是 Number 类型
n.setValue(11);
//Label l = (Label)wc; 想修改成这样
//l.setString(temp);
} }else{
System.out.println(wc.getContents());
}
}
wwb.write();
wwb.close();
wb.close();
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.Hashtable;
import java.util.List;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;/**
* <p>@Description:</p>
* <p>@Company: 104人力银行</p>
* <p>@CreateDate: 2007-10-15</p>
* @author: dawei.li
* @version: 1.0
*/
public class UpdateTxtAndExcecl { /**
* @param args
*/
public static void main(String[] args) throws Exception{
// getData();
// update();
Date d = new Date();
updateExcel();
Date d1 = new Date();
System.out.println(d1.getTime()-d.getTime());
}
// 首先读取 txt 文本中的数据 , 返回一个 Hashtable Hashtable numbers = new Hashtable();
public static Hashtable getData() throws Exception{
// FileInputStream file = new FileInputStream(new File("D:\\Myworkspace\\IOTest\\temp\\Book1.xls"));
BufferedReader br = new BufferedReader(new FileReader(new File("D:\\Myworkspace\\IOTest\\temp\\address.txt")));
String str = "";
String [] arr = new String[100000];
Hashtable<String, String> ht = new Hashtable();
List<String> array = new ArrayList();
List<String> arrayNum = new ArrayList();
List<String> arrayStr = new ArrayList();
while((str=br.readLine())!=null){
arr = str.split(",");
for (int i = 0; i < arr.length; i++) {
array.add(arr[i].substring(arr[i].indexOf("'")+1,arr[i].lastIndexOf("'")));
}
}
for (int i = 0; i < array.size(); i++) {
// 不等于 0 表示 是奇数 ,存储 数字
if(i%2!=0){
if(array.get(i).toString()!=null){
arrayNum.add(array.get(i));
}
// 如果等于 0 表示 是偶数 , 存储字符串
}else if(i%2==0){
if(array.get(i).toString()!=null){
arrayStr.add(array.get(i));
}
}
}
for (int i = 0; i < arrayStr.size(); i++) {
ht.put(arrayNum.get(i), arrayStr.get(i));
}
return ht;
} // 开始加载 目标 Excel 文件
public static void updateExcel()throws Exception{
String fCopy = "D:\\Myworkspace\\IOTest\\temp\\temp.xls";
String fCreate = "D:\\Myworkspace\\IOTest\\temp\\temp1.xls";
// 首先 获取工作簿
Workbook wb = Workbook.getWorkbook(new File(fCopy));
WritableWorkbook wwb = Workbook.createWorkbook(new File(fCreate),wb);
// 根据 工作表 的名称 获取一个 工作表对象
WritableSheet ws = wwb.getSheet("temp");
// ws.getCell(column, row);
WritableCell wc = null;
Hashtable ht = getData();
for (int i = 0; i < ht.size(); i++) {
wc = ws.getWritableCell(1, i);
// 如果 不等于 null 就修改
String temp = "";
if((temp=(String)ht.get(wc.getContents()))!=null){
// if(wc.getType()==CellType.NUMBER){
// jxl.write.Number n = (jxl.write.Number)wc;
// n.setValue(i);
// }
ws.addCell(new Label(1,i,temp));
}else{
// System.out.println(wc.getContents());
}
}
wwb.write();
wwb.close();
wb.close();
}
public static void update()throws Exception{
String fCopy = "D:\\Myworkspace\\IOTest\\temp\\temp.xls";
Workbook wwb = Workbook.getWorkbook(new FileInputStream(new File(fCopy)));
Sheet sheet = wwb.getSheet("temp");
Cell [] c = sheet.getColumn(0);
for (int i = 0; i < c.length; i++) {
System.out.println(c[i].getContents());
}
}
}其中 address.txt 的内容是:
new LabelValueObj('北京市', '1021000'), new LabelValueObj('东城区', '1021001'), new LabelValueObj('西城区', '1021002'), new LabelValueObj('崇文区', '1021003'), new LabelValueObj('宣武区', '1021004'), new LabelValueObj('朝阳区', '1021005'), new LabelValueObj('丰台区', '1021006'), new LabelValueObj('石景山区', '1021007'), new LabelValueObj('海淀区', '1021008'), new LabelValueObj('门头沟区', '1021009'), new LabelValueObj('房山区', '1021010'), new LabelValueObj('通州区', '1021011'), new LabelValueObj('顺义区', '1021012'), new LabelValueObj('昌平区', '1021013'), new LabelValueObj('大兴区', '1021014'), new LabelValueObj('怀柔区', '1021015'), new LabelValueObj('平谷区', '1021016'), new LabelValueObj('密云县', '1021017'), new LabelValueObj('延庆县', '1021018')其中 temp.xls 的内容是:1021000
1021001
1021002
1021003
1021004
1021005
1021006
1021007
1021008
1021009
1021010
1021011
1021012
1021013
1021014
1021015
1021016
1021017
1021018
1021019
1021020
1021021
如 :1、 ws.addCell(new Label(1,i,temp));
2、 wc = ws.getWritableCell(1, i);