質問

私はNPOIライブラリを使用してExcelでダブル、数セルの書式を作成しようとしています。私のようなコードを使用します。

Dim cell As HSSFCell = row.CreateCell(j)
cell.SetCellValue(Double.Parse(dr(col).ToString))

でExcelの数字は右揃えているが、私はフォーマットをチェックするときには、

「一般」に表示されます

altテキスト

そして、私は以下のように私のコードを変更します。

 Dim cell As HSSFCell = row.CreateCell(j)
 cell.SetCellValue(Double.Parse(dr(col).ToString))
 Dim cellStyle As HSSFCellStyle = hssfworkbook.CreateCellStyle
 cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("#,#0.0")
 cell.CellStyle = cellStyle

次に開くファイル中にエラーを与えているとも開くのにとても時間がかかり。しかし、「数」で示すExcel形式

エラー示すが、以下のようである。

altテキスト

この問題を解決するには?

役に立ちましたか?

解決

でこのに見てください、あなたは、各セルのcellStyleオブジェクトを作成していますか?もしそうなりません。あなたの細胞を作成する前に、スタイルだけのカップルを作成してみてください、その後、作成した細胞にこれらの事前定義されたスタイルを適用します。

他のヒント

ウサギは、Excel文書内の二重形式のを使用してNPOI の。

を作成する簡単な方法です
//make NUMERIC Format in Excel Document // Author: Akavrelishvili
  var eRow = sheet.CreateRow(rowIndex); //create new Row , rowIndex - it's integer, like : 1,2,3
  eRow.CreateCell(0).SetCellValue(row["ProvidName"].ToString()); //create cell and set string value

  double Amount = Convert.ToDouble(row["Amount"].ToString()); //convert string to double
  eRow.CreateCell(1).SetCellValue(Amount); // create cell and set double value.

この作業をされているバージョンが、私はそれをプロジェクトの多くを使用しています。

は非常に難しいが、インターネットには良い例では、ExcelでのDateTime形式を挿入することがありませんし、私はそれは、人々がそれを正しい方法を行うのに役立ちますだと思います。 私はあなたのコード例を示します:

     //make Date Time Format in Excel Document // Author: Akavrelishvili

VAR eRowパラメーター= sheet.CreateRow(rowIndexプロパティ)。 //新しい行// rowIndexプロパティを作成する - それは整数だ、のように:1,2,3

 ICellStyle cellDateStyle = workBook.CreateCellStyle(); //create custom style
 cellDateStyle.DataFormat = workBook.CreateDataFormat().GetFormat("dd/mm/yyyy"); //set day time Format

 eRow.CreateCell(3).SetCellValue(Convert.ToDateTime(row["Date"])); //set DateTime value to cell
                    eRow.GetCell(6).CellStyle = cellDateStyle; // Restyle cell using "cellDateStyle"


I hope it helps

あまりにも多くの異なるセルスタイルを修正するために外にあなたが実行している可能性のあるループのすべてのスタイルを宣言します。

私は私はあなたのための修正形式で、あなたが持っていたものドロップしますので列挙子のようになります「J」をpresumeingています。

Dim cellStyle As HSSFCellStyle = hssfworkbook.CreateCellStyle
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("#,#0.0")

For col = 0 To ColoumCounter
  For j = 0 To Counter
    Dim cell As HSSFCell = row.CreateCell(j)
    cell.SetCellValue(Double.Parse(dr(col).ToString))
    cell.CellStyle = cellStyle
  Next
Next

この「新しい」スタイルの数を制限することによって、少し良く動作するはずます。

、スタイルを作成しますが、列

のために、このスタイル
 ICellStyle _TextCellStyle = wb1.CreateCellStyle();

 _TextCellStyle.DataFormat = wb1.CreateDataFormat().GetFormat("@");
 sheet.SetDefaultColumnStyle(2, _TextCellStyle);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top