寻找个 用java poi 将xls转换成xlsx原有xls样式丢失问题的解决办法

问题描述

寻找个 用java poi 将xls转换成xlsx原有xls样式丢失问题的解决办法

最近在用java poi将原有财务部门的xls文件批量转换成xlsx格式,但是很不幸,xls原有的样式(比如:字体大小,字体颜色,背景)全部丢失了。
试着将原有xls里的style读出来设置给新的xlsx,但是遇到错误。
Code:
xlsxCell.setCellStyle(xlsCell.getCellStyle());

Error:
java.lang.ClassCastException: org.apache.poi.hssf.usermodel.HSSFCellStyle cannot be cast to org.apache.poi.xssf.usermodel.XSSFCellStyle
at org.apache.poi.xssf.usermodel.XSSFCell.setCellStyle(XSSFCell.java:508)

解决方案

设置样式的时候 需要先new XSSFCellStyle 再复制copy属性 再添加 不能直接把HSSFCellStyle 转成XSSFCellStyle

解决方案二:

谢谢你的提示,试了下还是不行,难道需要针对每个style属性要一个一个的拿出来设进去吗?

Code

CellStyle hssfCellStyle = hssfCell.getCellStyle();
CellStyle xssfCellStyle = new XSSFCellStyle(new StylesTable());
xssfCellStyle.cloneStyleFrom(hssfCellStyle);

xssfCell.setCellStyle(xssfCellStyle);

Error

java.lang.IllegalArgumentException: Can only clone from one XSSFCellStyle to another, not between HSSFCellStyle and XSSFCellStyle
at org.apache.poi.xssf.usermodel.XSSFCellStyle.cloneStyleFrom(XSSFCellStyle.java:186)

解决方案三:

谢谢你的提示,试了下还是不行,难道需要针对每个style属性要一个一个的拿出来设进去吗?

Code
CellStyle hssfCellStyle = hssfCell.getCellStyle();
CellStyle xssfCellStyle = new XSSFCellStyle(new StylesTable());
xssfCellStyle.cloneStyleFrom(hssfCellStyle);
xssfCell.setCellStyle(xssfCellStyle);

Error
java.lang.IllegalArgumentException: Can only clone from one XSSFCellStyle to another, not between HSSFCellStyle and XSSFCellStyle
at org.apache.poi.xssf.usermodel.XSSFCellStyle.cloneStyleFrom(XSSFCellStyle.java:186)

时间: 2024-09-16 06:57:49

寻找个 用java poi 将xls转换成xlsx原有xls样式丢失问题的解决办法的相关文章

java poi导出excel,用excel 2013打开样式不能正常显示

问题描述 java poi导出excel,用excel 2013打开样式不能正常显示 我用的是poi3.02.用2010打开没问题,用2013打开只是合并单元格的地方,边框样式不能显示. 解决方案 java poi生成excel并修改excel样式POI 导出EXCEL样式实例POI Excel导出样式设置 解决方案二: poi设置的用07版的应该就可以 解决方案三: poi 针对03和07不同的版本会给出不同的类去处理的 你看看你的代码是 用 03还是 07 生成的 excel

java 将excel文件转换成pdf文件

  最近做一个项目,需要把excel文件转换成pdf文件,经过我查资料,无非使用两种方式:1 POI+Itext 2 Jacob来调用excel另存功能. 第一种方式,原理是使用POI来读取excel的内容,将其写到pdf文件中.实现难度有点大,主要是因为excel sheet结构不固定,内容也不固定,可能存在图片等,导致读excel比较复杂,真正实现还是比较复杂的. 第二种方式,原来是使用jacob来调用excel文件的另存为pdf的功能.主要是熟悉jacob的API即可.不需要精巧的编程技巧

使用Java将中文字符转换成Unicode编码

  这两天操作XML使用到了Jdom,在创建XML文件并输出到硬盘的时候遇到一个中文编码的问题:Jdom默认输出的XML编码是UTF-8,但是文档中如果出现中文字符那么该中文字符就会变成乱码,造成XML文件无法被正确解析. UTF-8应该是可以用来表示中文的吧?我不知道这是不是Jdom的一个BUG(Jdom 1.0,beta了10次的产物哦!).我google了一下,大家解决这个问题的办法无非是把Jdom的输出字符集改为GBK或者GB2312,但是这样就会有一些副作用,如果在没有特定字符集(GB

java实现将数字转换成人民币大写_java

Rmb.java public class Rmb { /** *人民币的基本信息和操作 *@author weinee *@version 1.0 */ double number; //人民币的数量 private String[] hanArr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "

java递归菜单树转换成pojo对象_java

复制代码 代码如下:   package com.cjonline.foundation.authority.pojo;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import org.apache.log4j.Logger;import com.cjonline.foundation.util.CheckNullEmpty;/** 

使用poi将word2007转换成html问题.

问题描述 转成的html文件中,为什么解析的表格没有边框呢?只有表格cell中的数据(原word文档中的表格式有边框的)....怎样才能转成html的时候,表格带有边框. 解决方案 解决方案二:既然是转成html,没有边框,直接加样式就可以了啊解决方案三:亲,我找了很多,也没有满意的.word2003转HTMLword2007转HTML转完之后,获取HTML的字符串,传给别的方法用.现在用的2003没有问题,想扩展下2007,亲,你有好方法没,分享下.如果可以,我一定要感激你一辈子..

excel-java如何将html内容转换成xls或是xlsx文件?

问题描述 java如何将html内容转换成xls或是xlsx文件? java如何将html内容转换成xls或是xlsx文件. 目前html中分为左右两边内容,左边是各种链接,右边是一个list列表,我需要将list列表导出到excel中去.希望高手给予帮助,提供代码,不胜感激 解决方案 你的html里面的list是写死的?还是动态的?如果是动态的从数据库里面取的的话,你可以在取数据的时候直接转换,如果是写死的话,你直接写死在生成时候的 代码里面就可以了. 推荐使用poi,参考:http://zc

java怎么把转换成字符串转换成中国人习惯看的时间。

问题描述 java怎么把转换成字符串转换成中国人习惯看的时间. 如下代码 public class Test{ public static void main(String[] args) throws Exception { String str="2015/4/13"; Date d=new SimpleDateFormat("yyyy/MM/dd").parse(str); System.out.println(d);} } 打印出来的结果是 Mon Apr

java OpenOffice将上传的Word文档转换成Html格式

为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl+V.看起来也不麻烦,但是,如果文档中包含大量图片呢?尴尬的事是图片都需要重新上传吧? 如果可以将已经编写好的word文档上传到服务器就可以在相应页面进行展示,将会是一件非常惬意的事情,最起码信息发布人员会很开心.程序员可能就不会这么想了,?濉?/p> 将Word转Html的原理是这样的: 1.客户