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 换成别的标识符然后再去替换了。

时间: 2024-08-02 04:57:56

java poi出excel换行问题的相关文章

重构:以Java POI 导出EXCEL为例

重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的了解重构的意义. 什么是重构? <重构:改善既有代码的设计>这本书中将重构以名词和动词形式进行解释,如下 重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本. 重构(动词):使用一系列重构的手法,在不改变软件可观察行为的前提下,调整其结构.

Java Poi 读取excel 对所有类型进行处理

1.最近做了一个批量导入功能 , 发现poi读取excel的日期类型会出现问题,源于日期类型分为以下几种: ①.yyyy/MM/dd ②.HH:mm:ss ③.yyyy/MM/dd HH:mm:ss 2.解决思路: 日期,数字的类型都是数值的, 所有需要对每一个进行区分,根据cell.getCellStyle().getDataFormat() 方法  可以得到excel 格子中的short类型的值 ,从断点中得知 yyyy/MM/dd 格式的值是 14 HH:mm:ss  格式的值是 21 y

Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框

在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI.这里我们用Apache POI!我们先去Apach

Java POI 导出EXCEL经典实现 Java导出Excel

转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下.(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^) 呵呵,首先我们来导出EXCEL格式的文件吧.现在主流的操作Excel文件的开源工具有

java poi操作excel 添加 锁定单元格保护

Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用.这样能够避免恶意随便修改数据,提高数据的可信度. 下面介绍JAVA POI来实现设置book保护: 使用HSSFSheet类的protectSheet(password)方法就可以了. 具体代码如下: package com.util; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.ap

Java POI 导出excel表

1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java public class Student { private int id; private String name; private int age; private Date birth; public Student() { } public Student(int id, String na

java poi导出excel response.setHeader设置导出文件名抓包不合法及处理导出文件名为action方法名

问题出现1: spring MVC 框架下使用poi导出excel,设置导出文件名:response.setHeader("Content-Disposition", "attachment;filename=" +sourceId+"_"+dateString+".xls"); 该方法进行抓包测试时,显示BUG url不合法. 解决办法:对 "attachment;filename=" +sourceId

Java poi导入excel(合并单元格的excel)(转)

poi导入excel代码示例 原文地址:https://mbd.baidu.com/newspage/data/landingshare?pageType=1&isBdboxFrom=1&context=%7B%22nid%22%3A%22news_9588929214493290157%22%2C%22sourceFrom%22%3A%22bjh%22%7D 原文地址:https://www.cnblogs.com/zbq6/p/12501683.html

java:POI导出excel

POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 <artifactId>poi</artifactId> 4 <version>3.11</version> 5 </dependency> 2.最基本