繁体   English   中英

Java中的非法字符错误

[英]illegal character error in java

我正在尝试使用Java读取Excel文件。 在编译程序时,我收到错误作为非法字符。 帮助我解决此问题。 这是代码

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

谁能帮我解决这个问题。

我很确定这是BOM( 字节顺序标记 )。 确保使用正确的编码。 也许在其他编辑器中打开文件,然后重新保存它以删除BOM。 例如,Nodepad ++可以为您提供帮助。

祝你好运,马克斯

您正在使用什么程序来编辑源代码? 似乎正在插入javac不喜欢的BOM 应该可以在编辑器的设置中禁用BOM。

看来您有BOM表问题。 在十六进制编辑器中打开文件,并删除看起来很奇怪且位于第一行导入行之前的前几个字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM