zoukankan      html  css  js  c++  java
  • 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);  
                //设定值  
              //设置单元格中的值 使用有
    换行符  
                String xxx = "Use 
     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”,这个问题怎么也换不了行,没办法,只能将抽出的 换成别的标识符然后再去替换了。

  • 相关阅读:
    jq02--基础函数
    jq01--概述
    js06--函数库jq与prototype
    eclipse启动时 failed to create the java virtual machine 解决办法
    将博客搬至CSDN
    eclipse.ini 修改默认编码为 UTF-8
    Elicpse使用技巧-打开选中文件文件夹或者包的当前目录
    eclipse换了高版本的maven插件后报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project
    python进行数据清理之pandas中的drop用法
    如何用Python实现常见机器学习算法-4
  • 原文地址:https://www.cnblogs.com/sunxun/p/5729521.html
Copyright © 2011-2022 走看看