我正在遍历一些excel单元格来对细胞的值求和,一些单元格是空的,当我通过它时我得到newDict.update(..)
错误。这是我的代码:
ObservableCollection<Product> ProductsObject = new ObservableCollection<Product>();
for (int i = 0; i < GetProductByCategoryResultObject.Products.Count; i++)
{
ProductsObject.Add(GetProductByCategoryResultObject.Products[i]);
}
ProductListView.ItemsSource = ProductsObject;
我在想它是因为你无法解析一个空字符串,所以如果单元格为空,我该如何添加0呢?
答案 0 :(得分:3)
使用int.TryParse
:
int parsed;
int.TryParse(ws.Cells[rowstart, 3].Value.ToString(), out parsed)
total += parsed;
如果字符串不是数字, parsed
将为0。
答案 1 :(得分:0)
使用int.TryParse
代替int.Parse
int total = 0;
int rowstart = 4;
while (ws.Cells[rowstart, 1].Value.ToString() != "")
{
int val=0;
if (ws.Cells[rowstart, 1].Value.ToString() != ws.Cells[rowstart + 1, 1].Value.ToString())
{
ws.InsertRow(rowstart + 1, 1);
ws.Cells[rowstart + 1, 3].Value = total;
}
else
{
int.TryParse(ws.Cells[rowstart, 3].Value.ToString(), out val);
total = total + val;
// I'm adding the value of Column 3 to the variable total, I get the error if the cell is empty
rowstart = rowstart + 1;
}
}
答案 2 :(得分:0)
尝试以下代码
else
{
If (int.TryParse(ws.Cells[rowstart, 3].Value.ToString(), out result))
total = total +int.Parse(ws.Cells[rowstart, 3].Value.ToString());
rowstart = rowstart + 1;
}