У меня есть сложный объект (древовидная структура), который я сплющиваю в виде данных, чтобы отобразить его на листе Excel.Datatable огромен и имеет около 20000 строк и 10000 столбцов.
Запись данных в ячейку Excel по одному заняла целую вечность.Итак, я преобразовываю сложный объект в таблицу данных, а затем записываю его на лист Excel с помощью приведенного ниже кода.
Можно ли довольно быстро записать данные из столбцов размером 20К строк и 10К в лист Excel?минута или <5 минут?Как лучше всего быстро выполнить эту задачу. </p>
Среда: Visual studio 2010, проект книги VSTO Excel, .NET Framework 4.0, Excel 2010/2007
РЕДАКТИРОВАТЬ:
Первоначальный источник данных - ответ службы покоя в формате json.Затем я десериализирую ответ json на объекты c # и, наконец, объединяю его в таблицу данных.
Использование этого кода для записи данных в таблицу Excel:
Excel.Range oRange;
var oSheet = Globals.Sheet3;
int rowCount = 1;
foreach (DataRow dr in resultsDataTable.Rows)
{
rowCount += 1;
for (int i = 1; i < resultsDataTable.Columns.Count + 1; i++)
{
// Add the header the first time through
if (rowCount == 2)
{
oSheet.Cells[1, i] = resultsDataTable.Columns[i - 1].ColumnName;
}
oSheet.Cells[rowCount, i] = dr[i - 1].ToString();
}
}
// Resize the columns
oRange = oSheet.get_Range(oSheet.Cells[1, 1],
oSheet.Cells[rowCount, resultsDataTable.Columns.Count]);
oRange.EntireColumn.AutoFit();
Окончательное решение: Использовал массив двумерных объектов вместо данных и записал его в диапазон.