我想使用EPPLUS将数据从Excel导入DataBase。从这里我拿了代码:https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt6
问题是excel中有时候是空单元格。如果单元格为空,则会收到错误:null
,我的应用程序停止。我认为好的解决方案是将if(LAST_NAME returns NullReferenceException then LAST_NAME = null)
值分配给特定变量,如果没有参考,例如var newRecord = new DB_USER
{
ID = Int32.Parse(worksheet.Cells[idColumn + row].Value.ToString()),
FIRST_NAME = worksheet.Cells[firstNameColumn + row].Value.ToString(),
LAST_NAME = worksheet.Cells[lastNameColumn + row].Value.ToString() //If this value has NullReferenceException then assign null or ""
};
- 但我不知道如何在代码中执行此操作。
var $numbers = $onclick.match(/(\d*),(\d*),(\d)/);
var first = $numbers[1] // Returns 14754572
var second = $numbers[2] // Returns 782339
var third = $numbers[3] // Returns 2
console.log('1:'+first,' 2:'+second,' 3:'+third);
答案 0 :(得分:3)
如果您使用的是最新的C#版本(6.0),则可以使用null propagation operator:
LAST_NAME = worksheet?.Cells[lastNameColumn + row]?.Value?.ToString()
答案 1 :(得分:1)
我觉得为空单元格分配空字符串string.Empty
很好。如果你没事,你可以这样说:
var newRecord = new DB_USER
{
ID = Int32.Parse(worksheet.Cells[idColumn + row].Value.ToString()),
FIRST_NAME = worksheet.Cells[firstNameColumn + row].Value.ToString(),
LAST_NAME = worksheet.Cells[lastNameColumn + row].Value ?? string.Empty).ToString() //for a null value assign a empty string else the string value
};
更简洁的方法是扩展方法:
public static string ToNullSafeString(this object obj)
{
return (obj ?? string.Empty).ToString();
}
并将其用作:
LAST_NAME = worksheet.Cells[lastNameColumn + row].Value.ToNullSafeString();
如果您希望返回null
而不是string.Empty
,则稍微修改上述ToNullSafeString
扩展方法即可。