给你一些,jxl的小经验jxl的一些总结 要往xls文件里面写入数据的时候需要注意的是第一要新建一个xls文件 
OutputStream os=new FileOutputStream("c:\\excel2.xls"); 再建完这个文件的时候再建立工作文件 
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(os)); 如果这个文件已经存在,那么我们可以在这个文件里面加入一个sheet为了和以前的数据进行分开; 
jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0); 
在createSheet方法里前面的参数是sheet名,后面是要操作的sheet号 接下来就可以往这个文件里面写入数据了 
写入数据的时候注意的格式 
(1)添加的字体样式 
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true); 
WritableFont()方法里参数说明: 
这个方法算是一个容器,可以放进去好多属性 
第一个: TIMES是字体大小,他写的是18 
第二个: BOLD是判断是否为斜体,选择true时为斜体 
第三个: ARIAL 
第四个: UnderlineStyle.NO_UNDERLINE 下划线 
第五个: jxl.format.Colour.RED 字体颜色是红色的 jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf); jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell",wcfF); 
ws.addCell(labelC); 
在Label()方法里面有三个参数 
第一个是代表列数, 
第二是代表行数, 
第三个代表要写入的内容 
第四个是可选项,是输入这个label里面的样式 
然后通过写sheet的方法addCell()把内容写进sheet里面。 (2)添加带有formatting的Number对象 
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##"); 
(3)添加Number对象 
(3.1)显示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); 
Number()方法参数说明: 
前两上表示输入的位置 
第三个表示输入的内容 
(4)添加Boolean对象 
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false); 
ws.addCell(labelB); 
(5)添加DateTime对象 
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date()); 
ws.addCell(labelDT); 
DateTime()方法的参数说明 
前两个表示输入的位置 
第三个表示输入的当前时间 
(6)添加带有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); (7)添加带有字体颜色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); import="jxl.format.* 
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN); (8)设置单元格样式 jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 
wcfFC.setBackGround(jxl.format.Colour.RED);//设置单元格的颜色为红色 
wcfFC = new jxl.write.Label(6,0,"i love china",wcfFC);

解决方案 »

  1.   

    我的提问帖:http://community.csdn.net/Expert/topic/4079/4079230.xml?temp=.8326227
     楼主帮忙看看!!!!^o^
      

  2.   

    to cxydbydyq(紅衣主教):
      你的问题我已经给你解决了~!可是我的问题谁给我解决呢,呵呵~!
      

  3.   

    JXL不是万能的,恐怕只有微软的工具才能很好的操作office文档吧。要不你去看Jxl的源码,我看过一点,里面也就支持那么点功能
      

  4.   

    俺的问题解决了,使jxl版本的问题,换了一个就好了——#¥%¥%—%—·¥!
        我浏览了一下doc,没发现有drop之类的关键字^o^,想是没有这个功能了(在Tutorial 里也没看到提及);还有就是那个jxlrwtest.xls,她是表示什么呢,我想多半只是使用jxl将original copy 到 modified,呵呵。
        有什么新的发现记得留言阿!
      

  5.   

    http://sourceforge.net/project/showfiles.php?group_id=79926
    上有jxl的源码下载,jexcelapi_2_5_6\jexcelapi\src\jxl\demo\ReadWrite.java与jxlrwtest.xls相关的代码就这段
        if (inputWorkbook.getName().equals("jxlrwtest.xls"))
        {
          modify(w2);
        }
    查看modify()方法,没有看到与Dropdown data validation相关的操作,怀疑该信息是附加在sheet上的,在WritableWorkbook w2 = Workbook.createWorkbook(outputWorkbook, w1);里就完成复制了
      

  6.   

    查了一下2.5.6版的源码,Workbook.createWorkbook(outputWorkbook, w1);中最终实现Sheet拷贝的是jxl.write.biff.WritableSheetImpl类的copy(Sheet s)方法,在其中
        // Copy the data validations
        jxl.read.biff.DataValidation rdv = si.getDataValidation();
        if (rdv != null)
        {
          dataValidation = new DataValidation(rdv, workbook, workbookSettings);
        }
    实现data validation的拷贝。楼主可以查看一下
    jxl.write.biff.DataValidation
    jxl.write.biff.DataValidityListRecord
    jxl.write.biff.DataValiditySettingsRecord
    jxl.read.biff.DataValidation
    等类的实现,我有空的话也帮你查一下
      

  7.   

    谢谢大家的关注,这个问题我想JXL应该是可以实现的,因为在的DOC里有一个EXCEL文件,就是上面cxydbydyq(紅衣主教) 说的jxlrwtest.xls文件,在这个文件里original页实现了我说的那个方法,可是我把JXL提供的DOME都运行了,把DOME里所以的方法都执行后查看生成的EXCEL文件,没有实现那个方法。
       还有个问题和大家讨论一下,好象websphere里不支持JXL,我的程序在weblogic里执行得好好的,可是发布到websphere里后,一执行到WritableWorkbook wwb = Workbook.getWorkbook(new FileInputStream("D:/1.xls")); 这决的时候,就出现java.lang.OutOfMemoryError。开始怀疑是websphere的内存不够,可是改了也重起了服务还是那样。最后没办法,我改为使用POI来读取EXCEL文件了,呵呵~!不知道各位有没有在websphere里使用JXL开发,你们有遇到这样的问题吗?