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();
//得到第3行 小标从0开始,所以是2
Row row = sheet.getRow();
//得到第三行第4个单元格 4D 小标从0开始所以是三
Cell cell = row.getCell();
//查看该单元格是否定义,如果没有定义返回NULL
//,否则返回一个逻辑上的单元格,如果没有则创建
//??为什么需要先判断为空,因为如果该单元格已经
//存在而且已经定义,如果你在创建,原来的单元格
//将会被你重新创建的单元格覆盖,这样做可以节约
//你的空间,因为没有重新创建对象
if (cell == null)
cell = row.createCell();
//设置单元格的类型是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((*sheet.getDefaultRowHeightInPoints())); //调整该列宽度适应内容
// sheet.autoSizeColumn((short)2);
//重新写如文件
FileOutputStream fileOut = new FileOutputStream("D:/workbook1.xlsx");
wb.write(fileOut);
fileOut.close();
}finally{ }
} }
记录这个是因为就算用了这个方法也换不了,因为我从DB中抽出来的字符串带\n结果被转译成 “\\n”,这个问题怎么也换不了行,没办法,只能将抽出的 \n 换成别的标识符然后再去替换了。
java poi出excel换行问题的更多相关文章
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
- 在java poi导入Excel通用工具类示例详解
转: 在java poi导入Excel通用工具类示例详解 更新时间:2017年09月10日 14:21:36 作者:daochuwenziyao 我要评论 这篇文章主要给大家介绍了关于在j ...
- java POI创建Excel示例(xslx和xsl区别 )
Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...
- Java POI 导出EXCEL经典实现 Java导出Excel
转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...
- java poi操作excel 添加 锁定单元格保护
Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用.这样能够避免恶意随便修改数据,提高数据的可信度. 下面介绍JAVA POI来实现设置book保护: 使用HSSFSheet类 ...
- Java POI 导出excel表
1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java ...
- Java POI读取Excel数据,将数据写入到Excel表格
1.准备 首先需要导入poi相应的jar包,包括: 下载地址:http://pan.baidu.com/s/1bpoxdz5 所需要的包的所在位置包括: 2.读取Excel数据代码 package S ...
- 重构:以Java POI 导出EXCEL为例2
前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...
- JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签
个人说明:为了简单实现导出数据较少的EXCEL(根据自定义书签模板) 一.替换Excel表格标签方法```/** * 替换Excel模板文件内容 * @param map * 需要替换的标签建筑队形式 ...
随机推荐
- Code First 更新数据库结构
参考:http://blog.csdn.net/sxycxwb/article/details/12186159 0.删除之前的数据库 1.Run the Enable-Migrations comm ...
- JSF session的用法
http://blog.csdn.net/finelife/article/details/1608632 1.写入sessionObject sessionName = "name&quo ...
- [假期总结]Self
8月底返校,这一周也没有勤学苦练.假期3周的时间学习了nodejs. 1.nodejs的学习 学习了一本书上的例程,搭建了个博客.这种程度等于是能够动手开发的阶段,前路还很漫长. 2.个人网站的建设 ...
- openstack 在线repo
https://repos.fedorapeople.org/repos/openstack/openstack-kilo/
- 11个高级MySQL数据库面试问题和答案
因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...
- IsPostBack
1.IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开. 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者 ...
- Redis 配置文件 Redis.conf 参数说明
Redis 配置文件 Redis.conf 参数说明 参数名 参数说明 参数实例 daemonize 是否以后台守护进程运行,默认为 no, 取值 yes, no daemonize no ...
- HTML中标签和元素的区别
作为一个前端,相信大家最先接触应该都是HTML吧?在HTML中很多人可能都没有把什么叫标签,什么叫元素这个概念搞清楚,为了把这个大家不曾留意的易混淆的搞清楚,特作此一文彻底解决掉这个问题! 首先我们来 ...
- 【转】C++及java在内存分配上的区别
转自:http://blog.csdn.net/qinghezhen/article/details/9116053 C++内存分配由五个部分组成:栈.堆.全局代码区.常量区.程序代码区.如下图所示: ...
- C++文件读写(转载)
原网页地址:http://blog.csdn.net/kingstar158/article/details/6859379 下文全部转载自以上网页,感谢原作者的贡献. 在看C++编程思想中,每个练习 ...