Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将列表数据解析为excel_C#_Html Table_Excel Interop - Fatal编程技术网

C#将列表数据解析为excel

C#将列表数据解析为excel,c#,html-table,excel-interop,C#,Html Table,Excel Interop,我目前正在从网页中选择HTML表格数据,并存储包含锚定标记的任何内容,然后导出该列表以在Excel中显示 我遇到的问题是,我无法使它在Excel中正确显示。 列表确实包含正确的数据,但在excel上,它只显示列表中的最后一项(似乎每次遍历列表时都会被覆盖) 列表(cellList)是包含正确数据的列表,尝试了许多不同的变体,试图使其正确显示,但似乎无法准确指出以下内容无法正常工作的原因 我或多或少使用了相同的foreach代码,以相同的方式将SQL数据中的列表显示到excel中 任何帮助或指导都

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

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

列表(cellList)是包含正确数据的列表,尝试了许多不同的变体,试图使其正确显示,但似乎无法准确指出以下内容无法正常工作的原因

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

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

HtmlTable tabletest=ActiveBrowser.Find.ById(“MainContent\u ucLicensees\u gviGeneric”);
IList myList=tabletest.Find.AllByTagName(“a”);
foreach(myList中的HtmlAnchor项)
{
字符串celltext=item.InnerText.ToString();
List cellList=新列表();
添加(celltext);
int行=2;
int col=2;
foreach(单元格列表中的变量cellitem)
{
excelApp.Cells[行,列]=单元格项;
行++;
if(cellList.IndexOf(cellitem)=cellList.Count-1)
{
col=2;
}
}
}

似乎您应该只循环一次,每次只增加行号。像这样的方法应该会奏效:

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++;   
}

似乎您应该只循环一次,每次只增加行号。像这样的方法应该会奏效:

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++;   
}

此列表如何生成具有多列的数据?只有一个列表,这不应该产生一个列吗?我不认为有必要使用
单元列表和第二个循环。似乎您应该只循环一次,每次只增加行号。正确,上面的代码只有一列(其他列由另一个列表创建,但该列表显示正确)。当我试图只显示“myList”列表时,我无法让它显示其中的实际项目,它将只显示HtmlAnchor引用,如(HtmlAnchor:),只有当我显示第二个列表(cellList)时,我才能看到正确的数据。此列表如何生成具有多列的数据?只有一个列表,这不应该产生一个列吗?我不认为有必要使用
单元列表和第二个循环。似乎您应该只循环一次,每次只增加行号。正确,上面的代码只有一列(其他列由另一个列表创建,但该列表显示正确)。当我试图只显示“myList”列表时,我无法让它显示其中的实际项目,它将只显示HtmlAnchor引用,如(HtmlAnchor:),只有当我显示第二个列表(cellList)时,我才能看到正确的数据。不幸的是,上面的问题相同,它只显示列表中第一行(第2行)的最后一个项目. 这就好像它现在应该去下一排。此外,对于int变量上的问题,第1行包含标题,第1列包含其他数据,这就是为什么行/col=2您确定每次迭代都要递增
Row
?此外,您确定
myList
包含多个项吗?int Row=2;int col=2;这就是问题所在!因为我没有将它们移出foreach循环代码,所以我一移出它们,就像上面所做的那样,它就工作得很好。感谢您帮助Yacoub,我不知道为什么在foreach循环中使用它们会导致它不起作用,但我学到了教训!!不客气。如果将它们保留在循环中,则每次迭代时该值都将重置为2,这将导致该值始终写入第2行。不幸的是,上面的问题相同,它仅在第一行(第2行)中显示列表中的最后一项。这就好像它现在应该去下一排。此外,对于int变量上的问题,第1行包含标题,第1列包含其他数据,这就是为什么行/col=2您确定每次迭代都要递增
Row
?此外,您确定
myList
包含多个项吗?int Row=2;int col=2;这就是问题所在!因为我没有将它们移出foreach循环代码,所以我一移出它们,就像上面所做的那样,它就工作得很好。感谢您帮助Yacoub,我不知道为什么在foreach循环中使用它们会导致它不起作用,但我学到了教训!!不客气。如果将它们保留在循环中,则每次迭代时该值都将重置为2,这将导致该值始终写入第2行。