2

我正在寻找一种解析 excel 文件的方法,以便将一些数据导入我的数据库表中。在搜索时,我得到了这个答案Efficient method to enumerate methods in an Excel workbook using c#但未能使其正常工作。

这是我的代码:

private void ImportFromSheet(Worksheet worksheet)
    {
        Object[,] rangeData = (System.Object[,])worksheet.UsedRange.Cells.get_Value(Type.Missing);            

        if (rangeData != null)
        {
            int iRowMax = rangeData.GetUpperBound(0);
            int iColMax = rangeData.GetUpperBound(1);

            for (int iRow = 2; iRow < iRowMax; iRow++) // skipping headers
            {
                Import( rangeData, iRow );
            } 
        }
    }

如您所见,这直接取自我之前提到的答案。

在我的导入功能中,我有很多有趣的事情:

string var = Convert.ToString(rangeData[iRow, index]) ?? string.Empty;

因此,如果我在 Visual Studio 中检查 rangeData[iRow, index] 值,我会得到正确的数据,但在某些时候 Convert.ToString 无法为我提供一个分配给 var 的字符串(这似乎根本没有分配)。

此外,我尝试了这段代码:

for (int iCol = 1; iCol < iColMax; iCol++)
{
    string key = Convert.ToString(rangeData[1, iCol]) ?? "empty";
    string value = Convert.ToString(rangeData[2, iCol]) ?? "empty";
    Response.Write(iCol + " -> " + key + " : " + value + "<br />");
}

它工作得很好。

所以,请你看看我错过了什么?

谢谢您的帮助 !

4

0 回答 0