如何遍历excel文件

如何遍历excel文件?


我目前有一个使用 ExcelDataReader 的课程


类 => https://paste.lamlam.io/nomehogupi.cs#14fXzlopygZ27adDcXEDtQHT0tWTxoYR


我有一个 5 列的 excel 文件


这是我当前的代码,但它没有导出我期望的结果......


TextWriter stream = new StreamWriter("excel Path");

//foreach string in List<string>

foreach(var item in ComboList) {

 var rows = ExcelHelper.CellValueCollection(item.Key);


 foreach(var row in rows) {

  stream.WriteLine(item.Key + "|" + row);

  break;

 }

}


stream.Close();

我的结果:


Column1|Row1

Column1|Row2

Column1|Row3

...

Column2|Row1

Column2|Row2

Column2|Row3

...

预期的:


Column1|Row1|Column2|Row1...

Column1|Row2|Column2|Row2...

Column1|Row3|Column2|Row3...

谢谢


犯罪嫌疑人X
浏览 202回答 3
3回答

jeck猫

这就是答案,我只需要获取数据集并对其进行迭代,非常简单var data = ExcelHelper.DataSet();foreach (DataRow dr in data.Tables[0].Rows){&nbsp; &nbsp; Console.WriteLine(dr["Column1"] + "|" + dr["Column2"]);}

SMILET

如果我明白你真正想要什么!我认为您需要添加一个类似于RowValueCollection您的方法ExcelHelper,如下所示:public static IEnumerable<string[]> RowValueCollection(){&nbsp; &nbsp; var result = Data.Tables[0].Rows.OfType<DataRow>()&nbsp; &nbsp; &nbsp; &nbsp; .Select(dr => dr.ItemArray.Select(ia => ia.ToString()).ToArray());&nbsp; &nbsp; return result;}然后像这样使用它:var rowValues = ExcelHelper.RowValueCollection();foreach (var row in rowValues){&nbsp; &nbsp; stream.WriteLine(string.Join("|", row));}哈 ;)

慕容3067478

第一个问题是您要求在一行中写两个项目并且只有两个项目。如果您将 stream.writeline() 语句变成 .write() 语句,然后在内循环执行会终止该行的 .writeline() 之后,它会有所帮助吗?抱歉没有发表评论,但没有足够的尊重点来这样做。- 马尔克
打开App,查看更多内容
随时随地看视频慕课网APP