我如何遍历 excel 文件
How can I iterate over an excel file
如何遍历 excel 文件?
我目前有一个 class 使用 ExcelDataReader
Class => 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...
谢谢
第一个问题是您要求在一行中写两个项目并且只写两个项目。
如果您将 stream.writeline() 语句变成 .write() 语句,然后在内部循环执行 .writeline() 后终止该行,会有帮助吗?
抱歉没有发表评论,但没有足够的尊重点来发表评论。
- 马尔克
这就是答案,我只需要获取数据集并对其进行迭代,非常简单
var data = ExcelHelper.DataSet();
foreach (DataRow dr in data.Tables[0].Rows)
{
Console.WriteLine(dr["Column1"] + "|" + dr["Column2"]);
}
如果我真的明白你想要什么!我认为您需要将 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));
}
HTH ;)
如何遍历 excel 文件?
我目前有一个 class 使用 ExcelDataReader
Class => 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...
谢谢
第一个问题是您要求在一行中写两个项目并且只写两个项目。
如果您将 stream.writeline() 语句变成 .write() 语句,然后在内部循环执行 .writeline() 后终止该行,会有帮助吗?
抱歉没有发表评论,但没有足够的尊重点来发表评论。 - 马尔克
这就是答案,我只需要获取数据集并对其进行迭代,非常简单
var data = ExcelHelper.DataSet();
foreach (DataRow dr in data.Tables[0].Rows)
{
Console.WriteLine(dr["Column1"] + "|" + dr["Column2"]);
}
如果我真的明白你想要什么!我认为您需要将 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));
}
HTH ;)