deleteRow method
Delete the Row in the Worksheet.
// Create a new Excel Document.
final Workbook workbook = Workbook();
// Accessing sheet via index.
final Worksheet sheet = workbook.worksheets[0];
Range range = sheet.getRangeByName('A2');
range.setText('Hello');
range = sheet.getRangeByName('C2');
range.setText('World');
// Delete a row
sheet.deleteRow(1, 1);
// Save and dispose workbook.
final List<int> bytes = workbook.saveAsStream();
File('DeleteRowandColumn.xlsx').writeAsBytes(bytes);
workbook.dispose();
Implementation
void deleteRow(int rowIndex, [int? rowCount]) {
if (rowIndex < 1 || rowIndex > workbook._maxRowCount) {
throw Exception('rowIndex');
}
rowCount ??= 1;
if (rowCount < 0) {
throw Exception('count');
}
for (int count = 1; count <= rowCount; count++) {
final int lastRow = getLastRow();
for (int i = rowIndex; i <= lastRow; i++) {
final Row? row = rows[i];
if (row != null && i != lastRow && rows[i + 1] != null) {
rows[i] = rows[i + 1];
rows[i]!.index = rows[i]!.index - 1;
for (int j = rows[i]!.ranges.innerList.length; j >= 1; j--) {
final Range? range = rows[i]!.ranges[j];
if (range != null) {
rows[i]!.ranges[j]!.row = rows[i]!.ranges[j]!.row - 1;
rows[i]!.ranges[j]!.lastRow = rows[i]!.ranges[j]!.lastRow - 1;
rows[i]!.ranges[j]!.column = rows[i]!.ranges[j]!.column;
rows[i]!.ranges[j]!.lastColumn = rows[i]!.ranges[j]!.lastColumn;
}
}
} else if (row == null && i != lastRow && rows[i + 1] != null) {
rows[i] = Row(this);
rows[i] = rows[i + 1];
rows[i]!.index = rows[i]!.index - 1;
for (int j = rows[i]!.ranges.innerList.length; j >= 1; j--) {
final Range? range = rows[i]!.ranges[j];
if (range != null) {
rows[i]!.ranges[j]!.row = rows[i]!.ranges[j]!.row - 1;
rows[i]!.ranges[j]!.lastRow = rows[i]!.ranges[j]!.lastRow - 1;
rows[i]!.ranges[j]!.column = rows[i]!.ranges[j]!.column;
rows[i]!.ranges[j]!.lastColumn = rows[i]!.ranges[j]!.lastColumn;
}
}
} else if (i == lastRow) {
rows[i] = null;
if (hyperlinks.count > 0) {
for (int z = 0; z < hyperlinks.count; z++) {
if (hyperlinks[z]._attachedType ==
ExcelHyperlinkAttachedType.range &&
hyperlinks[z]._row > rowIndex) {
hyperlinks[z]._row = hyperlinks[z]._row - 1;
}
}
}
} else {
rows[i] = rows[i + 1];
}
}
}
}