【发布时间】:2016-02-17 19:57:01
【问题描述】:
我目前正在从网页中选择 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;
}
}
}
【问题讨论】:
-
这个列表如何产生多列数据?只有一个列表,不应该产生一个列吗?我认为不需要
cellList列表和第二个循环。看来你应该只循环一次,每次都简单地增加行号。 -
正确,它只是上面代码的 1 列(另一个列表创建了其他列,但显示正确)。当我尝试只显示“myList”列表时,我无法让它显示里面的实际项目,它只会显示 HtmlAnchor 引用,如 (HtmlAnchor:),只有当我显示我可以看到正确数据的第二个列表(cellList)。
标签: c# html-table excel-interop