用java代码如何实现另存为(非正规excel转换为正规excel),然后用poi读取里面内容

Ray_2Amo 2017-11-13 11:41:38
【网上说使用 VBS 】
我的excel文件是用报表工具下载的(下图所示),本来想实现解析转码为正规excel,用poi读取,但是只能获取文本 不能读取到其中样式,现在转换思路,直接用java代码实现后台”另存为“为正规excel,求大神指点迷津!!!
...全文
850 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36492588 2021-03-31
  • 打赏
  • 举报
回复
这个可以通过文件转换的方法来实现,下面用spire.xls.jar 版本:4.3.4测试的文件转换效果,功能可以实现

import com.spire.xls.*;

public class xmltoexcel { 
    public static void main(String[] args) {
        Workbook wb = new Workbook();
        wb.loadFromXml("test.xml");//加载xml
        wb.saveToFile("xmltoExcel.xlsx",FileFormat.Version2013);//转为2013版xlsx格式的Excel
        wb.saveToFile("xmltoExcel.xls",FileFormat.Version97to2003);//转为03版xls格式的Excel
    }
}

xml文件如下: 转出来的效果:
起床搬砖 2021-03-30
  • 打赏
  • 举报
回复
引用 9 楼 qq_39450243 的回复:
老哥,这个问题现在解决了吗。我百度了很多方案,但是还是无法解决这个问题。 求解惑。 管理员别删行吗?
解决了吗?
qq_39450243 2019-08-14
  • 打赏
  • 举报
回复
引用 10 楼 BlankING丶 的回复:
[quote=引用 9 楼 qq_39450243 的回复:]
老哥,这个问题现在解决了吗。我百度了很多方案,但是还是无法解决这个问题。
求解惑。
管理员别删行吗?

我也在研究这个问题,老哥你解决了吗[/quote]
我目前解决了。因为他就是个xml格式打开的。
我目前的方案是用SAXReader读取,然后VisitorSupport 去拿到我所需要的节点值。
BlankING丶 2019-08-13
  • 打赏
  • 举报
回复
引用 9 楼 qq_39450243 的回复:
老哥,这个问题现在解决了吗。我百度了很多方案,但是还是无法解决这个问题。 求解惑。 管理员别删行吗?
我也在研究这个问题,老哥你解决了吗
qq_39450243 2019-08-01
  • 打赏
  • 举报
回复
老哥,这个问题现在解决了吗。我百度了很多方案,但是还是无法解决这个问题。
求解惑。
管理员别删行吗?
qq_39450243 2019-08-01
  • 打赏
  • 举报
回复
还不知道怎么解决。
Ray_2Amo 2017-11-13
  • 打赏
  • 举报
回复
用报表工具生成的excel 编译器打开里面是xml格式 如上图所示 想变为正规excel格式
Ray_2Amo 2017-11-13
  • 打赏
  • 举报
回复
xml格式的excel文件,类似于上面这串代码
Ray_2Amo 2017-11-13
  • 打赏
  • 举报
回复


<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Created>2009-12-18T14:44:09Z</Created>
  <Version>12.00</Version>
 </DocumentProperties>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>10005</WindowHeight>
  <WindowWidth>10005</WindowWidth>
  <WindowTopX>120</WindowTopX>
  <WindowTopY>135</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Center"/>
   <Font ss:FontName="Verdana" x:Family="Swiss"/>
  </Style>
  <Style ss:ID="s62">
   <Font ss:FontName="Verdana" x:Family="Swiss"/>
  </Style>
  <Style ss:ID="s63">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
   <Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>
  </Style>
 </Styles>
 <Worksheet ss:Name="Average">
  <Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="2" x:FullColumns="1"
   x:FullRows="1" ss:StyleID="s62" ss:DefaultColumnWidth="54">
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="140.25"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="99.75" ss:Span="3"/>
   <Row>
    <Cell ss:StyleID="s63"><Data ss:Type="String">col1</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">col2</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">col3</Data></Cell>
    <Cell ss:StyleID="s63"><Data ss:Type="String">col4</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="Number">1</Data></Cell>
    <Cell><Data ss:Type="Number">2</Data></Cell>
    <Cell><Data ss:Type="Number">3</Data></Cell>
    <Cell><Data ss:Type="Number">4</Data></Cell>
   </Row>
  </Table>
 </Worksheet>
</Workbook>

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧