Java利用POI產生Excel強制換行

來源:互聯網
上載者:User

使用POI建立一個簡單的   myXls.xls   檔案  
   
常用的包為   org.apache.poi.hssf.usermodel.*;  
例子:  
   
import   java.io.*;  
import   org.apache.poi.hssf.usermodel.*;  
   
public   class   ZoomSheet   {  
   
          public   ZoomSheet()   {  
          }  
   
          public   static   void   main(String   args[])  
                  throws   IOException   {  
   
                  HSSFWorkbook   wb   =   new   HSSFWorkbook();  
                  HSSFSheet   sheet1   =   wb.createSheet("new  
sheet");  
                  FileOutputStream   fileOut   =   new  
FileOutputStream("workbook.xls");  
                  wb.write(fileOut);  
                  fileOut.close();  
          }  
}  
   
類:  
HSSFWorkbook 建立   xls   的對象; HSSFWorkbook   hw   =   new  
HSSFWorkbook();                  
設定分區顯示; hw.setRepeatingRowsAndColumns(sheet的index,   行,   列,   行,  
列);  
HSSFSheet 建立   xls   中的sheet(工作表); HSSFSheet   sheet   =  
hw.createSheet("sheet1");       sheet1   是   sheet   的名稱   可預設  
設定列高; sheet.setColumnWidth((short)short,   (short)short);  
HSSFRow 建立   xls   中的行; HSSFRow   row   =  
sheet.createRow(0);                             0   表示第一行  
設定行高; row.setHeight((short)short);  
HSSFFont 建立   xls   中的字型; HSSFFont   font   =  
hw.createFont();  
設定字型大小; font.setFontHeightInPoints((short)54);  
設定為斜體; font.setItalic(true);  
設定文字刪除線; font.setStrikeout(true);  
HSSFCellStyle 設定儲存格風格; HSSFCellStyle   style   =  
wb.createCellStyle();  
加入字型; style.setFont(font);  
HSSFCell 設定儲存格; HSSFCell   cell   =   row.createCell((short)0);  
儲存格水平對齊; style.setAlignment(align);         //儲存格水平   0   普通  
1   靠左對齊   2   置中   3   靠右對齊   4   填充   5   正當   6   置中選擇  
儲存格垂直對齊; style.setVerticalAlignment(align);       //儲存格垂直   0  
居上   1   置中   2   居下   3   正當  
   
儲存格下邊框為細線; style.setBorderBottom((short)short);  
同上一命令一同使用,設定顏色; style.setBottomBorderColor((short)short);  
儲存格左邊框; style.setBorderLeft((short)short);  
style.setLeftBorderColor((short)short);  
儲存格右邊框; style.setBorderRight((short)short);  
style.setRightBorderColor((short)short);  
儲存格上邊框; style.setBorderTop((short)short);  
style.setTopBorderColor((short)short);  
儲存格字元編號(中文); cell.setEncoding(HSSFCell.ENCODING_UTF_16);       //中文  

儲存格顯示的值; cell.setCellValue("中醫藥");    
值的類型有:double,int,String,Date,boolean  
儲存格背景色; style.setFillForegroundColor((short)short);  
圖案類型; style.setFillPattern((short)short);  
儲存格合并; sheet.addMergedRegion(new   Region(行,   (short)列,   行,  
(short)列));  
   
   
儲存格風格加入; cell.setCellStyle(style);  
   
               
   
   
列印設定  
引入包 import   org.apache.poi.hssf.usermodel.HSSFPrintSetup;  
建立列印設定對象 HSSFPrintSetup   hps   =   hs.getPrintSetup();  
設定A4紙 hps.setPaperSize((short)9);      
將版面設定為橫向列印模式 hps.setLandscape(true);    
   
設定列印頁面為水平置中 sheet.setHorizontallyCenter(true);        
設定列印頁面為垂直置中 sheet.setVerticallyCenter(true);

 

網上找到的文章都是說在excel裡的文字裡加上/n,/n/r,/r/n之類,反正各種各樣的都有,更奇怪的是還有人說在儲存格裡加
上<br>
後來我試過用/r後的效裡是產生的檔案裡,你用開啟時,並不會換行,如果你用滑鼠在儲存格裡點一下之後就會自動換行。

可以通過如下方式進行,
1. 首先在需要強制換行的儲存格裡使用poi的樣式,並且把樣式設定為自動換行
   # HSSFCellStyle cellStyle=workbook.createCellStyle();    
   # cellStyle.setWrapText(true);    
   # cell.setCellStyle(cellStyle);
2. 其次是在需要強制換行的儲存格,使用/就可以實再強制換行
   1. HSSFCell cell = row.createCell((short)0);
   2. cell.setCellStyle(cellStyle);                          
cell.setCellValue(new HSSFRichTextString("hello/r/n world!"));
這樣就能實現強制換行,
換行後的效裡是儲存格裡強制換行
hello
world!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.