2016-06-16 9 views
1

C#とGemboxを使用してExcelスプレッドシートを作成しています。Gemboxヌル値破棄式

データテーブル内のSQLServerからデータを取得しましたが、データテーブル内のセルがnullの場合、そのExcelセルに依存する任意の数式がExcelオブジェクトに格納されます。

私はこれを取得:

enter image description here

あなたはP4 2015カラムは、その後のvar列の区切りで式を空のセルを持っているかのことがわかります。 Excelでセルを選択してDeleteキーを押すと、式が入力されます。

だから、Gemboxは数式を破るセルに何かを入れていますが、何がわかりません。私はヌル値をチェックして空の文字列を挿入しようとしましたが、うまくいきません。

誰もこれを以前に見たことがありますか、それを解決する方法を知っていますか? (注 - 私は空でなければならない - 私はそこに0を入れたくありません)。

+1

GemBox.Spreadsheetは、値を持たないセルには何も書き込まれません。それにもかかわらず、どのバージョンのGemBox.Spreadsheetを使用していますか?あなたがそこに持っている式も(私は単純な "= A1 + B1 + C1 + D1"式でこれを再現することができませんでしたか?最後に、DataTableをExcelWorksheetにインポートするためのInsertDataTableメソッドを使用していることを確認するだけですか? –

+0

@MarioZ Gembox 3.7 for .Net 4.5。数式はシンプルなもの、= E60-F60でデータがExcel表と一致しないため、必要なものを得るために行/列をループしています(上記の表を作成するための非常に複雑なSQL問合せです) 。私は 'string.IsNullOrEmpty'をチェックして、特に' null'オブジェクトをExcelセルに挿入することで解決することができました。私は今私の答えを追加します。 – Rick

答えて

1

私は、次を使用して、このエラーを回避するために管理:

基本的に私は、私はExcelのセルに挿入していた値をチェック - それは空、文字列またはnullの場合、私は、特にスプレッドシートにnullを挿入します。

if (string.IsNullOrWhiteSpace(value)) 
{ 
    worksheet.Cells[columnCode + row].Value = null; 
    format = "0"; 
} 
else 
{ 
    //insert as normal... 
} 

私が持っていた問題はすべて、スプレッドシートの数値列に空の文字列が挿入されたことが原因だと思います。

関連する問題