为了账号安全,请及时绑定邮箱和手机立即绑定

如何遍历excel文件

如何遍历excel文件

C#
犯罪嫌疑人X 2021-11-21 10:48:23
如何遍历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|Row1Column1|Row2Column1|Row3...Column2|Row1Column2|Row2Column2|Row3...预期的:Column1|Row1|Column2|Row1...Column1|Row2|Column2|Row2...Column1|Row3|Column2|Row3...谢谢
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

这就是答案,我只需要获取数据集并对其进行迭代,非常简单


var data = ExcelHelper.DataSet();


foreach (DataRow dr in data.Tables[0].Rows)

{

    Console.WriteLine(dr["Column1"] + "|" + dr["Column2"]);

}


查看完整回答
反对 回复 2021-11-21
?
SMILET

TA贡献1796条经验 获得超4个赞

如果我明白你真正想要什么!我认为您需要添加一个类似于RowValueCollection您的方法ExcelHelper,如下所示:


public static IEnumerable<string[]> RowValueCollection()

{

    var result = Data.Tables[0].Rows.OfType<DataRow>()

        .Select(dr => dr.ItemArray.Select(ia => ia.ToString()).ToArray());

    return result;

}

然后像这样使用它:


var rowValues = ExcelHelper.RowValueCollection();

foreach (var row in rowValues)

{

    stream.WriteLine(string.Join("|", row));

}

哈 ;)


查看完整回答
反对 回复 2021-11-21
?
慕容3067478

TA贡献1773条经验 获得超3个赞

第一个问题是您要求在一行中写两个项目并且只有两个项目。

如果您将 stream.writeline() 语句变成 .write() 语句,然后在内循环执行会终止该行的 .writeline() 之后,它会有所帮助吗?

抱歉没有发表评论,但没有足够的尊重点来这样做。- 马尔克


查看完整回答
反对 回复 2021-11-21
  • 3 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信