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”,这个问题怎么也换不了行,没办法,只能将抽出的 换成别的标识符然后再去替换了。

  • 相关阅读:
    deeplearning.ai 卷积神经网络 Week 1 卷积神经网络
    deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II
    deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I
    deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
    deeplearning.ai 改善深层神经网络 week2 优化算法
    deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
    cs231n spring 2017 lecture8 Deep Learning Networks
    cs231n spring 2017 lecture7 Training Neural Networks II
    cs231n spring 2017 lecture6 Training Neural Networks I
    cs231n spring 2017 Python/Numpy基础
  • 原文地址:https://www.cnblogs.com/sunxun/p/5729521.html
Copyright © 2011-2022 走看看