好久没做开发了,最近需要做个小模块,在一个已经有数据的excel文件中向其最后一行插入一条数据,用JXL 怎么实现 谁能给出例子,很急 在线等

解决方案 »

  1.   

    这里有详细的APIhttp://hi.baidu.com/sayjava/blog/item/c1d66a03f0a137e808fa935e.html
    本人思路:
    首先用jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
    jxl.Sheet rs = rwb.getSheet(0);
    int rsColumns = rs.getColumns();得到总列数,然后用jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
    jxl.Sheet rs = rwb.getSheet(0);
    int rsRows = rs.getRows();然后算出新添加行的坐标,用以下方法写入内容//1.添加Label对象
    jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
    ws.addCell(labelC);
    //添加带有字型Formatting的对象
    jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, 
    WritableFont.BOLD, true);
    jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
    jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", 
    wcfF);
    ws.addCell(labelCF);
    //添加带有字体颜色Formatting的对象
    jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, 
    WritableFont.NO_BOLD, false,
    UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
    jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
    jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", 
    wcfFC);
    ws.addCell(labelCF);
    //2.添加Number对象
    jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
    ws.addCell(labelN);
    //添加带有formatting的Number对象
    jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
    jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
    jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
    ws.addCell(labelNF);
    //3.添加Boolean对象
    jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
    ws.addCell(labelB);
    //4.添加DateTime对象
    jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
    ws.addCell(labelDT);
    //添加带有formatting的DateFormat对象
    jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
    jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
    jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), 
    wcfDF);
    ws.addCell(labelDTF);
    其他细节的地方请参考API
      

  2.   

    简单点说就是先得到当前sheet的行数和列数,然后就知道了要新添加的那行的每个单元格的坐标,然后根据坐标往每个单元格中写内容,然后保存!
      

  3.   


    File tar = new File("C:\\Users\\qingralf\\Desktop\\test.xls");//目标文件
    Workbook wb = Workbook.getWorkbook(tar);//只读的workbook,用于计算最后一列
    WritableWorkbook book = Workbook.createWorkbook(tar, wb);//可写的workbook,写入内容来源于上面打开的只读workbook
    WritableSheet sheet = book.getSheet(0);//取得第一个sheet页
    jxl.write.Label label = new jxl.write.Label(0,wb.getSheet(0).getRows(),"你要加的字");//0列,最后一行
    sheet.addCell(label);//写入sheet
    book.write();
    book.close();
    wb.close();
      

  4.   

    int rsRows = rs.getRows();
    得到总行数。然后构造label对象
    ws.addCell(label);
    最后write