Чтение/Запись документа Excel 2007 без офиса, без ВК. (с примером для 7.7, 8.1 и 8.2 на управляемых формах) для 1С


Написано в ознакомительных целях, по аналогии с //infostart.ru/projects/2365/

Использование (1С 8.x): вставляете обработку в конфигурацию и используете ее методы:

Процедура ОткрытьФайлЭкзекль2007(ПутьКФайлу)
    Экзель = Обработки.Excel2007.Создать();
 
    Если НЕ Экзель.ОткрытьФайл(ПутьКФайлу) Тогда
        Предупреждение("Файл " + ПутьКФайлу + " не открыт!");
        Возврат;
    КонецЕсли;
 
    Если НЕ Экзель.ОткрытьЛист(1) Тогда
        Предупреждение("Лист 1 не открыт!");
        Возврат;
    КонецЕсли;
 
    Сообщить("Количество строк: " + Экзель.Лист.Количество());
    Сообщить("Количество колонок: " + Экзель.Лист.Колонки.Количество());
КонецПроцедуры

Процедура СоздатьФайлЭкзель2007(ПутьКФайлу)
    //заполняем ТЗ
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("К1");
    ТЗ.Колонки.Добавить("К2");
 
    Стр = ТЗ.Добавить();
    Стр.К1 = "Номенклатура";
    Стр.К2 = "Количество";
 
    Стр = ТЗ.Добавить();
    Стр.К1 = "Хлеб";
    Стр.К2 = 10;
 
    Стр = ТЗ.Добавить();
    Стр.К1 = "Мясо";
    Стр.К2 = 14;
 
    //сохраняем тз в экзель
    Экзель = Обработки.Excel2007.Создать();
    Экзель.Лист = ТЗ;
    Экзель.Записать(ПутьКФайлу);
 
КонецПроцедуры

Использование (1С 7.7): добавляете из демо-базы все из глобального модуля в свой, файл шаблона кладете в папку с конфигурацией и используете по примеру:

Процедура ОткрытьФайлЭкзекль2007(ПутьКФайлу)
    Если экзель_ОткрытьФайл(ПутьКФайлу) = 0 Тогда
        Предупреждение("Файл " + ПутьКФайлу + " не открыт!");
        Возврат;
    КонецЕсли;
 
    Если экзель_ОткрытьЛист(1) = 0 Тогда
        Предупреждение("Лист 1 не открыт!");
        Возврат;
    КонецЕсли;
 
    Сообщить("Количество строк: " + экзель_Лист.КоличествоСтрок());
    Сообщить("Количество колонок: " + экзель_Лист.КоличествоКолонок());
    Сообщить("***");
 
    //выведем 1 строку
    Для сч = 1 По экзель_Лист.КоличествоКолонок() Цикл
        Сообщить(экзель_Лист.ПолучитьЗначение(1, сч));
    КонецЦикла;
КонецПроцедуры
//*******************************************
Процедура СоздатьФайлЭкзель2007(ПутьКФайлу)
    //заполняем ТЗ
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("К1");
    ТЗ.НоваяКолонка("К2");
 
    ТЗ.НоваяСтрока();
    ТЗ.К1 = "Номенклатура";
    ТЗ.К2 = "Количество";
 
    ТЗ.НоваяСтрока();
    ТЗ.К1 = "Хлеб";
    ТЗ.К2 = 10;
 
    ТЗ.НоваяСтрока();
    ТЗ.К1 = "Мясо";
    ТЗ.К2 = 14;
 
    //сохраняем тз в экзель
    экзель_Лист = ТЗ;
    Если экзель_Записать(ПутьКФайлу) = 1 Тогда
        Сообщить("Создан " + ПутьКФайлу);
        ЗапуститьПриложение(ПутьКФайлу);
    КонецЕсли;
КонецПроцедуры
https://infostart.ru/public/19139/

Скачать:
19139_1_Chtenie_Zapis_dokumenta_Excel_2007_bez_ofisa__bez_VK._(s_primerom_dlya_7.7__8.1_i_8.2_na_upr...
19139_2_Chtenie_Zapis_dokumenta_Excel_2007_bez_ofisa__bez_VK._(s_primerom_dlya_7.7__8.1_i_8.2_na_upr...
19139_CHtenie Zapis dokumenta Excel 2007 bez ofisa, bez VK.zip