1

我必须用 C# 做一个 Excel 管理器,我选择使用 Gem Box Spreadsheet Free

        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 行提前谢谢微笑 | :)

我也试过喜欢

ExcelFile ef = ExcelFile.Load(File_Lettura);
ExcelWorksheet ws = ef.Worksheets.ActiveWorksheet;
4

1 回答 1

0

我不相信前 3 行是问题所在,但是为了 100% 确定您需要准确指定引发异常的位置。

不过,我认为您所针对的 ExcelCell 之一为空。所以试试这个:

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)
        {
于 2015-07-10T20:24:27.930 回答