亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DataFormatter (org.apache.poi) 刪除我的零

DataFormatter (org.apache.poi) 刪除我的零

慕娘9325324 2023-04-13 15:41:50
當我嘗試獲取具有格式的單元格的值時 - 我得到的結果沒有零。單元格值:7654單元格格式值:0" 0/10с"單元格顯示值:7654 0/10сDataFormatter formatter = new DataFormatter();String orderNumber = formatter.formatCellValue(cell);System.out.println(orderNumber);結果:7654 /1с屏幕截圖:單元格格式值
查看完整描述

1 回答

?
MMMHUHU

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.


查看完整回答
反對 回復 2023-04-13
  • 1 回答
  • 0 關注
  • 314 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號