2012-01-30 43 views
1

javaを使用してExcelファイルを読み込もうとしています。プログラムのコンパイル中に違法な文字としてエラーが発生しています。この問題を解決するのに役立ちます。誰もがこの問題を解決するために私を助けることができるプログラムをコンパイルしながら、ここにコードJavaで不正な文字エラーが発生しました

import java.io.IOException; 
import java.io.*; 
import java.util.Iterator; 
import org.apache.poi.poifs.filesystem.POIFSFileSystem; 
import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.hssf.usermodel.HSSFRow; 



public class Readingexcel { 

public static void main(String[] args) { 
    try { 
     System.out.println("before reading"); 
     POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("input.xlsx")); 
     HSSFWorkbook wb = new HSSFWorkbook(fs); 
     HSSFSheet sheet = wb.getSheet("first"); 

     HSSFRow row; 
     HSSFCell cell; 
     String s; 

     int rows; // No of rows 
     rows = sheet.getPhysicalNumberOfRows(); 
     System.out.println(rows); 
     System.out.println(sheet.getRow(1).getPhysicalNumberOfCells()); 
     int cols = 0; // No of columns 
     int tmp = 0; 

// This trick ensures that we get the data properly even if it doesn’t start from first few rows 
     for (int i = 0; i < 10 || i < rows; i++) { 
      row = sheet.getRow(i); 

      if (row != null) { 
       tmp = sheet.getRow(i).getPhysicalNumberOfCells(); 


       if (tmp > cols) { 
        cols = tmp; 

       } 
      } 
     } 

     for (int r = 0; r < rows; r++) { 
      row = sheet.getRow(r); 
      if (row != null) { 
       for (int c = 0; c < cols; c++) { 
        cell = row.getCell((short) c); 
        if (cell != null) { 
// Your code here 
// s = cell.getData(); 
         System.out.println(cell.getStringCellValue()); 


        } 
       } 
      } 
     } 
    } catch (Exception ioe) { 
     ioe.printStackTrace(); 
    } 

} 
} 

がある

Microsoft Windows XP [Version 5.1.2600] 
(C) Copyright 1985-2001 Microsoft Corp. 
C:\Documents and Settings\vino>cd C:\Program Files\jdk1.6.0_10\bin 

C:\Program Files\jdk1.6.0_10\bin>javac Readingexcel.java 
Readingexcel.java:1: illegal character: \187 
import java.io.IOException; 
^ 
Readingexcel.java:1: illegal character: \191 
import java.io.IOException; 
^ 
2 errors 

のようなエラーを取得しています。

+0

ファイルの先頭にはいくつかの目に見えない文字があります。問題を解決することができない場合は、ソースを新しいファイルにコピーして古いファイルを削除するだけです。 – kba

+0

あなたはinput.xlsxを投稿できます – L7ColWinters

+0

あなたのソースに '∩╗┐'があるようです...メモ帳で.javaファイルを開くとどうなりますか? – beny23

答えて

5

これはBOM(Byte Order Marks)です。正しいエンコードを使用していることを確認してください。ファイルを別のエディタで開き、BOMを削除するためにファイルを再保存してください。例えば、Nodepad ++はあなたを助けます。あなたはBOMの問題を持っているよう

幸運、 マックス

+0

ありがとうマックス..それは働いた – darsha

4

ソースコードの編集にはどのようなプログラムを使用していますか? javacが嫌うBOMが挿入されているようです。エディタの設定でBOMを無効にすることができます。

1

が見えます。 16進エディタでファイルを開き、最初のインポート行の前に来て、奇妙に見える最初のバイトを削除します。

関連する問題