我在修改 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();
}

解决方案 »

  1.   

    程序我完成了 , 各位老大帮我看看 , package ExcelSrc;import java.io.BufferedReader;
    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
      

  2.   

    各位 老大在 运行的时候,程序要做些 修改,
    如 :1、 ws.addCell(new Label(1,i,temp)); 
         2、 wc = ws.getWritableCell(1, i);