C#将列表数据解析为excel

时间:2016-02-17 11:17:53

标签: c# html-table excel-interop

我目前正在从网页中选择HTML表数据,并存储包含Anchor标记的任何内容,然后导出该列表以在Excel中显示。

我遇到的问题是我无法在Excel中正确显示它。 列表确实包含正确的数据,但在excel上它只显示列表中的最后一项(似乎每次遍历列表时都会覆盖)。

列表(cellList)是包含正确数据的列表,已经尝试了许多不同的变体来尝试使其正确显示,但似乎无法确定下面的原因无法正常工作。

我使用了或多或少相同的foreach代码,以相同的方式将SQL数据列表显示为excel。

任何帮助或指导都将不胜感激。

HtmlTable tabletest = ActiveBrowser.Find.ById<HtmlTable>("MainContent_ucLicensees_gviGeneric");
IList<HtmlAnchor> myList = tabletest.Find.AllByTagName<HtmlAnchor>("a");

foreach (HtmlAnchor item in myList)
{
    string celltext = item.InnerText.ToString();
    List<string> cellList = new List<string>();
    cellList.Add(celltext);

    int row = 2;
    int col = 2;
    foreach (var cellitem in cellList)
    {
        excelApp.Cells[row, col] = cellitem;
        row++;
        if (cellList.IndexOf(cellitem) == cellList.Count - 1)
        {
            col = 2;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

似乎你应该只循环一次,并且每次只增加行号。这样的事情应该有效:

int row = 2; //Should this be 1?
int col = 2; //Should this be 1?

foreach (HtmlAnchor item in myList)
{
    string celltext = item.InnerText.ToString();

    excelApp.Cells[row, col] = celltext;

    row++;   
}