Для тех, кто разбирается в OpenXML, я использую файл Excel (как ресурс) в качестве шаблона для создания автоматически сгенерированных файлов Excel.
Я копирую файл в MemoryStream, и после работы с шаблоном он автоматически загружает файл на компьютер пользователя.
Файл Excel огромен (около 40 листов) и имеетмного информации, в основном финансовые вещи.Генерация занимает некоторое время, и я бы хотел, чтобы это было быстрее.
Я думал, можно ли использовать мой метод для асинхронного изменения таблицы Excel.Вместо того, чтобы работать по одному листу за раз, делайте их все асинхронно.Я никогда не использовал async, поэтому я полностью осматриваю это.
Метод для работы с листом ничего не возвращает, он просто меняет текущий используемый MemoryStream.
Iя изменил определение метода на
public async Task UpdateExcelUsingOpenXmlsdkAsync(string xmlStr, string fileName)
Я создал список задач.
List<Task> sheetTasks = new List<Task>();
И я завернул свои вызовы метода внутри
sheetTasks.Add(Task.Run(() => indice.TreatExcelSheetIndice(ds.Tables["ROW"], header.Tables["RELATORIO"], spreadSheet)));
Это выполняется внутри foreach с переключателем внутри, чтобы обрабатывать каждый лист по-разному
После foreach у меня есть это
await Task.WhenAll(sheetTasks);
И затем сохранить электронную таблицу.Но это не работает.Кто-нибудь знает, возможно ли это?