Страница 53 из 61
libxlsxwriter for Clarion
Добавлено: 13 Август 2020, 16:34
vic7tar
RaFaeL, наверное забыли добавить format.set_diag_border /_type /_color?
libxlsxwriter for Clarion
Добавлено: 13 Август 2020, 17:11
RaFaeL
А это есть в оригинальной библиотеке?
libxlsxwriter for Clarion
Добавлено: 13 Август 2020, 19:12
vic7tar
Извиняюсь, почему-то забрёл на описание XlsxWriter.
libxlsxwriter for Clarion
Добавлено: 13 Август 2020, 20:06
RaFaeL
vic7tar писал(а): ↑13 Август 2020, 19:12
Извиняюсь, почему-то забрёл на описание XlsxWriter.
Создайте issue для libxlsxwriter возможно добавят и туда
libxlsxwriter for Clarion
Добавлено: 19 Август 2020, 16:09
vic7tar
Всё-таки функции format_set_diag_border|color|type уже имеются в вашей версии 1.3.3
Ещё обнаружил, что добавлена интересная функция - worksheet_write_rich_string().
libxlsxwriter for Clarion
Добавлено: 19 Август 2020, 22:07
RaFaeL
Про диагональные бордеры сейчас уточню, может просто забыли в документации
Про rich string спрашивал тут
пару лет назад, никому не нужно было )
libxlsxwriter for Clarion
Добавлено: 19 Август 2020, 22:25
vic7tar
RaFaeL писал(а): ↑19 Август 2020, 22:07
Про диагональные бордеры сейчас уточню, может просто забыли в документации
Да, забыли.
RaFaeL писал(а): ↑19 Август 2020, 22:07
Про rich string спрашивал тут пару лет назад, никому не нужно было )
Ну не знаю, если будет свободное время, может добавить? Лично мне пригодилась бы.
libxlsxwriter for Clarion
Добавлено: 19 Август 2020, 22:47
RaFaeL
Добавил диагонали, пробуйте
libxlsxwriter for Clarion
Добавлено: 19 Август 2020, 23:35
vic7tar
Посмотрел, всё нормально, спасибо.
libxlsxwriter for Clarion
Добавлено: 25 Август 2020, 22:54
vic7tar
RaFaeL, похоже в
xlsxwriter.WriteUrl() закралась небольшая неточность, связанная с с использованием
workbook_get_default_url_format():
Код: Выделить всё
xlsx.ClearFormat()
xlsx.Format.Border.Format = XLSX:Border_Thick
xlsx.Format.Align = XLSX:ALIGN_CENTER
xlsx.Format.AlignV = XLSX:ALIGN_VERTICAL_CENTER
xlsx.SetFormat()
xlsx.Merge(3, 3, 5, 5)
xlsx.WriteUrl(3, 3, 'http://www.clarionlife.net', 'Clarionlife') ! 'Clarionlife' не центрируется
! xlsx.WriteUrl(3, 3, 'http://www.clarionlife.net') ! всё нормально
libxlsxwriter for Clarion
Добавлено: 26 Август 2020, 11:03
RaFaeL
Но если переделать на использование текущего формата, то пропадет стандартное оформление ссылок (подчеркивание, синий текст) и его придется каждый раз проставлять руками. Или какое должно быть поведение? Подразумевалось, что если вам надо с оформлением, то вы используете последовательно WriteUrl и WriteString, а упрощенный метод только для добавления ссылки со стандартным оформлением
libxlsxwriter for Clarion
Добавлено: 26 Август 2020, 13:46
vic7tar
Получается, что
xlsxwriter.WriteUrl(row_, col_, url_, string_) даёт голую ячейку с гиперссылкой (да ещё с дефолтным выравниванием) без возможности использования всяких прибамбасов форматирования.
В сишной структуре default_url_format все значимые поля нулевые, кроме:
font_size 11
underline 1
font_family 2
theme 10
hyperlink 1
locked 1
А если вот такой вариант? :
Код: Выделить всё
xlsxwriter.WriteUrl PROCEDURE(LONG row_,SHORT col_,STRING url_,<STRING string_>)
CODE
SELF.ToUTF8(url_)
ret# = worksheet_write_url(SELF.ActiveSheet,row_-1,col_-1,SELF.cstr,SELF.ActiveFormat)
if ~omitted(5)
activeformat#=SELF.ActiveFormat
self.Format.FontName = 'Calibri'
self.Format.FontSize = 11
self.Format.FontColor = COLOR:Blue
self.Format.FontStyle = FONT:Underline
self.SetFormat()
!SELF.ActiveFormat=workbook_get_default_url_format(SELF.Workbook)
ret#=SELF.WriteString(row_,col_,string_)
SELF.ActiveFormat=activeformat#
end
return ret#
libxlsxwriter for Clarion
Добавлено: 26 Август 2020, 16:05
RaFaeL
vic7tar писал(а): ↑26 Август 2020, 13:46
Получается, что xlsxwriter.WriteUrl(row_, col_, url_, string_) даёт голую ячейку с гиперссылкой (да ещё с дефолтным выравниванием) без возможности использования всяких прибамбасов форматирования.
Да. Вам надо писать
Код: Выделить всё
xlsx.ClearFormat()
xlsx.Format.Border.Format = XLSX:Border_Thick
xlsx.Format.Align = XLSX:ALIGN_CENTER
xlsx.Format.AlignV = XLSX:ALIGN_VERTICAL_CENTER
xlsx.SetFormat()
xlsx.Merge(3, 3, 5, 5)
xlsx.WriteUrl(3, 3, 'http://www.clarionlife.net')
xlsx.WriteString(3, 3, 'Clarionlife')
libxlsxwriter for Clarion
Добавлено: 26 Август 2020, 16:50
vic7tar
Ну да, этот вариант и использовал.
Но встал вопрос, а почему-бы не использовать string_ и что-бы всё было красиво?
libxlsxwriter for Clarion
Добавлено: 26 Август 2020, 16:57
RaFaeL
Переделаю попозже. Дефолтный формат будет применяться, только если не установлен никакой