Экспорт данных ASP в Excel - PullRequest
0 голосов
/ 21 мая 2018

Я пытался экспортировать данные из приложения ASP Classic в таблицу Excel с помощью цикла Do While Loop.Во время экспорта ошибка (я полагаю, поврежденная дата) происходит внутри цикла, поэтому экспорт завершается неудачно и не достигает точки, где должны быть введены закрывающие теги.

//get data from the database into DataContainer
    Do While Not DataContainer.eof
        response.write "<Row>"
        response.write "<Cell><Data Type=""Number"">" & DataContainer("Field1") & "</Data></Cell>"
        response.write "<Cell><Data Type=""String"">" & DataContainer("Field2") & "</Data></Cell>"
        ... 
        response.write "<Cell><Data Type=""String"">" & DataContainer("Field15") & "</Data></Cell>"
        response.write "</Row>"
        response.flush
        DataContainer.movenext
    Loop
 response.write "</Table>" 
 response.write "</Worksheet>" 
 response.write "</Workbook>" 

В результате я частичноэкспортированные данные в файл.Файл не может быть открыт из-за отсутствия закрывающих тегов.Как с этим справиться?

1 Ответ

0 голосов
/ 22 мая 2018

Опция 1. Исправьте поврежденные данные, чтобы ваш цикл не вышел из строя.

Опция 2. Перед выполнением цикла выполните следующее.Это приведет к игнорированию ошибок и продолжению.

on error resume next

После этого установите его обратно в нормальное состояние с помощью

on error goto 0

например,

//get data from the database into DataContainer
    on error resume next
    Do While Not DataContainer.eof
        sRow = "<Row>" &_
               "<Cell><Data Type=""Number""></Data></Cell>" &_
               "<Cell><Data Type=""String"">" &_ DataContainer("Field2") & "</Data></Cell>" &_
        ... 
               "<Cell><Data Type=""String"">" &_ DataContainer("Field15") & "</Data></Cell>" 
        If Not Err Then
            response.write sRow
            response.flush
        End If
        DataContainer.movenext
    Loop
    on error goto 0
 response.write "</Table>" 
 response.write "</Worksheet>" 
 response.write "</Workbook>" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...