2013-10-25 4 views
0

Как читать файл Excel в Java в формате XML, как показано ниже?Как читать файл Excel на Java?

Если я пытаюсь

HSSFWorkbook wb = new HSSFWorkbook(ExcelFileToRead); 

я получаю:

Exception in thread "main" java.io.IOException: Invalid header signature; read 0x726576206C6D783C, expected 0xE11AB1A1E011CFD0 

Если я пытаюсь

XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead); 

я получаю:

Exception in thread "main" org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] 

Excel файл:

<xml version> 
<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"> 
<Styles> 
<Style ss:ID="Default" ss:Name="Normal"> 
<Alignment ss:Vertical="Bottom"/> 
<Borders/> 
<Font/> 
<Interior/> 
<NumberFormat/> 
<Protection/> 
</Style> 
<Style ss:ID="BoldColumn"> 
<Font x:Family="Swiss" ss:Bold="1"/> 
</Style> 
<Style  ss:ID="StringLiteral"> 
<NumberFormat ss:Format="@"/> 
</Style> 
<Style ss:ID="Decimal"> 
<NumberFormat ss:Format="0.0000"/> 
</Style> 
<Style ss:ID="Integer"> 
<NumberFormat ss:Format="0"/> 
</Style> 
<Style ss:ID="DateLiteral"> 
<NumberFormat ss:Format="mm/dd/yyyy;@"/> 
</Style> 

Большое спасибо за любую помощь. Mik

+0

Недопустимое исключение заголовка обычно является признаком поврежденного файла или что файл не является файлом Excel. –

+0

Рассмотрите возможность использования [JExcelApi] (http://jexcelapi.sourceforge.net/), вы можете найти учебник [здесь] (http://www.andykhan.com/jexcelapi/tutorial.html). – yarl

+0

Кроме того, дубликат http://stackoverflow.com/questions/1516144/how-to-read-and-write-excel-file-in-java – yarl

ответ

0

XSSF ожидает фактический ZIP-файл с компонентами. Ошибка связана с тем, что для формата OPC требуется файл [Content_Types].xml.

Одним из решений является получение существующего файла XLSX, разархивирование его, замена файла xl/worksheets/sheet1.xml, а затем повторная печать.

Смежные вопросы