java poi導入導出2

1.建立一個新的Excel工做薄html



 


 

[java]
 java


 


  1. //建立新的Excel工做簿

    apache

  2. HSSFWorkbookworkbook=new HSSFWorkbook();

    佈局


  3. //在Excel工做簿中建一工做表,其名爲缺省值,也能夠指定Sheet名稱

    字體

  4. HSSFSheetsheet=workbook.createSheet();

    .net

  5. //HSSFSheetsheet=workbook.createSheet("SheetName");
    excel



2. 建立新行(row),並將單元格(cell)放入其中.行號從0開始計算.orm



 


 

[java]
 htm


 


  1. HSSFRowrow=sheet.createRow((short)1);
    對象


3.設置sheet名稱和單元格內容爲中文



 


 

[java]
 


 


  1. wb.setSheetName(n,"中文",HSSFCell.ENCODING_UTF_16);

  2. cell.setEncoding((short)1);

  3. cell.setCellValue("中文");


4.設置列寬、行高




 

[java]      


 


  1. sheet.setColumnWidth((short)column,(short)width);

  2. row.setHeight((short)height);


5.添加區域,合併單元格




 

[java]   view plain   copy    


 


  1. Regionregion=new Region((short)rowFrom,(short)columnFrom,(short)rowTo,(short)columnTo);

  2. sheet.addMergedRegion(region);

  3. //獲得全部區域

  4. sheet.getNumMergedRegions()


6.設置單元格邊框格式


虛線HSSFCellStyle.BORDER_DOTTED
實線HSSFCellStyle.BORDER_THIN



 


 

[java]
 


 


  1. public static HSSFCellStylegetCellStyle(short type){

  2. HSSFWorkbookwb=new HSSFWorkbook();

  3. HSSFCellStylestyle=wb.createCellStyle();

  4. style.setBorderBottom(type);//下邊框

  5. style.setBorderLeft(type);//左邊框

  6. style.setBorderRight(type);//右邊框

  7. style.setBorderTop(type);//上邊框

  8. return style;

  9. }


7.設置字體和內容位置




 

[java]      


 


  1. HSSFFontf=wb.createFont();

  2. f.setFontHeightInPoints((short)11);//字號

  3. f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗

  4. style.setFont(f);

  5. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中

  6. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中

  7. style.setRotation(short rotation);//單元格內容的旋轉的角度

  8. HSSFDataFormatdf=wb.createDataFormat();

  9. style1.setDataFormat(df.getFormat("0.00%"));//設置單元格數據格式

  10. cell.setCellFormula(string);//給單元格設公式

  11. style.setRotation(short rotation);//單元格內容的旋轉的角度

  12. cell.setCellStyle(style);


8.插入圖片




 

[java]  
   


 


  1. //先把讀進來的圖片放到一個ByteArrayOutputStream中,以便產生ByteArray

  2. ByteArrayOutputStreambyteArrayOut=new ByteArrayOutputStream();

  3. BufferedImagebufferImg=ImageIO.read(new File("ok.jpg"));

  4. ImageIO.write(bufferImg,"jpg",byteArrayOut);

  5. //讀進一個excel模版

  6. FileInputStreamfos=new FileInputStream(filePathName+"/stencil.xlt");

  7. fs=new POIFSFileSystem(fos);

  8. //建立一個工做薄

  9. HSSFWorkbookwb=new HSSFWorkbook(fs);

  10. HSSFSheetsheet=wb.getSheetAt(0);

  11. HSSFPatriarchpatriarch=sheet.createDrawingPatriarch();

  12. HSSFClientAnchoranchor=new HSSFClientAnchor(0,0,1023,255,(short)0,0,(short)10,10);

  13. patriarch.createPicture(anchor,wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));



例1:java




 

[java]   view plain   copy    


 


  1. import java.io.FileOutputStream;


  2. import org.apache.poi.hssf.usermodel.HSSFCell;

  3. import org.apache.poi.hssf.usermodel.HSSFCellStyle;

  4. import org.apache.poi.hssf.usermodel.HSSFFont;

  5. import org.apache.poi.hssf.usermodel.HSSFRow;

  6. import org.apache.poi.hssf.usermodel.HSSFSheet;

  7. import org.apache.poi.hssf.usermodel.HSSFWorkbook;

  8. import org.apache.poi.hssf.usermodel.HSSFRichTextString;

  9. import org.apache.poi.hssf.usermodel.HSSFDataFormat;

  10. import org.apache.poi.hssf.usermodel.HSSFComment;

  11. import org.apache.poi.hssf.usermodel.HSSFPatriarch;

  12. import org.apache.poi.hssf.usermodel.HSSFClientAnchor;


  13. public class PoiCreateExcelTest...{

  14. public static void main(String[]args)...{



  15. //建立新的Excel工做簿

  16. HSSFWorkbookworkbook=new HSSFWorkbook();


  17. //在Excel工做簿中建一工做表,其名爲缺省值,也能夠指定Sheet名稱

  18. HSSFSheetsheet=workbook.createSheet();

  19. //HSSFSheetsheet=workbook.createSheet("SheetName");


  20. //用於格式化單元格的數據

  21. HSSFDataFormatformat=workbook.createDataFormat();


  22. //建立新行(row),並將單元格(cell)放入其中.行號從0開始計算.

  23. HSSFRowrow=sheet.createRow((short)1);


  24. //設置字體

  25. HSSFFontfont=workbook.createFont();

  26. font.setFontHeightInPoints((short)20);//字體高度

  27. font.setColor(HSSFFont.COLOR_RED);//字體顏色

  28. font.setFontName("黑體");//字體

  29. font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//寬度

  30. font.setItalic(true);//是否使用斜體

  31. //font.setStrikeout(true);//是否使用劃線


  32. //設置單元格類型

  33. HSSFCellStylecellStyle=workbook.createCellStyle();

  34. cellStyle.setFont(font);

  35. cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平佈局:居中

  36. cellStyle.setWrapText(true);


  37. //添加單元格註釋

  38. //建立HSSFPatriarch對象,HSSFPatriarch是全部註釋的容器.

  39. HSSFPatriarchpatr=sheet.createDrawingPatriarch();

  40. //定義註釋的大小和位置,詳見文檔

  41. HSSFCommentcomment=patr.createComment(new HSSFClientAnchor(0,0,0,0,(short)4,2,(short)6,5));

  42. //設置註釋內容

  43. comment.setString(new HSSFRichTextString("能夠在POI中添加註釋!"));

  44. //設置註釋做者.當鼠標移動到單元格上是能夠在狀態欄中看到該內容.

  45. comment.setAuthor("Xuys.");


  46. //建立單元格

  47. HSSFCellcell=row.createCell((short)1);

  48. HSSFRichTextStringhssfString=new HSSFRichTextString("HelloWorld!");

  49. cell.setCellValue(hssfString);//設置單元格內容

  50. cell.setCellStyle(cellStyle);//設置單元格樣式

  51. cell.setCellType(HSSFCell.CELL_TYPE_STRING);//指定單元格格式:數值、公式或字符串

  52. cell.setCellComment(comment);//添加註釋


  53. //格式化數據

  54. row=sheet.createRow((short)2);

  55. cell=row.createCell((short)2);

  56. cell.setCellValue(11111.25);

  57. cellStyle=workbook.createCellStyle();

  58. cellStyle.setDataFormat(format.getFormat("0.0"));

  59. cell.setCellStyle(cellStyle);


  60. row=sheet.createRow((short)3);

  61. cell=row.createCell((short)3);

  62. cell.setCellValue(9736279.073);

  63. cellStyle=workbook.createCellStyle();

  64. cellStyle.setDataFormat(format.getFormat("#,##0.0000"));

  65. cell.setCellStyle(cellStyle);



  66. sheet.autoSizeColumn((short)0);//調整第一列寬度

  67. sheet.autoSizeColumn((short)1);//調整第二列寬度

  68. sheet.autoSizeColumn((short)2);//調整第三列寬度

  69. sheet.autoSizeColumn((short)3);//調整第四列寬度


  70. try ...{

  71. FileOutputStreamfileOut=new FileOutputStream("C:\3.xls");

  72. workbook.write(fileOut);

  73. fileOut.close();

  74. }catch (Exceptione)...{

  75. System.out.println(e.toString());

  76. }

  77. }


  78. }


若是編譯器提示沒有autoSizeColumn這個方法,那多是你的poi版本過低的緣故,我用的是poi3.0版本。




例2:Grails




 

[java]   view plain   copy    


 



  1. defexportWorkList(titleList,classList,questionList,out,ttList){


  2. Workbookwb=new HSSFWorkbook();

  3. Sheetsheet=wb.createSheet("sheet1");//班級工做狀況統計


  4. HSSFRowrow=sheet.createRow((short)1);

  5. HSSFRowrow2=sheet.createRow((short)2);

  6. HSSFCellcell=row.createCell((short)1);

  7. HSSFCellcell2=row.createCell((short)2);


  8. //設置字體

  9. HSSFFontfont=wb.createFont();

  10. //font.setFontHeightInPoints((short)11);//字體高度

  11. //font.setColor(HSSFFont.COLOR_RED);//字體顏色

  12. //font.setFontName("黑體");//字體

  13. font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//寬度


  14. //設置單元格類型

  15. HSSFCellStylecellStyle=wb.createCellStyle();

  16. cellStyle.setFont(font);

  17. cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平佈局:居中

  18. cellStyle.setWrapText(true);


  19. HSSFCellStylecellStyle1=wb.createCellStyle();

  20. cellStyle1.setAlignment(HSSFCellStyle.VERTICAL_TOP);//垂直佈局:居上

  21. cellStyle1.setWrapText(true);//設置自動換行


  22. //設置單元格寬度

  23. sheet.setColumnWidth(0,1500);//序列

  24. sheet.setColumnWidth(1,2500);//區縣名稱

  25. sheet.setColumnWidth(2,7000);//基地名稱

  26. sheet.setColumnWidth(3,7000);//班級名稱

  27. sheet.setColumnWidth(4,2500);//班級狀態


  28. sheet.setColumnWidth(29,3000);//拓寬問題5的單元格寬度


  29. sheet.setColumnWidth(35,5000);//評價最高的老師

  30. sheet.setColumnWidth(36,5000);//評價最低的老師



  31. titleList.eachWithIndex{p,i->

  32. if(i>=5 &&i<=10){

  33. cell=row.createCell(5+5*(i-5));

  34. sheet.addMergedRegion(new Region(0,(short)0,0,(short)36));//合併區域第一行

  35. sheet.addMergedRegion(new Region(1,(short)(5+5*(i-5)),1,(short)(5+5*(i-5)+4)));//指定合併區域

  36. cell.setCellValue(p);

  37. cell.setCellStyle(cellStyle);//設置單元格樣式



  38. }}

  39. }


  40. try {

  41. wb.write(out);

  42. out.close();

  43. }catch (FileNotFoundExceptione1){

  44. //e1.printStackTrace();

  45. }catch(IOExceptione){

  46. //e.printStackTrace();

  47. }

  48. }

相關文章
相關標籤/搜索