0

以下のようなXML形式のJavaでExcelファイルを読み取るにはどうすればよいですか?

私がしようとしているなら

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]

エクセルファイル:

<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>

助けてくれてありがとう。ミク

4

1 に答える 1

1

XSSF は、コンポーネントを含む実際の ZIP ファイルを想定しています。このエラーは、OPC 形式がファイルを必要とするという事実に関連しています[Content_Types].xml

1 つの解決策は、既存の XLSX ファイルを取得して解凍し、ファイルxl/worksheets/sheet1.xmlを置き換えてから再圧縮することです。

于 2013-10-27T00:13:37.940 に答える