Я пытаюсь загрузить данные из листа Excel, в котором есть несколько объединенных ячеек.
Это код, о котором идет речь.
Using excel = New ExcelPackage(ulExcelData.PostedFile.InputStream)
Dim _worksheet = excel.Workbook.Worksheets.First()
Dim _hasHeader = False
Dim _mergedAddress = _worksheet.MergedCells(13, 7)
Dim mergedadress = _worksheet.MergedCells(1, 2)
For Each col In _worksheet.Cells(13, 7, _worksheet.Dimension.End.Row, 10)
_dataTable.Columns.Add(If(_hasHeader, Nothing, col.Value))
String.Format("{0}", col.Start.Column)
Next
For _rowNumber = 1 To _worksheet.Dimension.End.Row
Dim _worksheetRow = _worksheet.Cells(_rowNumber, 13, _rowNumber, 10)
Dim _row As DataRow = _dataTable.Rows.Add()
For Each cell In _worksheetRow
If cell.Value Is Nothing Then
_row.Delete()
GoTo executeInsert
End If
Next cell
Next
Я попробовал это:
Получите объединенную ячейку с EPPLus , но не повезло.
Столбцы, которые я хочу прочитать, имеют значения от «F» до «J», но «G», «H» и «I» объединены, поэтому здесь я хочу значение, которое находится в «G», и я хочу игнорировать » H "и" I ".
Есть идеи?
Я буду рад добавить любые разъяснения.
UPDATE
Все данные сохраняются как обычно, кроме столбца J. Я нажимаю «H» и сохраняю нулевые значения в своей базе данных, так как «H» и «I» - пустые ячейки.
ОБНОВЛЕННЫЙ КОД
For _rowNumber = 13 To _worksheet.Dimension.End.Row
Dim _worksheetRow = _worksheet.Cells(_rowNumber, 6, _rowNumber, 9) 'Cols F, G, H, I'
Dim _row As DataRow = _dataTable.Rows.Add()
For Each cell In _worksheetRow
If cell.Value Is Nothing Then
Continue For
Else
_row(cell.Start.Column - 6) = cell.Value.ToString.Trim()
End If
Next cell
Next
Я получаю значения из «G», но я не могу «пропустить» «H» и «I», чтобы перейти прямо к «J» и получить значение. Так что в основном из столбцов с 6 по 10 я хочу пропустить 8 и 9 и перейти прямо к 10.