java怎么把xls格式的文件另存为xlsx文件,不能直接改后缀名?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么把xls格式的文件另存为xlsx文件,不能直接改后缀名?相关的知识,希望对你有一定的参考价值。

用的什么框架,具体代码怎么实现的

一般操作Excel有专业的工具库来实现,操作时,会考虑同时兼容不同版本的excel,你这里将xls转为xlsx,就是版本之间转换,可以参考以下代码的转换方法,方法还是比较简单,直接将文件另存为就可以了:
import com.spire.xls.*;
public class ExcelConversion
public static void main(String[] args)
Workbook wb = new Workbook();
wb.loadFromFile("test.xls");
wb.saveToFile("toXLSX.xlsx");


这里代码编译环境为IntelliJ IDEA,jdk是1.8.0版本,使用Excel库free spire.xls.jar 3.9.1。
参考技术A 那就需要一个同时兼容老版本的xls和新版本的xlsx的库 这样的库可能不太多啊 但应该是可以搜到的追问

不太懂这个库,上传的xls文件用MultipartFile接收,怎么把这个文件保存成xlsx格式的,能用poi吗

追答

这个库可以读写两种文件格式

这个代码是我网上搜到的你自己调试

*
* @author jcalfee
*/public class xls2xlsx

/**
* @param args
* @throws InvalidFormatException
* @throws IOException
*/
public static void main(String[] args) throws InvalidFormatException,
IOException

String inpFn = args[0];
String outFn = args[1];

InputStream in = new BufferedInputStream(new FileInputStream(inpFn));
try
Workbook wbIn = new HSSFWorkbook(in);
File outF = new File(outFn);
if (outF.exists())
outF.delete();

Workbook wbOut = new XSSFWorkbook();
int sheetCnt = wbIn.getNumberOfSheets();
for (int i = 0; i rowIt = sIn.rowIterator();
while (rowIt.hasNext())
Row rowIn = rowIt.next();
Row rowOut = sOut.createRow(rowIn.getRowNum());

Iterator cellIt = rowIn.cellIterator();
while (cellIt.hasNext())
Cell cellIn = cellIt.next();
Cell cellOut = rowOut.createCell(
cellIn.getColumnIndex(), cellIn.getCellType());

switch (cellIn.getCellType())
case Cell.CELL_TYPE_BLANK:
break;
。。。多种类型的case

CellStyle styleIn = cellIn.getCellStyle();
CellStyle styleOut = cellOut.getCellStyle();
styleOut.setDataFormat(styleIn.getDataFormat());

cellOut.setCellComment(cellIn.getCellComment());

// HSSFCellStyle cannot be cast to XSSFCellStyle
// cellOut.setCellStyle(cellIn.getCellStyle());



OutputStream out = new BufferedOutputStream(new FileOutputStream(
outF));
try
wbOut.write(out);
finally
out.close();

finally
in.close();

追问

这个for循环代码不完整,有完整的代码吗

追答

完整的贴不下 网上很多你可以自己搜
也可以帮写私信

本回答被提问者和网友采纳

如何将Word文档或xls格式的表格转化成PDF格式?

参考技术A

office 2007版以上都支持直接转换,office2017需要下载一个下载项安装即可。

1、打开微软中国官方网站,在网页最下面点击下载中心。

2、跳转到下载的页面,在其中的微软软件中选择Office。

3、然后在新网页中选择点击“2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS”。

4、接着新页面中点击下载。

5、下载完成后,双击打开下载好的安装文件“SaveAsPDFandXPS.exe”,一路点击下一步进行安装。

6、打开一个EXCEL,点击另存为,在下方格式中选择PDF,然后点保存。

保存好后,就可以看到刚才的EXCEL已经被完美转换成PDF了。

以上是关于java怎么把xls格式的文件另存为xlsx文件,不能直接改后缀名?的主要内容,如果未能解决你的问题,请参考以下文章

怎么讲csv格式转换为xlsx

打开 Excel 文件并另存为 .XLS

如何将Word文档或xls格式的表格转化成PDF格式?

excel表格xlsx格式文件打开后自动变成xlsm文件怎么回事?

如何批量将CSV格式的文件转化成excel格式

xlsx表格怎么制作?