|
Как получить ширину колонки OpenOffice? | ☑ | ||
---|---|---|---|---|
0
ferry
04.10.12
✎
14:56
|
Для экселя было ExcelЛист.Columns(Column).ColumnWidth
А для опенофиса? Файл открываю вот таким вот образом OpenOffice = Новый COMОбъект("com.sun.star.ServiceManager"); scr = Новый COMОбъект("MSScriptControl.ScriptControl"); scr.language = "javascript"; scr.eval("MassivParametrov = new Array()"); MassivParametrov = scr.eval("MassivParametrov"); scr.AddObject("OpenOffice", OpenOffice); scr.eval("MassivParametrov[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')"); scr.eval("MassivParametrov[0].Name='Hidden'"); scr.eval("MassivParametrov[0].Value=true"); Desktop = OpenOffice.createInstance("com.sun.star.frame.Desktop"); ИмяФайла = СтрЗаменить(ИмяФайла," ","%20"); ИмяФайла = СтрЗаменить(ИмяФайла,"\","/"); ФайлОбмена = Desktop.LoadComponentFromURL("file:/" + "/localhost/"+ИмяФайла, "_blank", 0, MassivParametrov); И заодно как получить количество колонок и строк? ТекущийЛист = ФайлОбмена.sheets.getByIndex(НомерЛистаExcel-1); ТекущийЛист.rows.count - 1; ТекущийЛист.columns.count - 1; возвращает 65536 и 1024 соответсвенно |
|||
1
zladenuw
04.10.12
✎
14:58
|
CellCursor = ТекущийЛист.createCursor();
CellCursor.gotoStartOfUsedArea(Ложь); CellCursor.gotoEndOfUsedArea(Истина); CellRangeAddress = CellCursor.getRangeAddress(); begCol = CellRangeAddress.StartColumn; //начальная колонка диапазона begRow = CellRangeAddress.StartRow; //нач ячейка endCol = CellRangeAddress.EndColumn; endRow = CellRangeAddress.EndRow; Range = ТекущийЛист.getCellRangeByPosition(begCol, begRow, endCol, endRow); |
|||
2
zladenuw
04.10.12
✎
14:59
|
||||
3
zladenuw
04.10.12
✎
15:04
|
единственность что не нравилось по началу. что при получение диапазона получаем массив строк, а в ёкселе массив колонок.
|
|||
4
ferry
04.10.12
✎
15:08
|
спасибо...в принципи дальнейшее использование у меня такое
КоличествоСтрокНаЛисте = endRow; КоличествоКолонокНаЛисте = endCol; Для ТекСтрокаДок = begRow По КоличествоСтрокНаЛисте Цикл Для НомерСтолбца = begCol По КоличествоКолонокНаЛисте Цикл ТабличныйДокумент.Область("R" + Формат(ТекСтрокаДок+1, "ЧГ=") +"C" + Формат(НомерСтолбца+1, "ЧГ=")).Текст = ТекущийЛист.getCellByPosition(НомерСтолбца, ТекСтрокаДок).Value; КонецЦикла; КонецЦикла; вот бы еще ширину...но щас попробую на форуме посмотреть...еще раз спасибо |
|||
5
ferry
04.10.12
✎
15:13
|
:(
я была на этом форме...ширину вроде взяла как они сказали ТабличныйДокумент.Область("C" + Формат(НомерСтолбца+1, "ЧГ=")).ШиринаКолонки = ТекущийЛист.getCellByPosition(НомерСтолбца, 0).getColumns.getByIndex(0).Width; но получила ругань: Ошибка при получении значения атрибута контекста (getColumns): Метод не найден что-то сделала не так? |
|||
6
zladenuw
04.10.12
✎
15:15
|
getColumns()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |