我的Excel文件不在表格数据中.我试图从excel文件中读取.我的excel文件中的部分是表格式的.
我需要遍历第3到第20行,这些是表格并读取数据.
这是我的代码派对:
string fileName = "C:\\Folder1\\Prev.xlsx";
var workbook = new XLWorkbook(fileName);
var ws1 = workbook.Worksheet(1);
Run Code Online (Sandbox Code Playgroud)
如何循环第3到第20行并读取第3,4,6,7,8列?此外,如果一行为空,我如何确定,以便我可以跳过它而不读取每列具有给定行的值.
Rai*_*ica 28
要访问一行:
var row = ws1.Row(3);
Run Code Online (Sandbox Code Playgroud)
要检查行是否为空:
bool empty = row.IsEmpty();
Run Code Online (Sandbox Code Playgroud)
要访问行中的单元格(列):
var cell = row.Cell(3);
Run Code Online (Sandbox Code Playgroud)
要从单元格中获取值:
object value = cell.Value;
// or
string value = cell.GetValue<string>();
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅文档.
我更喜欢使用RowsUsed()方法获取只有那些非空或用户编辑过的行的列表.这样我就可以避免对每一行进行检查,无论它是否为空.
我不确定它是否符合您在帖子中描述的确切问题陈述,但此代码段可以帮助您处理所有非空行中的第3到第20行数,因为我已经过滤掉了空在开始处理之前的行.在开始处理之前过滤非空行可能会影响您实际要处理的行号.
但是我觉得RowsUsed()当你处理Excel工作表的行时,这种方法在任何一般情况下都非常有用.
string fileName = "C:\\Folder1\\Prev.xlsx";
using (var excelWorkbook = new XLWorkbook(fileName))
{
var nonEmptyDataRows = excelWorkbook.Worksheet(1).RowsUsed();
foreach (var dataRow in nonEmptyDataRows)
{
//for row number check
if(dataRow.RowNumber() >=3 && dataRow.RowNumber() <= 20)
{
//to get column # 3's data
var cell = dataRow.Cell(3).Value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的果酱.
var rows = worksheet.RangeUsed().RowsUsed().Skip(1); // Skip header row
foreach (var row in rows)
{
var rowNumber = row.RowNumber();
// Process the row
}
Run Code Online (Sandbox Code Playgroud)
如果您只是使用.RowsUsed(),您的范围将包含大量列.超过实际填写的方式!
因此,.RangeUsed()首先使用限制范围.这将有助于您更快地处理文件!
您还可以使用.Skip(1)跳过列标题行(如果有的话).
| 归档时间: |
|
| 查看次数: |
55616 次 |
| 最近记录: |