Добрый день! Вопрос следующий, если в ячейку вставить HTML код (через спец. вставку Текст в формате Unicode) <html><p>This is a test. Will this text be <b>bold</b> or <i>italic</i></p></html>, то в ячейке теги отображаться не будут, а слово bold будет выделено жирным шрифтом. Проблема в том, что есть у меня шаблон и часть ячеек в нем заполнено именно с помощью HTML кода. Но как можно увидеть это в Excel? Сейчас сохраняю в формат XML и в нем теги html видны. Может есть какие то еще способы понять, содержит ли лист обычный текст или еще имеют место быть вставки кода HTML? Поиск в гугл особых результатов не дал
Добрый день! Вопрос следующий, если в ячейку вставить HTML код (через спец. вставку Текст в формате Unicode) <html><p>This is a test. Will this text be <b>bold</b> or <i>italic</i></p></html>, то в ячейке теги отображаться не будут, а слово bold будет выделено жирным шрифтом. Проблема в том, что есть у меня шаблон и часть ячеек в нем заполнено именно с помощью HTML кода. Но как можно увидеть это в Excel? Сейчас сохраняю в формат XML и в нем теги html видны. Может есть какие то еще способы понять, содержит ли лист обычный текст или еще имеют место быть вставки кода HTML? Поиск в гугл особых результатов не далTomatos
Tomatos, не понятен вопрос. Вся структура листов с строится на XML и тегах вот значение ячейки [vba]
Код
<Cell ss:StyleID="s62"><ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40"><Font html:Color="#000000">This is a test. Will this text be </Font><B><Font html:Color="#000000">bold</Font></B><Font html:Color="#000000"> or </Font><I><Font html:Color="#000000">italic</Font></I></ss:Data></Cell>
[/vba] естесвенно я убрал лишнее. И оно отличается от того что вставлялось <html><p>This is a test. Will this text be <b>bold</b> or <i>italic</i></p></html> и также будет выглядеть если ввести просто текст и отформатировать его руками инструментами excel.
Tomatos, не понятен вопрос. Вся структура листов с строится на XML и тегах вот значение ячейки [vba]
Код
<Cell ss:StyleID="s62"><ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40"><Font html:Color="#000000">This is a test. Will this text be </Font><B><Font html:Color="#000000">bold</Font></B><Font html:Color="#000000"> or </Font><I><Font html:Color="#000000">italic</Font></I></ss:Data></Cell>
[/vba] естесвенно я убрал лишнее. И оно отличается от того что вставлялось <html><p>This is a test. Will this text be <b>bold</b> or <i>italic</i></p></html> и также будет выглядеть если ввести просто текст и отформатировать его руками инструментами excel.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Вторник, 17.12.2019, 10:16
bmv98rus, Есть Excel шаблон с метками для подмены значений, например [ПОЛЕ_1] и [ПОЛЕ_2] и метод который читает значение в ячейке, дак вот, метку [ПОЛЕ_1] этот метод читает, а [ПОЛЕ_2], которое вставлено с помощью HTML-кода, он прочитать не может. Как то визуально это в шаблоне не видно, увидел только отличие, когда сохранил в XML. Для того, что бы прочитать [ПОЛЕ_2] нужно использовать другой метод. Поэтому и ищу способы увидеть, что ячейка создавалась с помощью вставки HTML-кода, а не простого ввода текста. Похоже, это кто то развлекался из консультантов в далеком 2012 году, создавая шаблон, но стало интересно
bmv98rus, Есть Excel шаблон с метками для подмены значений, например [ПОЛЕ_1] и [ПОЛЕ_2] и метод который читает значение в ячейке, дак вот, метку [ПОЛЕ_1] этот метод читает, а [ПОЛЕ_2], которое вставлено с помощью HTML-кода, он прочитать не может. Как то визуально это в шаблоне не видно, увидел только отличие, когда сохранил в XML. Для того, что бы прочитать [ПОЛЕ_2] нужно использовать другой метод. Поэтому и ищу способы увидеть, что ячейка создавалась с помощью вставки HTML-кода, а не простого ввода текста. Похоже, это кто то развлекался из консультантов в далеком 2012 году, создавая шаблон, но стало интересноTomatos
bmv98rus, lv_cell_val = lo_cell->get_attribute( name = 'value' ). по каждой ячейке пробегается методом (это код ABAP) и для всех ячеек данный метод возвращает значение, которое записано в ячейке, например, для ячейки ( 2, 2 ) вернется значение [KNAAMRU]. Но когда происходит считывание значения в ячейке (7, 2) метод возвращает пусто, тогда как там содержится строка "Период: с [ПОЛЕ 02] г. по [ПОЛЕ 03] г.", которая и должна вернуться.
Если же читать ячейку ( 7, 2 ) методом lo_cell->get_xml_element( EXPORTING name = 'html_data' insert = '' RECEIVING node = lo_html_data ). то значение выбирается. Методы указываю для наглядности, что визуально в шаблоне разницы между метками не видно, но по факту читать значение в ячейках нужно по разному
bmv98rus, lv_cell_val = lo_cell->get_attribute( name = 'value' ). по каждой ячейке пробегается методом (это код ABAP) и для всех ячеек данный метод возвращает значение, которое записано в ячейке, например, для ячейки ( 2, 2 ) вернется значение [KNAAMRU]. Но когда происходит считывание значения в ячейке (7, 2) метод возвращает пусто, тогда как там содержится строка "Период: с [ПОЛЕ 02] г. по [ПОЛЕ 03] г.", которая и должна вернуться.
Если же читать ячейку ( 7, 2 ) методом lo_cell->get_xml_element( EXPORTING name = 'html_data' insert = '' RECEIVING node = lo_html_data ). то значение выбирается. Методы указываю для наглядности, что визуально в шаблоне разницы между метками не видно, но по факту читать значение в ячейках нужно по разномуTomatos
Tomatos, Тут вопрос скорее не к excel В указанных ячейках <rs:data> <z:row Col1="[KNAAMRU]"/> </rs:data> и <rs:data> <z:row Col1="Период: с [ПОЛЕ 02] г. по [ПОЛЕ 03] г."/> </rs:data>
а вот как с этим работает Ваш парсер - это вопрос к парсеру.
Tomatos, Тут вопрос скорее не к excel В указанных ячейках <rs:data> <z:row Col1="[KNAAMRU]"/> </rs:data> и <rs:data> <z:row Col1="Период: с [ПОЛЕ 02] г. по [ПОЛЕ 03] г."/> </rs:data>
а вот как с этим работает Ваш парсер - это вопрос к парсеру.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
<Cell ss:StyleID="m530690244"><ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40">Период: с [ПОЛЕ 02]<Font html:Color="#3366FF"> </Font><Font>г. по [ПОЛЕ 03] г.</Font></ss:Data></Cell>
Я не спорю, что дело в парсере, точнее, что нужно использовать как минимум 2 парсера в текущей реализации, что бы прочитать корректно документ.
Вопрос был в том, что визуально смотря на лист Excel я не вижу различий, пока не посмотрю на конкретную ячейку с помощью value( xlRangeValueXMLSpreadsheet ). И возможно, со стороны Excel есть какая то стандартная настройка, позволяющая отобразить различия между ячейками, заполненными обычным текстом и HTML кодом. Ваш вариант value( xlRangeValueXMLSpreadsheet ) меня полностью устраивает, за что Вам большое спасибо.
bmv98rus, Используя activesheet.cells(1,1).value( xlRangeValueXMLSpreadsheet ) получаю
<Cell ss:StyleID="m530690244"><ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40">Период: с [ПОЛЕ 02]<Font html:Color="#3366FF"> </Font><Font>г. по [ПОЛЕ 03] г.</Font></ss:Data></Cell>
Я не спорю, что дело в парсере, точнее, что нужно использовать как минимум 2 парсера в текущей реализации, что бы прочитать корректно документ.
Вопрос был в том, что визуально смотря на лист Excel я не вижу различий, пока не посмотрю на конкретную ячейку с помощью value( xlRangeValueXMLSpreadsheet ). И возможно, со стороны Excel есть какая то стандартная настройка, позволяющая отобразить различия между ячейками, заполненными обычным текстом и HTML кодом. Ваш вариант value( xlRangeValueXMLSpreadsheet ) меня полностью устраивает, за что Вам большое спасибо.Tomatos
Tomatos, рад что помогло, но учтите, форматирование ячейки средствами Excel, то есть выделение части символов жирным , цветом …. короче все что относится к тексту, также преобразуется в HTML теги.
Tomatos, рад что помогло, но учтите, форматирование ячейки средствами Excel, то есть выделение части символов жирным , цветом …. короче все что относится к тексту, также преобразуется в HTML теги.bmv98rus
Замечательный Временно просто медведь , процентов на 20.