[英]How to read an excel(.xls) file like text?
我需要阅读我正在接收的excel(.xls)文件。 使用常规字符集(如UTF-8,Cp1252,ISO-8859-1,UTF-16LE)时,这些字符都对我没有帮助,但这些字符仍然格式错误。
因此,我最终使用了juniversalchardet进行搜索,结果显示该字符集是MacCyrillic,使用MacCyrillic读取了文件,但结果仍然很奇怪。
当我在excel上打开文件时,一切都很好,所有字符都很好,因为它的葡萄牙语中充满了白色〜等等。 但是打开白纸记事本或低谷java文件都被弄乱了。 但是,如果在我的excel上打开文件,然后再次将其保存为.txt文件,则它变得可读
我找到字符集的方法
public static void lerCharset(String fileName) throws IOException {
byte[] buf = new byte[50000000];
FileInputStream fis = new FileInputStream(fileName);
// (1)
UniversalDetector detector = new UniversalDetector(null);
// (2)
int nread;
while ((nread = fis.read(buf)) > 0 && !detector.isDone()) {
detector.handleData(buf, 0, nread);
}
// (3)
detector.dataEnd();
// (4)
String encoding = detector.getDetectedCharset();
if (encoding != null) {
System.out.println("Detected encoding = " + encoding);
} else {
System.out.println("No encoding detected.");
}
// (5)
detector.reset();
fis.close();
}
如何找到正确的字符集? 我应该尝试其他方法吗? 像让我的Java重新保存Excel,然后开始阅读?
如果我了解您的问题,则您正在尝试读取Excel文件,例如文本文件。
挑战在于.xls文件实际上是包含文本,格式,工作表信息,宏信息等的二进制文件。
您可能需要将文件另存为.csv(在运行程序之前通过Excel或直接通过程序),将其升级到.xlsx(当时有许多库可以将文件读取为XML)或使用一个库(例如apache POI 或类似的东西 ),甚至使用ADO查询数据。
祝你好运,我希望这就是你通过问题暗示的意思。
WorkbookSettings workbookSettings = new WorkbookSettings();
WorkbookSettings.setEncoding("Cp1252");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.