Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Gembox空值中断公式_C#_Gembox Spreadsheet - Fatal编程技术网

C# Gembox空值中断公式

C# Gembox空值中断公式,c#,gembox-spreadsheet,C#,Gembox Spreadsheet,我正在使用C#和Gembox创建Excel电子表格 我从SQLServer获取数据表中的数据,如果数据表中的单元格为null,将其放入excel对象会导致依赖于该excel单元格的任何公式中断 e、 g.我明白了: 您可以看到,如果P4 2015列有一个空单元格,那么var列中的公式将中断。如果我在Excel中选择单元格并按Delete键,则输入公式有效 所以Gembox在细胞里放了一些东西,打破了公式,但我不知道是什么。我试图检查空值并插入一个空字符串,但这不起作用 以前有没有人见过这种情况

我正在使用C#和Gembox创建Excel电子表格

我从SQLServer获取数据表中的数据,如果数据表中的单元格为null,将其放入excel对象会导致依赖于该excel单元格的任何公式中断

e、 g.我明白了:

您可以看到,如果P4 2015列有一个空单元格,那么var列中的公式将中断。如果我在Excel中选择单元格并按Delete键,则输入公式有效

所以Gembox在细胞里放了一些东西,打破了公式,但我不知道是什么。我试图检查空值并插入一个空字符串,但这不起作用


以前有没有人见过这种情况,或者知道如何解决它?(注意-我需要单元格为空-我不想在其中放入0)。

我使用以下方法设法绕过此错误:

基本上,我检查插入Excel单元格的值-如果它是空字符串,则为空,然后我专门将
null
插入电子表格

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

我认为我遇到的所有问题都是由于在电子表格的数字列中插入了一个空字符串造成的。

GemBox.spreadsheet如果没有任何值,将不会向单元格写入任何内容。不过,您使用的是什么版本的GemBox.电子表格?还有,你有什么公式(我无法用简单的“=A1+B1+C1+D1”公式重现)?最后,请确认您正在使用InsertDataTable方法将DataTable导入Excel工作表,是否正确?@MarioZ Gembox 3.7 for.Net 4.5。公式很简单,=E60-F60,数据与excel表不匹配,因此我通过行/列循环来获得所需的内容(创建上述表需要一组非常复杂的SQL查询)。我通过检查
string.IsNullOrEmpty
并特别地将
null
对象插入Excel单元格来解决这个问题。我现在要补充我的答案。
if (string.IsNullOrWhiteSpace(value))
{
    worksheet.Cells[columnCode + row].Value = null;
    format = "0";
}
else
{
    //insert as normal...
}