c# - Storing Excel Rows in List<Range> for later insertion into different workbook -
i splitting 1 big spreadsheet many (100's) smaller spreadsheet. approach store rows of source spreadsheet in list:
list<range> ranges = new list<range>(); workbook book = xl.workbooks.add("path book"); worksheet sheet = book.sheets[1]; (int r = 1; r <= sheet.usedrange.rows.count; r++) { ranges.add((range)sheet.rows[r]); } book.close(); ...... workbook book2 = xl.workbooks.add(); worksheet sheet2 = book2.sheets[1]; (int r2 = 0; r2 <= ranges.count; r2++) { range row = (range)ranges[r2]; // sheet2.rows[r2+1].value2 = row; //fails; //querying in debug, properties of row throw exception //queryying sheet.rows[r2+1] expands expected }
if see error please advise.
thanks.
i think after close first source book, can no longer utilize range references you've taken it. move book.close()
end of snippet. upper bound for sec loop should <
not <=
.
for (int r2 = 0; r2 < ranges.count; r2++) { ranges[r2].copy(); sheet2.paste(sheet2.rows[r2+1]); }
c# excel interop
No comments:
Post a Comment