[Решено] Формат данных ячейки

Автор Massaraksh7, 23 апреля 2024, 08:50

0 Пользователи и 1 гость просматривают эту тему.

Massaraksh7

Вроде бы, прописал и проверил все нужные мне опции по приёму/передаче данных на стороне LibreOffice, вот код, если что-то не оптимально сделал, поправьте:
sheet.getCellRangeByName("B3").Value = 1                                #---Записать число
ocell.setString("XXX XXX XXX XXX")                                      #---Записать строку
ocell.CellBackColor=255*256*256+255*256                                 #---Цвет ячейки
ocell.HoriJustify=hcenter                                               #---Горизонтальное выравнивание
ocell.VertJustify=vcenter                                               #---Вертикальное выравнивание
ocell.IsTextWrapped=True                                                #---Перенос по словам
ocell.RotateAngle=9000                                                  #---Поворот надписи

aBorder=xcell.getPropertyValue('BottomBorder')                          #---Граница 1 способ
aBorder.LineWidth=10
xcell.setPropertyValue('BottomBorder',aBorder)

border_prop = uno.createUnoStruct("com.sun.star.table.BorderLine2")     #---Граница 2 способ
border_prop.LineWidth = 50
xcell.setPropertyValue("LeftBorder", border_prop)

fcell.setFormula("=B3+B5")                                              #---Формулы
ecell.setFormula('=CEILING(2)')

xcell.NumberFormat=2                                                    #---Формат ячейки

StyleFamilies = doc.StyleFamilies                                       #---Шрифт ячейки
CellStyles = StyleFamilies.getByName("CellStyles")
NewStyle = doc.createInstance("com.sun.star.style.CellStyle")
CellStyles.insertByName("BoldStyle", NewStyle)
NewStyle.ParentStyle = "Default"
CellStyle = CellStyles.getByName("BoldStyle")
CellStyle.CharColor = 255*256*256
CellStyle.CharWeight = bold
CellStyle.CharFontName = "Courier"
CellStyle.CharHeight = 12
ecell.CellStyle = "BoldStyle"

sheet.getCellRangeByName("A4:B5").merge(True)                           #---Объединить ячейки

an = ucell.getAnnotation()                                              #---Чтение примечания
s = an.getString()
ucell.setString(s)

sheet.Annotations.insertNew(acell.CellAddress,"123")                    #---Запись примечания

mas = [[1,2,3],['four',5,6],['7','8','nine']]                           #---Запись/чтение массива данных в Range
rcell.DataArray = mas
mas=rcell.DataArray
Остался последний вопрос - NumberFormat. Не нашёл, как можно проверить список существующих форматов и создать свой формат

Massaraksh7

#1
Вопрос закрыт.
function getnumberformat(dig) as Long
locale = doc.getPropertyValue("CharLocale")
if dig = 0 then
     strfmt = "0"
else
     strfmt = "0,"
     for i=1 to dig
        strfmt = strfmt & "0"
     next i
endif
fmt = doc.NumberFormats.queryKey(strfmt, locale ,False)
if fmt<0 then
   doc.NumberFormats.addNew(strfmt, locale)
   fmt = doc.NumberFormats.queryKey(strfmt, locale ,False)
endif   
getnumberformat = fmt
end function