1С і excel

Багато хто знає, що Excel набагато старше 1С. На мій погляд, це дуже успішний продукт, і нарікань про нього я не чув. Excel простий і універсальний. Він здатний виконувати не тільки прості арифметичні операції, а й складні обчислення, побудову графіків і т.п. Знаю приклади, коли організації до переходу на 1С вели частина бухгалтерії в Excel. Багато і зараз паралельно використовують дві програми. У цій статті розглянемо способи обміну даними між 1С і Excel.

Таблиці 1С і Excel.

Багато користувачів для зручності роботи зберігають таблиці 1С (друковані форми) в форматі Excel (* .xls). Після чого в отриманому файлі роблять різні угруповання, сортування, обчислення і т.п. Пов'язано це з тим, що в таблицях 1С немає такого величезного функціоналу як в таблицях Excel. Але у версії 1С 8.0 є нововведення, що роблять роботу з таблицями більш комфортною.

Зауваження: В Excel роздільником дробової частини вважається символ ",". Тому перед збереженням таблиці 1С в форматі Excel замініть в ній інший роздільник (наприклад ".") На ",". Інакше в Excel з цими числами не вдасться зробити обчислення, або вони взагалі не будуть відображатися як числа. Наприклад, в таблиці 1С "15.2" відобразиться в Excel як "15.фев".

Отримання даних з Excel.

Доступ з 1С до Excel здійснюється за допомогою OLE. Наприклад, код

спроба
Ексель = СоздатьОб'ект ( "Excel.Application");
виняток

Повідомити (ОпісаніеОшібкі () + "Програма Exсel не встановлена ​​на комп'ютері!");
повернення;

дозволить нам отримати доступ через змінну "Ексель" до запущеного додатку Excel. А далі вже можна отримати доступ до книги (файлу), листу і осередку з даними. Далі приклади коду.

Відкриття книги (файла):

Книга = Ексель. WorkBooks. Open (ПутьКФайлу);

ПутьКФайлу - повний шлях до файлу книги Excel.

Вибір листа книги для роботи з ним:

Лист = Книга. WorkSheets (НомерЛіста);

Лист = Книга. WorkSheets (ІмяЛіста);

НомерЛіста - номер листа в книзі, ІмяЛіста - ім'я листа в книзі.

Отримання значення осередки листа:

Значення = Лист. Cells (НомерСтрокі. НомерКолонкі). Value;

НомерСтрокі, НомерКолонкі - номер рядка і номер колонки, на перетині яких знаходиться осередок.

Важливо: не забувайте поле виконання потрібних дій додавати код Ексель. Quit () ;. інакше запущений процес залишиться незавершеним і буде займати пам'ять і процесор комп'ютера.

Висновок даних в Excel.

Для виведення (вивантаження) даних в Excel необхідно або відкрити існуючу книгу, або

створити нову, і вибрати робочий лист для виведення даних. Відкриття існуючої книги описано вище, а для створення нової книги потрібно використовувати наступний код:

спроба
Ексель = СоздатьОб'ект ( "Excel.Application");
виняток

Повідомити (ОпісаніеОшібкі () + "Програма Exсel не встановлена ​​на комп'ютері!");
повернення;

КонецПопиткі;
Книга = Ексель. WorkBooks. Add ();

Так як при створенні книги в Excel автоматично створюються листи (Сервіс> Параметри-> Загальні-> Листів в новій книзі), то потрібно лише зробити вибір листа, з яким буде вестися робота:

Лист = Книга. WorkSheets (НомерЛіста);

або додати в книгу новий лист, якщо необхідно:
Лист = Книга. Sheets. Add ();

Наступним кроком буде встановлення значення осередки:
Лист. Cells (НомерСтрокі. НомерКолонкі). Value = Значення;

НомерСтрокі, НомерКолонкі - номер рядка і номер колонки, на перетині яких знаходиться осередок.

І в кінці потрібно зробити запис створеної книги:

спроба
Книга. SaveAs (ПутьКФайлу);
виняток

Повідомити (ОпісаніеОшібкі () + "Файл не збережено!");
повернення;

ПутьКФайлу - повний шлях до файлу книги Excel (включаючи ім'я).

Важливо: не забувайте, що в імені файлів не повинно міститися символів \ /. *. "> <|.

Часто використовувані методи для читання / установки значень в Excel.

Ексель = СоздатьОб'ект ( "Excel.Application");

Доброго вам дня! Підкажіть, будь ласка, як видалити текст з таблиці в документі MS WORD.

абзаци і підпис знаходяться в таблиці. все заповнюється, все добре, але листи різні бувають (великі і маленькі). Якщо лист велике - все нормально, якщо лист короткий, то частина абзаців доводиться міняти на порожній символ ( "") і тоді між текстом і листом з'являється велика прогалина, доводиться відкривати документ і видаляти зайві рядки. Хотілося б з'ясувати як прибрати порожні рядки з осередку таблиці. Заздалегідь вдячний.

Сам проблему і вирішив.

Якщо комусь буде корисно:

СокрП (Серед (ActiveDocument.Tables (НомерТабліци) .Cell (НомерСтрокі, НомерСтолбца) .Range.Text, 1. СтрДліна (ActiveDocument.Tables (НомерТабліци) .Cell (НомерСтрокі, НомерСтолбца) .Range.Text) -1));

Я взяв текст з осередку таблиці і функцією 1С прибрав незначні символи праворуч і привласнив значенням Text все тієї ж осередки і все стало гуд.

при виконанні видає

: Microsoft Office Excel: Не можна встановити властивість NumberFormat класу Range, не можу зрозуміти в чому справа, за Вашими рекомендаціями Ліст.Cells (НомерСтрокі, НомерКолонкі) .NumberFormat = Формат; працює, а як задати формат, "## # 0.00" я теж пробував

Встановлено Офіс - для некомм. використання.

Може тому не відкриватися Ексель?

"Невдала спроба створення об'єкта (Excel.Application)".

Добрий день. Допоможіть пожалуйста- я почала роботу в 1с з нуля (скачала з інтер) вела наименов товару, ціну та кількість в номенклатурі, як мені подивитися залишки.

Схожі статті