1с не видит эксель

Обновлено: 07.07.2024

После манипуляции с файлом необходимо его закрыть. В противном случае он останется захваченным в системе, и мы не сможем его использовать в других приложениях.

Клиент-Серверный вариант в управляемых формах.

1. Считываем данные из файла в массив из структур и затем этот массив передаем на сервер для дальнейших манипуляций с данными.

2-ой способ - это передать файл Excel на сервер через хранилище данных и далее работать с ним уже на сервере.

Очень часто приходится работать с очень большими файлами Excel, и его обработка путем перебора строк занимает огромное количество времени.

В таких случаех удобно в одно действие загрузить всю таблицу в массив и в потом работать уже непосредственно с массивом.

На выходе получаем двумерный массив, который содержит все данные указанного листа Excel

Полезные функции при работе с Excel:

Устанавливает видимость Excel при работе
Добавление новой книги в файл Excel
Сохранение книги Excel
Добавление нового листа к книге
Переименование листа
Изменение маштаба листа
Изменение ориентации листа
Отступы листа
Обращение к ячейки
чтение/запись
Обращение к области ячеек
Очень часто при чтении или записи значений в Excel ставятся лишние пробелы в числе, например, вместо 1502 он читает как 1 502 и в дальнейшем это значение не приводится к числу. Эту проблему можно решить заменой.
Объединение ячеек
Работа с именованными ячейками в Excel
Удаление ячейки
Удаление области ячеек
Обращение к строке
Изменение ширины колонки
Обращение к колонке
Удаление Строки
Фон ячейки / области / Строки /
Функция переводит цвет из формата RGB в формат Excel
Управление шрифтом в ячейки/строке/области
Р азрешает переносить по словам в ячейке
Управление рамкой ячейки
Устанавливаем формат ячейки
Формула в ячейки
Формула в ячейки
Формула в ячейки
Формула в ячейки
Функция для получения ширины колонки Excel
Спасибо пользователю goodwill
Разрешить перенос слов в ячейке
Спасибо пользователю roofless
Группировки данных на листе
Спасибо пользователю dr-wit, ignor

При работе с Excel мы оперируем столбцами как числом (Например, 1 столбец), а у Excel адресация столбцов производится с помощью символов. И когда нам нужно отредактировать формулу, то нам нужно номер столбца преобразовать в символ. В таких случаях вам пригодится эта функция.

2. Работа с Excel через ТабличныйДокумент 1С

С помощью данного метода можно и загружать из Excel и выгружать в Excel. Но на мой взгляд этот метод идепально подходит когда вам необходимо посто сохранить информацию в Excel без дальнейшей манипуляции.

Итак, приступим: загрузка из Excel:

1. Загружаем файл Excel в табличный документ

2. Производим манипуляции уже с ТабличнымДокументом

Давайте теперь разберем сохранение в Excel с помощью данного метода:

Тут все очень просто сначала мы формируем обычный Табличный документ и затем записываем его в Excel

2. Работа с Excel ADODB

Выражаю особую благодарность коллеги Fragster за хороший комментарий

Данный метод позволяет работать с Excel через ODBC и имеет ряд преимуществ:

  1. Не требует установки самой Excel, необходима лишь установить ODBC. Но как правило он уже установлен. Это особенность позволяет работать на стороне сервера без дополнительных установок Excel.
  2. Позволяет работать с таблицой Excel как с БД и строить к ней запросы на T-SQL. Таким образом мы можем делать отборы еще на этапе чтения данных и другие преимущества что дает Т-SQL. Что на мой взгляд огромный плюс.

Подключение к ADO

Отключение от ADO


Выполнение запроса

Пример запроса:

Запись в Excel тоже производится в виде запроса:

Хочу отметить что наименование полей производится по первой строке в таблице


ADODB предоставляет ряд объектов, с которыми мы работаем

ADODB.Recordset

В файле продемонстрированны оба варианта работы с запросами.

На этом пока все. По возможности буду дополнять статью :)

В архиве находится обработка, которая демонстрирует все описанные и другие возможности при работе с Excel.

Управляемые формы. MS SQL. И база и эксель физически лежат на одной машине. Но эксель упорно не открывается, мол 1с не видит его. COMОбъект на клиенте вроде как нельзя создавать. Как боритесь с этой ситуевиной?

Добавлено через 38 минут
Нашел на инфостарте способ, как сделать через каталог временных файлов, но оказывается на папку пользователя USR1CV82 нужны права админа, и я в растерянности.

Как открыть новый эксель файл?
Как через код вба открыть нужный файл экселя?

Необходимо открыть и вернуть файл эксель из аксесс
Добрый день! Подскажите пожалуйста как реализовать такую нехитрую вещь - для автоматического.

Чем открыть csv файл если в нем 500000 строк, а в эксель файле 65536
чем открыть csv файл если в нем 500000 строк, а в эксель файле 65536

Volexovich, чуть ли не первым делом - существет Volexovich, да открывается без каких либо ошибок и запинок

Странно это, а точно у тебя Процедура ОбработатьДанные(ИмяФайла) выполняется на сервере? Перед созданием объекта экслель, проверь что тебе вернет КаталогВременныхФайлов().

Добавлено через 4 минуты
Ошибка открытия будет?

Добавлено через 16 минут
Правильно ли я понимаю ситуацию, что с правами USR1CV82 на Эксель ты уже баловался? _ЕГОР_, Вмешаюсь. Попробуй открыть этот файл по указанному пути из командной строки Вин, без 1с. Откроется? Хотя бы будет уверенность, что путь задан верно и доступ к файлу есть Так у тебя ексель открыта просто))) закрой файл на компе))) Volexovich, точно на сервере(скрин). Файл существует истина. В ИмяФайла лежит путь к экселю, если его скопировать и пройти по нему то открывается эксель. Нет у меня прав играться с USR1CV82. Да и для пользователя которого делаю врятли кто даст разрешения менять их.
polax, ну я собственно так и делаю вроде - копирую из отладки путь, вставляю его в поисковик виндовс и он открывает мне мой эксель)
slypower, на премию года метишь? закрыт он) _ЕГОР_, Не в поисковик. Файл он может и увидит а вот прав на открытие не хватит. Лучше открыть из командной строки. Хотя. по ошибке не видит файл, про права ни слова. Но я бы все-равно проверил из командной строки

Тогда странно, что не вылетает на этапе создания объекта Эксель. USR1CV82 не имеет прав пользователя, соответственно ему недоступно окружение пользователя, он вообще должен ругаться на создание сом объекта. Не поковыряв права USR1CV82 врядли что то получится. Меня и смутил то что ты можешь создать объект, но открыть файл уже не можешь. Скорее всего это связано с тем, что Эксель пишет куда нибудь временные данные при открытии файла и соответсвенно USR1CV82 прав на это место не имеет, отсюда и затык.

Добавлено через 1 минуту
PS Я с 83 не особо работаю сейчас, но там вроде была возможность грузить в табличный документ прямо из файла эксель, помотри в этом направлении, может тебе этого хватит.

Существует несколько способов программной работы с файлами Excel из 1С. Каждый из них имеет свои преимущества и недостатки.

Обмен через табличный документ

Данный способ простой. Его суть заключается в том, что объект ТабличныйДокумент имеет методы:

  • Записать (< ИмяФайла >, < ТипФайлаТаблицы >) для выгрузки данных в файл;
  • Прочитать (< ИмяФайла >, < СпособЧтенияЗначений >) для загрузки данных из файла.

Внимание!

Метод Записать () доступен как на клиенте, так и на сервере. Метод Прочитать () доступен только на стороне сервера. Необходимо помнить об этом
при планировании клиент-серверного взаимодействия.

Рассмотрим пример сохранения табличного документа в файл. Необходимо любым способом создать и заполнить объект ТабличныйДокумент, а выгрузка в файл осуществляется всего лишь одной строкой:

ТабДок . Записать ( ПутьКФайлу , ТипФайлаТабличногоДокумента . XLSX );

Загрузка из файла осуществляется также достаточно просто:

ТабДок = Новый ТабличныйДокумент ;
ТабДок . Прочитать ( ПутьКФайлу , СпособЧтенияЗначенийТабличногоДокумента.Значение );

Обмен через OLE

Обмен через технологию OLE automation, пожалуй, самый распространенный вариант программной работы с файлами Excel. Он позволяет использовать весь функционал, предоставляемый Excel, но отличается медленной скоростью работы по сравнению с другими способами. Для обмена через OLE требуется установка MS Excel:

  • На компьютере конечного пользователя, если обмен происходит на стороне клиента;
  • На компьютере сервера 1С:Предприятие, если обмен происходит на стороне сервера.

Пример выгрузки:

Примеры чтения:

Для обхода всех заполненных строк листа Excel можно использовать следующие приемы:

Вместо последовательного обхода всех строк листа можно выгрузить все данные в массив и работать с ним. Такой подход будет быстрее при чтении большого объема данных:

ВсегоКолонок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Column ;
ВсегоСтрок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Row ;

Область = Лист . Range ( Лист . Cells ( 1 , 1 ), Лист . Cells ( ВсегоСтрок , ВсегоКолонок ));
Данные = Область . Value . Выгрузить ();

В таблице ниже приведены наиболее востребованные свойства и методы для работы с Excel через OLE:

Для того, чтобы узнать какое свойство нужно менять или какой метод вызвать можно воспользоваться макросами Excel. Если записать макрос с требуемыми действиями, то после можно посмотреть программный код на VBA записанного макроса.

Использование COMSafeArray

Обмен через ADO

Файл Excel при обмене через ADO представляет собой базу данных, к которой можно обращаться при помощи SQL-запросов. Установка MS Excel не требуется, но обязательно наличие драйвера ODBC, при помощи которого будет осуществляться доступ. Используемый драйвер ODBC определяется при указании строки соединения к файлу. Обычно требуемый драйвер уже установлен на компьютере.

Обмен через ADO заметно быстрее обмена через OLE, но при выгрузке нет возможности использовать функционал Excel для оформления ячеек, разметки страниц, задания формул и т.д.

Пример выгрузки:

Для создания нового листа и формирования его структуры можно воспользоваться объектами ADOX.Catalog и ADOX.Table. В этом случае код примет вид:

В приведенном примере в методе

во втором параметре указывается тип колонки. Параметр необязательный, вот некоторые значения типа колонки:

Пример чтения:

В строке соединения параметр HDR определяет как будет восприниматься первая строка на листе. Возможны варианты:

В приведенных примерах рассмотрено лишь несколько объектов ADO. Объектная модель ADO состоит из следующих объектов:

  • Connection;
  • Command;
  • Recordset;
  • Record;
  • Fields;
  • Stream;
  • Errors;
  • Parameters;
  • Properties.

Выгрузка без программирования

Для сохранения данных из 1С в Excel не всегда целесообразно прибегать к программированию. Если в режиме Предприятия пользователь может отобразить требуемые для выгрузки данные, то, их возможно сохранить в Excel без программирования.

Сохранение табличного документа 1С

В открывшемся окне требуется выбрать каталог, имя и формат сохраняемого файла.

Для сохранения данных динамических списков (например, списка номенклатуры) необходимо:

Сохранение динамического списка

Остались вопросы?
Спросите в комментариях к статье.

Как оказалось, ситуация, когда листы в Excel не отображаются, далеко не редкость. Речь идет о маленьких ярлыках в нижней части книги, клик по которым инициирует переход по вкладкам. Мы не поленились и составили полный перечень причин:

Теперь вы знаете, почему листы в Эксель не отображаются на привычном месте (внизу над строкой состояния). Далее, рассмотрим, как решить каждую из проблем.

Включаем отображение через настройки

Если у вас в документе Эксель программа не показывает листы (внизу, в левом углу), проверьте настройки. Возможно, ярлыки не отображаются, потому что данный пункт параметров отключен.

  • Откройте книгу Excel;
  • Щелкните по разделу «Файл» и перейдите к пункту «Параметры»;


  • Далее зайдите в блок «Дополнительно»;
  • Промотайте до «Параметры отображения книги»;
  • Поставьте галку в поле «Показывать ярлычки листов».
  • Не забудьте нажать «ОК»;
  • Готово, проверьте отображаются ли ярлычки теперь.


По частоте встречаемости, когда в книге Excel не видно листов, данное объяснение – самое популярное.

Убираем полосу прокрутки

Иногда вкладки листов в Экселе отображаются, но их, просто-напросто, не видно. Их заслонила горизонтальная полоса прокрутки. Это специальный инструмент, предназначенный для навигации по документу слева направо, и наоборот.

  1. Полоса прокрутки находится над строкой стояния, в одной плоскости с ярлычками;
  2. Слева от ее начала расположены 3 вертикальные точки;
  3. Нажмите на них и потяните вправо;
  4. Полоса прокрутки сократится, а странички покажутся;
  5. Готово. Выставьте удобный размер и продолжайте работу.


Возвращаем скрытые ярлычки

Если вы получили Эксель файл, в котором не видно листов книги, возможно, пользователь их скрыл. Причины разбирать не будем, вы и сами могли это сделать совершенно случайно. Вот как можно скрывать или показывать вкладки:

  • Щелкните правой кнопкой мыши на выбранном листе и выберите команду «Скрыть».


  • Чтобы увидеть перечень скрытых страниц, щелкните на любой из доступных правой кнопкой мыши и выберите значение «Показать».
  • Отобразится список. Вам нужно определить нужную страничку и нажать «ОК»;
  • Готово. Ярлычок страницы снова отображается в книге.


Восстанавливаем удаленные страницы

Вариант, что листы в Экселе не открываются и не отображаются, потому что вы их удалили, самый печальный. Полной гарантии возврата данных нет, но попытаться однозначно стоит.

  1. Если вкладки пропали только что, можно попробовать закрыть документ, не сохраняя изменения. В этом случае вы потеряете все данные, внесенные после последнего сохранения. Зато удаленные листочки отобразятся;
  2. Если вы уже успели сохраниться или у вас включено автосохранение с частым интервалом, откатите к предпоследней версии файла:
  • Щелкните по вкладке «Файл»;
  • Перейдите в «Сведения» и найдите раздел «Управление книгой»;
  • Выберите из списка автосохранений подходящий по времени (примерный, в котором ярлычки отображались). Все изменения, внесенные в документ после данного сэйва, увы, потеряются. Как вариант, перед откатом сохраните копию текущего файла. Потом, когда вернете вкладки, перенесете потерянные материалы банальным копипастом.
  • Когда найдете версию Эксель, которая видит листы, не забудьте ее сохранить, сделав последней в списке автосэйвов.


На всякий случай, чтобы снова случайно не удалить вкладки, ознакомьтесь, как это делается:

  1. нужную страницу выделяют;
  2. щелкают по ней правой кнопкой;
  3. выбирают команду «Удалить»;
  4. подтверждают задачу клавишей «ОК».

Подгоняем оптимальный размер окна

Первым ответом на вопрос «почему в Экселе внизу не видно листов», техподдержка Microsoft Office выдает «неправильные размеры окна». Или окон, если пользователь работает в нескольких одновременно. Возможно, края одного рабочего поля закрывают часть другого. Как раз ту, где находятся ярлыки.

Захватите верхнюю часть окошка и попробуйте ее немного сдвинуть. Проверьте, отображаются ли листы на нижнем поле. Если появились, дело, действительно, в перекрытии. Можете самостоятельно разместить окна так, как вам угодно. Или упорядочить их, воспользовавшись специальным инструментом Excel:

  • Зайдите в любую из открытых книг, в раздел «Вид»;
  • Выберите «Упорядочить все»;


  • Найдите значение «Рядом»;
  • Кликните по «ОК».


Все открытые окошки красиво упорядочатся по экрану ровными прямоугольниками.

«Достаем из плена» супер скрытые листы

Не все знают, что некоторые вкладки в Excel можно помещать категорию «супер скрытых». Понятное дело, Excel такие листы не отображает. Однако, через режим разработчика и редактор макросов, спрятанные странички можно вытащить наружу.

Итак, если вкладки в Excel не видны, несмотря на все попытки их отобразить, сделайте следующее:


  • В поле с перечнем основных вкладок найдите пункт «Разработчик» и поставьте на нем галку;
  • «ОК»;
  • Раздел «Разработчик» отобразится справа от раздела «Вид»;


  • Снова откройте параметры, перейдите в «Центр управления безопасностью»;
  • Зайдите во внутренние параметры данного блока;


  • В пункте «Настройки макросов» поставьте маркер в строке «Включить все» и ниже галку в «Доверять доступ к модели проектов VBA»;



  • «ОК»;
  • Находясь в книге, щелкните комбинацию кнопок Alt+F11;
  • Откроется Visual basic редактор;
  • Слева найдите поле с перечнем открытых книг. Под каждой будет приведен перечень листов;
  • Выберите тот, который не отображается, выделите его;


  • В поле ниже (настройки этого листа) найдите пункт «Visible» (обычно, самый последний);
  • Смените значение с «Hidden» или «Veryhidden» на «Visible»

Сохраняться не нужно, VBA все действия запоминает автоматом. Закрывайте редактор макросов и проверяйте, отображает ли программа странички книги теперь.

Ну что же, вы убедились, если ваш Excel не показывает листы, переживать не стоит. Проблема решаема, чаще всего, в 5 кликов. Надеемся, мы смогли вам помочь.

Читайте также: