Запись большого объема данных в файл Word максимально быстро - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

вообщем есть массив данных...а точнее Datatable с обьемом порядка 200 000 строк. есть шаблон ворд. массив определенным образом разбивается (фильтр по полям) на фрагменты, гдето по 3000-4000 строк, которые записываются в файл на основе шаблона в таблицу. проблема в том, что это происходит очень долго... около 800 записей в минуту, соответственно нужно более 3 часов на полное формирование всех файлов... все остальные действия(формирование datatable, выборки) происходят относительно этого очень быстро... есть приложение которое неизвестно как, но создает аналогичные файлы намного быстрее отсюда вопрос: как записать данные в файл ворд быстро? я делаю примерно так:
Листинг программы
  1. Dim dt_to_sps As New DataTable 'в эту таблицу записываются уже отфильтрованные
  2. 'и и нужным образом сортированные данные примерно 4000 строк,
  3. 'каждое поле каждой строки до 150 символов
  4. ...
  5. Dim wApp = New Word.Application
  6. Dim tff As String = TemplateFile 'путь к файлу шаблона тут
  7. wApp.Options.CheckSpellingAsYouType = False
  8. wApp.DisplayAlerts = False
  9. wApp.Visible = False
  10. Dim wDoc1 As Word.Document
  11. wDoc1 = wApp.Documents.Add(tff)
ну тоесть ворд стартует невидимый без отображения предупреждений и проверки правописания(что немного ускорило процесс) ... создание и заполнение таблицы
Листинг программы
  1. wTable = wDoc1.Tables.Add(wDoc1.Bookmarks("\endofdoc").Range, dt_to_sps.Rows.Count, dt_to_sps.Columns.Count)
  2. For i = 1 To dt_to_sps.Rows.Count
  3. For j = 1 To 4
  4. wTable.Cell(i, j).Range.Text = dt_to_sps.Rows(i - 1).Item(j - 1).ToString
  5. Next
  6. Next
да, заполняется только 4 колонки, это постоянно, хотя размерность таблицы может быть разная... итак средняя скорость получается: 3000 строк за 270 секунд все это в цикле, дальше файл сохраняется, таблица сбрасывается, получает следующие данные которые записываются в следующий файл. помогайте, как сделать это быстрее?

Решение задачи: «Запись большого объема данных в файл Word максимально быстро»

textual
Листинг программы
  1.             wDoc1.SaveAs(FolO & rr.ToString, Word.WdSaveFormat.wdFormatDocumentDefault)
  2.             wDoc1.Close(False)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут