1 回答
TA貢獻1834條經驗 獲得超8個贊
這是在將數字格式轉換為 aapache poi時的錯誤。正確的對應是 a?。但是未能正確翻譯。DataFormatterExcel0" 0/10с"java.text.Formatjava.text.Formatnew java.text.DecimalFormat("0' 0/10с'")apache poiDataFormatter
apache poi您應該就此提交錯誤報告。但是在錯誤報告中,你不應該給出Excel數字格式0" 0/10с"作為示例,因為它包含西里爾字母с,因此可能導致對 Unicode 問題的錯誤假設。使用數字格式時會發生相同的問題(0當它們包含在引號中的文本部分時會丟失)?。Excel0" 0abc0"
作為一種解決方法,可以告訴您如何翻譯DataFormatter單個特殊數字格式。為此,請使用DataFormatter.addFormatExcel方法。
例子:
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
class DataFormatterAddFormat {
?public static void main(String[] args) throws Exception {
? Workbook workbook = WorkbookFactory.create(new FileInputStream("ExcelExample.xlsx"));
? DataFormatter dataFormatter = new DataFormatter();
? FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
? dataFormatter.addFormat("0\" 0/10\u0441\"", new java.text.DecimalFormat("0' 0/10\u0441'"));
? dataFormatter.addFormat("0\" 0/10c\"", new java.text.DecimalFormat("0' 0/10c'"));
? dataFormatter.addFormat("0\" 0abc0\"", new java.text.DecimalFormat("0' 0abc0'"));
? Sheet sheet = workbook.getSheetAt(0);
? for (Row row : sheet) {
? ?for (Cell cell : row) {
? ? ?String value = dataFormatter.formatCellValue(cell, formulaEvaluator);
? ? ?System.out.println(value);
? ?}
? }
? workbook.close();
?}
}
現在可以正確翻譯添加的特殊數字格式。當然這并不是真正的最終解決方案。這就是提示將錯誤報告提交給apache poi.
添加回答
舉報
