java poi出excel換行問題


POI操作excel實現換行問題。

package jp.co.misumi.mdm.batch.common.jobrunner;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.amazonaws.services.devicefarm.model.Test;

import jp.co.misumi.mdm.batch.common.def.BatchConstants;
import jp.co.misumi.mdm.core.common.excel.writer.ExcelWriterExt;

public class Demo
{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        

            try
            {
                Test();
            }
            catch (EncryptedDocumentException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            catch (InvalidFormatException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
System.out.println("---END---");

    }
    
    public static void  Test() throws IOException, EncryptedDocumentException, InvalidFormatException
    {
        //初始化輸入流  
        InputStream inp;
        try
        {
            
            XSSFWorkbook wb = null;
            try
            {
                 wb = new XSSFWorkbook("D:/workbook.xlsx");
            }
            catch (Exception e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
            //創建讀取對應的文件生成對象  
           
            //得到第0個工作薄  
            Sheet sheet = wb.getSheetAt(0);  
            //得到第3行 小標從0開始,所以是2  
            Row row = sheet.getRow(2);  
            //得到第三行第4個單元格 4D 小標從0開始所以是三  
            Cell cell = row.getCell(3);  
            //查看該單元格是否定義,如果沒有定義返回NULL  
            //,否則返回一個邏輯上的單元格,如果沒有則創建  
            //??為什么需要先判斷為空,因為如果該單元格已經  
            //存在而且已經定義,如果你在創建,原來的單元格  
            //將會被你重新創建的單元格覆蓋,這樣做可以節約  
            //你的空間,因為沒有重新創建對象  
            if (cell == null)  
                cell = row.createCell(3);  
            //設置單元格的類型是String字符串文本類型  
            cell.setCellType(Cell.CELL_TYPE_STRING);  
            //設定值  
          //設置單元格中的值 使用有\n換行符  
            String xxx = "Use \n with word wrap on to create a new line";
            cell.setCellValue(xxx);  
            //cell.setCellValue("a test");    
            
            CellStyle cs = wb.createCellStyle();  
            cs.setWrapText(true);  
            cell.setCellStyle(cs);  
            
          //增加行的高度以適應2行文本的高度,設置高度單位(像素)  
            row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints())); 
            
            //調整該列寬度適應內容   
           // sheet.autoSizeColumn((short)2);  
            //重新寫如文件  
            FileOutputStream fileOut = new FileOutputStream("D:/workbook1.xlsx");  
            wb.write(fileOut);  
            fileOut.close();  
        }finally{
            
        }
    }

}

記錄這個是因為就算用了這個方法也換不了,因為我從DB中抽出來的字符串帶\n結果被轉譯成 “\\n”,這個問題怎么也換不了行,沒辦法,只能將抽出的 \n 換成別的標識符然后再去替換了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM