2017-08-08 148 views
0

ExcelのセルをNPOI/POIでformatted by Excelのように書式設定できるかどうかについて質問しています(this oneなど)。皆さんのほとんどは、通貨と日時に関する問題に取り組まなければなりません。ここでは、Excelで書式設定されたように書式を設定する方法について質問します。 (それを行う方法を実証するように私はこの質問を自分自身にお答えします。)NPOI:Excelで書式設定された通貨形式を実現

設定:Windowsの10、英語、地域:台湾 Excel形式:様々な編集についてXLSX(バージョン2007以降)

が(申し訳ありませんが。Excel Currency Format

各スタイルの内部フォーマットは以下の通りである:私は予期しない時「と入力」ボタンを押していると、この質問)

答えて

2

あなたが通貨としてセルの書式を設定した場合、あなたは4つの選択肢があり

  1. -NT $ 1,234.10
    < numFmt formatCode = "" NT $ "#、## 0.00" numFmtId = "164" />

  2. [RED] NT $ 1,234.10
    < numFmt formatCode = "" NT $ "#、## 0.00; [赤]" NT $ "#、## 0.00" numFmtId = "164" />

  3. -NT $ 1,234.10
    < numFmt formatCode = "" NT $ "#、 ## 0.00));( "NT $"#、## 0.00) "numFmtId =" "/>

  4. [RED] -NT $ 1,234.10
    < numFmt formatCode = "" NT $ "#、## 0.00 _); [赤](" NT $ "#、## 0.00)" numFmtId =」 "/>

注:NT $の前後には二重引用符(")があります。

(。解凍ディレクトリ> \ XL \のstyles.xmlスタイル情報が<で利用可能であるだけで、それを解凍し、XLSXの内部フォーマットを取得するには、あなたがより多くの情報が必要な場合は、このanswerをチェックしてください。)

を(FYI: formatCodeでは、 '0'は数字を表し、 '#'は数字も表しますが、数字が大きければ表示されません。1000未満の数字はカンマを含まず、 '_形式3では '1.75'が 'NT $ 1.75'と表示され、最後はスペースです。)

(参考:ケース1とケース2の場合、164はfoですユーザー定義。ケース3と4の場合、番号7および8はbuild-in styleです。)

POI/NPOIを使用する開発者のために、あなたはを0x7または0x8のを使用してBuild In Formatを使用して、通貨の列をフォーマットする場合は、あなたが唯一の第三または第四を得ることができます見つけることが選択。最初の選択肢と2番目の選択肢を得ることはできません。

最初の選択肢を得るには、スタイル0x7 "$#,##0.00);($#,##0.00)"を作成します。通貨記号とその前に二重引用符のペア「」を追加する必要があります。

styleCurrency.DataFormat = workbook.CreateDataFormat().GetFormat("\"NT$\"#,##0.00"); 

数値を含むセルにこのフォーマットを適用します。 Excelの結果ファイルを開いたら、右クリックして書式をチェックすると、最初の選択肢が表示されます。

この記事にコメントすること自由に感じてください。