我必须用C#做一个Excel Manager,我选择免费使用Gem Box Spreadsheet
var ef = new ExcelFile();
ef = ExcelFile.Load(File_Lettura);
ExcelWorksheet ws = ef.Worksheets.ActiveWorksheet;
int riga = 13;
string s = (ws.Cells["B6"]).ToString();
string[] r = s.Split('-');
int c = 0;
while (ws.Cells["B"+riga.ToString()].Value != null)
{
if (ws.Cells["F"+riga.ToString()].Value.ToString() != "")
{
// add row
dgwFile.Rows.Add();
dgwFile.Rows[c].Cells[0].Value = r[0] + "-" + r[1] + "-" + ws.Cells["B"+riga.ToString()].Value.ToString();
dgwFile.Rows[c].Cells[1].Value = ws.Cells["D" + riga.ToString()].Value.ToString() + ws.Cells["G" + riga.ToString()].Value.ToString() + ws.Cells["H" + riga.ToString()].Value.ToString() + ws.Cells["I" + riga.ToString()].Value.ToString();
dgwFile.Rows[c].Cells[2].Value = ws.Cells["F" + riga.ToString()].Value.ToString();
dgwFile.Rows[c].Cells[3].Value = "0";
c++;
}
riga++;
}
VS给我一个问题,第一个" IF"有错误:
未处理的类型' System.NullReferenceException' 发生。
我认为错误的行是第3行 在此先感谢Smile | :)
我也尝试过这样的事情
ExcelFile ef = ExcelFile.Load(File_Lettura);
ExcelWorksheet ws = ef.Worksheets.ActiveWorksheet;
答案 0 :(得分:0)
我不相信前3行是问题,但为了100%确定你需要准确指出引发异常的位置。
尽管如此,我认为您要定位的ExcelCell之一是null。 所以试试这个:
while (ws.Cells["B"+riga.ToString()] != null &&
ws.Cells["B"+riga.ToString()].Value != null)
{
if (ws.Cells["F"+riga.ToString()] != null &&
ws.Cells["F"+riga.ToString()].Value != null)
{