Tôi đã sử dụng POI để phân tích thành công các tệp XLS và XLSX thành công. Tuy nhiên, tôi không thể trích xuất chính xác các ký tự đặc biệt, chẳng hạn như các ký tự được mã hóa UTF-8 như tiếng Trung hoặc tiếng Nhật, từ bảng tính Excel. Tôi đã tìm ra cách trích xuất dữ liệu từ tệp csv hoặc tab được phân tách bằng UTF-8, nhưng không may mắn với tệp Excel. Có ai giúp được không?Cách phân tích cú pháp các ký tự UTF-8 trong các tệp Excel bằng POI
(Edit: đoạn Mã từ bình luận)
HSSFSheet sheet = workbook.getSheet(worksheet);
HSSFEvaluationWorkbook ewb = HSSFEvaluationWorkbook.create(workbook);
while (rowCtr <= lastRow && !rowBreakOut)
{
Row row = sheet.getRow(rowCtr);//rows.next();
for (int col=firstCell; col<lastCell && !breakOut; col++) {
Cell cell;
cell = row.getCell(col,Row.RETURN_BLANK_AS_NULL);
if (ctype == Cell.CELL_TYPE_STRING) {
sValue = cell.getStringCellValue();
log.warn("String value = "+sValue);
String encoded = URLEncoder.encode(sValue, "UTF-8");
log.warn("URL-encoded with UTF-8: " + encoded);
....
Bạn có thể trỏ đến các phần của API POI mà bạn đang sử dụng hoặc hiển thị cho chúng tôi một số mã không? Điều đó sẽ giúp chúng tôi đề xuất các thay đổi API và chẩn đoán có thể giúp gỡ lỗi. –
Excel không lưu trữ các ký tự dưới dạng UTF-8, vì vậy tôi nghĩ bạn có thể bị nhầm lẫn ở đâu đó ... – Gagravarr
Ảnh chụp màn hình của tệp Excel: – user1198370