java jxl实现excel导出功能

要往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);

设置列宽: cw_sheet.setColumnView(0, 100);//第一个参数为第几列,第二个参数为列宽

设置行高: cw_sheet.setRowView(0, 1000);//第一个参数为第几行,第二个参数为行高

以下是部分例子:

  1. import jxl.*; 
  2. import jxl.write.*; 
  3. import java.io.*; 
  4. import java.io.File.*; 
  5. import java.util.*; 
  6.  
  7.  
  8.  
  9. public class excel 
  10. public static void main(String[] args)  
  11.  
  12. String targetfile = "c:/out.xls " ; //输出的excel文件名  
  13. String worksheet = "List" ; //输出的excel文件工作表名  
  14. String[] title = {"ID" , "NAME" , "DESCRIB" }; //excel工作表的标题  
  15.  
  16.  
  17. WritableWorkbook workbook; 
  18. try  
  19. //创建可写入的Excel工作薄,运行生成的文件在tomcat/bin下  
  20. //workbook = Workbook.createWorkbook(new File("output.xls"));  
  21. System.out.println("begin" ); 
  22.  
  23. OutputStream os=new FileOutputStream(targetfile);  
  24. workbook=Workbook.createWorkbook(os);  
  25.  
  26. WritableSheet sheet = workbook.createSheet(worksheet, 0 ); //添加第一个工作表  
  27. //WritableSheet sheet1 = workbook.createSheet("MySheet1", 1); //可添加第二个工作  
  28. /*  
  29. jxl.write.Label label = new jxl.write.Label(0, 2, "A label record"); //put a label in cell A3, Label(column,row)  
  30. sheet.addCell(label);   
  31. */  
  32.  
  33. jxl.write.Label label; 
  34. for ( int i= 0 ; i<title.length; i++) 
  35. //Label(列号,行号 ,内容 )  
  36. label = new jxl.write.Label(i, 0 , title[i]); //put the title in row1  
  37. sheet.addCell(label);  
  38.  
  39.  
  40.  
  41.  
  42. //下列添加的对字体等的设置均调试通过,可作参考用  
  43.  
  44.  
  45. //添加数字  
  46. jxl.write.Number number = new jxl.write.Number( 3 , 4 , 3.14159 ); //put the number 3.14159 in cell D5  
  47. sheet.addCell(number); 
  48.  
  49. //添加带有字型Formatting的对象  
  50. jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 10 ,WritableFont.BOLD, true );  
  51. jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);  
  52. jxl.write.Label labelCF = new jxl.write.Label( 4 , 4 , "文本" ,wcfF);  
  53. sheet.addCell(labelCF);  
  54.  
  55. //添加带有字体颜色,带背景颜色 Formatting的对象  
  56. jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10 ,WritableFont.BOLD, false ,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);  
  57. jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);  
  58. wcfFC.setBackground(jxl.format.Colour.BLUE); 
  59. jxl.write.Label labelCFC = new jxl.write.Label( 1 , 5 , "带颜色" ,wcfFC);  
  60. sheet.addCell(labelCFC);  
  61.  
  62. //添加带有formatting的Number对象  
  63. jxl.write.NumberFormat nf = new jxl.write.NumberFormat( "#.##" );  
  64. jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);  
  65. jxl.write.Number labelNF = new jxl.write.Number( 1 , 1 , 3.1415926 ,wcfN);  
  66. sheet.addCell(labelNF);  
  67.  
  68. //3.添加Boolean对象  
  69. jxl.write.Boolean labelB = new jxl.write.Boolean( 0 , 2 , false );  
  70. sheet.addCell(labelB);  
  71.  
  72. //4.添加DateTime对象  
  73. jxl.write.DateTime labelDT = new jxl.write.DateTime( 0 , 3 , new java.util.Date());  
  74. sheet.addCell(labelDT);  
  75.  
  76. //添加带有formatting的DateFormat对象  
  77. jxl.write.DateFormat df = new jxl.write.DateFormat( "ddMMyyyyhh:mm:ss" );  
  78. jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);  
  79. jxl.write.DateTime labelDTF = new jxl.write.DateTime( 1 , 3 , new java.util.Date(),wcfDF);  
  80. sheet.addCell(labelDTF);  
  81.  
  82. //和宾单元格  
  83. //sheet.mergeCells(int col1,int row1,int col2,int row2);//左上角到右下角  
  84. sheet.mergeCells(4 , 5 , 8 , 10 ); //左上角到右下角  
  85. wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 40 ,WritableFont.BOLD, false ,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);  
  86. jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);  
  87. wchB.setAlignment(jxl.format.Alignment.CENTRE); 
  88. labelCFC = new jxl.write.Label( 4 , 5 , "单元合并" ,wchB);  
  89. sheet.addCell(labelCFC); //  
  90.  
  91.  
  92. //设置边框  
  93. jxl.write.WritableCellFormat wcsB = new jxl.write.WritableCellFormat();  
  94. wcsB.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THICK); 
  95. labelCFC = new jxl.write.Label( 0 , 6 , "边框设置" ,wcsB);  
  96. sheet.addCell(labelCFC);  
  97. workbook.write();  
  98. workbook.close(); 
  99. }catch (Exception e)  
  100. {  
  101. e.printStackTrace();  
  102. }  
  103. System.out.println("end" ); 
  104. Runtime r=Runtime.getRuntime();  
  105. Process p=null ;  
  106. //String cmd[]={"notepad","exec.java"};  
  107. String cmd[]={"C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE" , "out.xls" };  
  108. try {  
  109. p=r.exec(cmd);  
  110. }  
  111. catch (Exception e){  
  112. System.out.println("error executing: " +cmd[ 0 ]);  
  113.  
  114.  
  115. }

 

你可能感兴趣的:(java,java,java)