最近在做一个提取数据写到EXCEL的任务:
       就是已经给好了一个EXCEl的模板,现在要向此模板写入一些数据,但是我可以向模板中写数据,但是只要一写就会把原来的模板颜色,字体改变,而且还有一列变成黑色的了。郁闷中》》》》》》》》 我的代码又没有改变这些呀?
   朋友们讲讲这是怎么啦!  最好给出解决的代码哦!~!~!~!~!!~!~!!~
       

解决方案 »

  1.   

    这个....先获取原来的格式吧.再设置回去setCellStyle?
      

  2.   


    package org.test;import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;/**
     * 将excel数据导入到oracle数据库
     * @author Administrator
     *
     */
    public class ReadExcel2 {
       //用于返回三维数组的集合
    private static ArrayList subdata=new ArrayList();
    //excel中的表名
    private static String tablename;
    //文件路径
    private static String filePath;


    /**
     * 读取excel数据并插入到数据库中
     * @param filePath
     */
    public static void ExcelDataImport(String filePath){
    ArrayList al=readExcel(filePath);
    //转换成二维数组
    ArrayList list=ReadExcel2.getDisplayData(al);
    InsertData(list);
    }


    //将读取的数据放到一个三维数组中
    public static ArrayList readExcel(String filePath){
    try {
    subdata.clear();  //将静态的ArrayList数组清空,否则会不断增加
    InputStream is=new FileInputStream(filePath); //可能会出异常所以加try{}  FileNotFoundException
        Workbook rwb=Workbook.getWorkbook(is);  //BiffException  IOException
        //Sheet st=rwb.getSheet(0); //两种方式获取获取获取sheet表
       // Sheet st=rwb.getSheet("Book1"); //Excel中第一页的页名称
        Sheet st[]=rwb.getSheets();//得到Excel中所有页的列表
        for (int a = 0; a < st.length; a++) {
    ArrayList alList=new ArrayList();
    ArrayList tablenames=new ArrayList();
    ArrayList tableAndContents=new ArrayList();
    tablename=st[a].getName().trim();
    int b=0;
    for (int i = 0; i <st[a].getRows(); i++) {
    ArrayList al=new ArrayList();
    for (int j = 0; j < st[a].getColumns(); j++) {
    Cell c00=st[a].getCell(j,i);
    //通用的获取cell值的方法,返回字符串
    String strc00=c00.getContents().trim();
    //获取cell具体类型值的方式得到内容
    al.add(j,strc00);
    }
    alList.add(b,al);
    b++;
    }
    tablenames.add(tablename);
    tableAndContents.add(0,tablenames);
    tableAndContents.add(1,alList);
    subdata.add(a,tableAndContents);
    }
        rwb.close();
        //关闭
        //System.out.println(subdata);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (BiffException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return subdata;
    }
    private static void InsertData(ArrayList data){
    String tablename;
    ArrayList contents=new ArrayList();
    for (int i = 0; i <data.size()-2; i++) {
    ArrayList list=(ArrayList)data.get(i);
    for (int j = 0; j < list.size(); j++) {
    System.out.println(list.get(j));
    }
    }
    } //将readExcel方法中读取出来的三维数组转换成二维数组数据
    public static ArrayList getDisplayData(ArrayList al){
    ArrayList result=new ArrayList();
    for (int i = 0; i < al.size(); i++) {
    ArrayList tem=(ArrayList)((ArrayList)al.get(i)).get(1);
    for (int j = 0; j <tem.size(); j++) {
    result.add(tem.get(j));
    }
    }
    return result;

    }


    //得到文件路径
    public static String getFilePath() {
    return filePath;
    }//设置文件路径
    public static void setFilePath(String filePath) {
    ReadExcel2.filePath = filePath;
    }

    public static void main(String[] args) {
      //ReadExcel2.ExcelDataImport("D:/功能介绍.xls");
     //ReadExcel2.ExcelDataImport("E:\\MyWork\\周工作计划\\周工作计划2010-01-04到2010-01-08.xls");
      ReadExcel2.ExcelDataImport("E:/MyWork/周工作计划/周工作计划2010-01-04到2010-01-08.xls");
      
    }
    }
      

  3.   

     WritableCellFormat format = new WritableCellFormat();
    format.setBackground(Colour.BLUE_GREY);
    format.setBorder(Border.BOTTOM,BorderLineStyle.DOTTED);Label label = = new Label(0,k,node.getFirstChild().getNextSibling().getTextContent());
    label.setCellFormat(format);
    ws.addCell(label);