Классический выход ASP XLS с возвратом каретки в ячейке - PullRequest
2 голосов
/ 05 февраля 2012

У меня есть классический ASP-сценарий, который выводит таблицу HTML в виде файла XLS, но мне не повезло заставить возврат каретки / перевод строки работать в одной ячейке.

Для тестирования я использую код на основена ответ Кристофа на Как вывести файл Excel * .xls из классического ASP

Я испробовал каждый известный мне метод для вставки возврата каретки / перевода строки.Мой пример кода выглядит следующим образом:

<%@ Language=VBScript %>
<%  Option Explicit
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=excelTest.xls"
%>
<table border="1">
    <tr>
        <td>Line1<br />Line2</td>
        <td><p>Line1</p>Line2</td>
        <td><div>Line1</div>Line2</td>
        <td>Line1<%=chr(10)%>Line2</td>
        <td>Line1<%=vbCR%>Line2</td>
        <td>Line1<%=vbLF%>Line2</td>
        <td>Line1<%=vbCRLF%>Line2</td>
        <td>Line1\rLine2</td>
        <td>Line1\nLine2</td>
    </tr>
</table>

Я открываю XLS в Excel 2010. Первые 3 примера с использованием тегов HTML показывают возврат каретки, но разбивают данные на 2 строки.Остальные примеры показывают данные в одну строку.Есть ли способ заполнить поле Excel, используя Classic ASP, с возвратом каретки без разделения на несколько строк?

РЕДАКТИРОВАТЬ:

Чтобы уточнить, я пытаюсь повторить поведение ввода alt-входить в ячейку в Excel.На приведенном ниже снимке экрана видно, что первые 3 примера разбивают данные на две ячейки (строки 1 и 2), а все остальные отображаются в одной строке.Я пытаюсь добиться двух строк текста в одной ячейке.Есть ли другой код, который я могу использовать, чтобы вставить разрыв строки, но сохранить данные в одной ячейке?

Снимок экрана Excel

1 Ответ

2 голосов
/ 06 февраля 2012

Есть ли некоторая путаница между отображением наценки и выводом возвратов каретки в вашем коде.

Отображение разметки дает вид возврата каретки для первых трех тд

enter image description here

и четвертый, шестой и седьмой td содержат возврат каретки в html-источнике

enter image description here

РЕДАКТИРОВАТЬ asp за комментарий и предоставленный скриншот

Добавьте следующий стиль на свою страницу, и вы увидите, что первая ячейка ведет себя так, как вам нужно.

<style>
<!--table
br {mso-data-placement:same-cell;}
tr {vertical-align:top;}
-->
</style>
...