1 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是在將數(shù)字格式轉(zhuǎn)換為 aapache poi
時(shí)的錯(cuò)誤。正確的對(duì)應(yīng)是 a?。但是未能正確翻譯。DataFormatter
Excel
0" 0/10с"
java.text.Format
java.text.Format
new java.text.DecimalFormat("0' 0/10с'")
apache poi
DataFormatter
apache poi
您應(yīng)該就此提交錯(cuò)誤報(bào)告。但是在錯(cuò)誤報(bào)告中,你不應(yīng)該給出Excel
數(shù)字格式0" 0/10с"
作為示例,因?yàn)樗骼餇栕帜?code>с,因此可能導(dǎo)致對(duì) Unicode 問題的錯(cuò)誤假設(shè)。使用數(shù)字格式時(shí)會(huì)發(fā)生相同的問題(0
當(dāng)它們包含在引號(hào)中的文本部分時(shí)會(huì)丟失)?。Excel
0" 0abc0"
作為一種解決方法,可以告訴您如何翻譯DataFormatter
單個(gè)特殊數(shù)字格式。為此,請(qǐng)使用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();
?}
}
現(xiàn)在可以正確翻譯添加的特殊數(shù)字格式。當(dāng)然這并不是真正的最終解決方案。這就是提示將錯(cuò)誤報(bào)告提交給apache poi.
添加回答
舉報(bào)