NPOI Excelの番号の形式はasp.netにExcelシートに表示されません
質問
私はNPOIライブラリを使用してExcelでダブル、数セルの書式を作成しようとしています。私のようなコードを使用します。
Dim cell As HSSFCell = row.CreateCell(j)
cell.SetCellValue(Double.Parse(dr(col).ToString))
でExcelの数字は右揃えているが、私はフォーマットをチェックするときには、
「一般」に表示されます
そして、私は以下のように私のコードを変更します。
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形式
エラー示すが、以下のようである。
この問題を解決するには?
解決
でこのに見てください、あなたは、各セルの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);