[英]How to read embedded XLS file from URL
我必须从URL读取一个excel文件并获取其数据。 文件的名称是companies.xls,但是当我用记事本打开此文件时,我发现它的文件类似于xls嵌入到HTML中。 Microsoft Excel可以毫无问题地打开该文件,并且我可以使用xls扩展名保存该文件,但是我必须以编程方式进行操作,或者必须找到其他任何方式来读取此文件。 如何读取此文件的数据? 由于不是纯xslt,Apache poi文件系统给出以下错误;
java.io.IOException: Invalid header signature; read 0x6D78206C6D74683C, expected 0xE11AB1A1E011CFD0
这是我的代码;
URL companyList= new URL("someURL.xslt");
InputStream inputStream = companyList.openStream();
POIFSFileSystem fs = new POIFSFileSystem(inputStream);
xls文件或html;
<head>
<meta http-equiv=Content-Type content="text/html; charset=Windows-1254">
<meta name=sssId content=Excel.Sheet>
<style type="text/css">
body,table,tr,th,td {font-family:Arial;font-size:11pt;color:#000;}
.th {padding:3em;background:#3366FF;text-align:center;color:#ffffff;}
.td {padding:2em;background:#ffffff;}
</style>
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Companies</x:Name>
<x:WorksheetOptions>
<x:DefaultRowHeight>285</x:DefaultRowHeight>
<x:FreezePanes/>
<x:FrozenNoSplit/>
<x:SplitHorizontal>1</x:SplitHorizontal>
<x:TopRowBottomPane>1</x:TopRowBottomPane>
<x:ActivePane>2</x:ActivePane>
<x:Panes>
<x:Pane>
<x:Number>3</x:Number>
</x:Pane>
<x:Pane>
<x:Number>2</x:Number>
</x:Pane>
</x:Panes>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>
<table width="100%" border="1">
<tr><th width="85%" class="th">Company Nameı</th><th width="15%" class="th">City</th></tr>
<tr><td width="100%" class="td">Microsoft</td><td width="100" align="center" class="td" nowrap>sValley</td> </tr>
<tr><td width="100%" class="td">Google</td><td width="100" align="center" class="td" nowrap>london</td></tr>
....
我遇到过同样的问题。 此问题的解决方法是将该xls文件中的charset=Windows-1254
更改为charset=utf-8
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.