|
|
|
MS Office & OpenOffice | ☑ | ||
|---|---|---|---|---|
|
0
zladenuw
06.09.12
✎
11:44
|
Можно ли прочитать область листа в Опене.
Для мс делал так ExcelФайл = ПолучитьCOMОбъект(мВыбФайл); Состояние("Обработка файла Microsoft Excel..."); // Читаем данные первого листа книги Попытка ExcelЛист = ExcelФайл.Sheets(1); Исключение Предупреждение("Файл открыт, закройте его!!!",,"ОШИБКА"); Возврат; КонецПопытки; // RowCount = 6500; ВсегоКолонок = 3; НомерПервойКолонки = 1; // СоздатьТЧДанных(); //Обратаем всю область данных Область = ExcelЛист.Range(ExcelЛист.Cells(1,НомерПервойКолонки), ExcelЛист.Cells(RowCount,ВсегоКолонок)); Данные = Область.Value.Выгрузить(); //Создание пустых строк по RowCount Для Счетчик = 1 По RowCount Цикл НоваяСтрока = ТЧДанных.Добавить(); КонецЦикла; //Заполнение Тч данными Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЧДанных.ЗагрузитьКолонку(Данные[Счетчик], "Колонка"+Счетчик); КонецЦикла; Создать(); ExcelФайл.Close(); |
|||
|
1
zladenuw
06.09.12
✎
11:53
|
||||
|
2
zladenuw
06.09.12
✎
12:17
|
Ура. получилось
Перем MassivParametrov; функция URLИзИмениФайла(Знач ИмяФайла) ИмяФайла = СтрЗаменить(ИмяФайла," ","%20"); ИмяФайла = СтрЗаменить(ИмяФайла,"\","/"); Возврат "file:/" + "/localhost/" + ИмяФайла; Конецфункции Функция ПрочитатьФайл(ИмяФайла) Экспорт ФайлОбмена = Соединение.LoadComponentFromURL(URLИзИмениФайла(ИмяФайла), "_blank", 0, MassivParametrov); ТекущийЛист = ФайлОбмена.sheets.getByIndex(1); //лпМассив = ВернутьМассивДиапазонДляOpenOffice(); begCol = 0; //начальная колонка диапазона begRow = 0; //нач ячейка endCol = 3; endRow = 20; Range = ТекущийЛист.getCellRangeByPosition(begCol, begRow, endCol, endRow); лпМассивCOM = Новый COMSafeArray("VT_VARIANT", Range.Columns.Count, Range.Rows.Count); Состояние(НСтр("ru=""Получение диапазона данных из файла..."";uk=""Отримання діапазону даних з файлу...""")); лпМассивCOM = Range.getDataArray(); лпПростойМассив = лпМассивCOM.Выгрузить(); КонецФункции // ПрочитатьФайл() //Подключение к серверу автоматизации OpenOffice Попытка 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"); Соединение = OpenOffice.createInstance("com.sun.star.frame.Desktop"); Исключение Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice не установлена на данном компьютере!"); КонецПопытки; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |