Как сделать экспорт в excel?

Реальное программирование: экспорт и импорт данных из/в Excel

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

В рамках этой серии я буду затрагивать в основном вопросы программирования на C#, PHP, JS (jQuery), AS, работы с БД MySQL и всевозможных сопутствующих технологий. В общем, веб и базы данных.


Экспорт данных в Excel

Довольно часто программистам ставят задания по написанию программ автоматического обновления баз данных с возможностями импорта/экспорта Excel-файлов. Нужно сказать, что несмотря на множество предлагаемых в интернете решений, подводных камней на этапе реализации именно импорта/экспорта можно встретить довольно много. Также стоит отметить, что некоторые из вариантов хоть и дают ожидаемый результат, но имеют некоторые ограничения, например, по тем же версиям Microsoft Office и форматам (только xls и т.п.), а экспорт в Excel-файл при большом объеме данных может занять довольно продолжительное время. Например, та же многими любимая библиотека + подключаемый программный блок ExcelXMLWriter при создании xls-файла с большим объемом данных требует длительное время на произведение расчетов (десятки минут и более).

Я прошел довольно интересный путь с использованием различных реализаций импорта/экспорта в Excel и, в конце концов, остановился на наиболее приемлемом для меня варианте, а именно, сохранение результатов работы своих программ в текстовый формат TSV. Это специальный формат для хранения баз данных, который довольно часто используется в различного рода ПО, именно там я его и подсмотрел. В качестве символьного разделителя в TSV используется символ табуляции, записи в полях могут заключаться в двойные или одинарные кавычки (хотя это может и не использоваться), а одна строка текстового файла соответствует одной строке в таблице БД. А в целом, для реализации вы используете стандартный StreamWriter.

Вариант TSV открывается любой современной версией Microsoft Excel, автоматически преобразуется в структурированную таблицу, но и здесь есть некоторые тонкие нюансы, которые нужно устранить.

Если вы используете двойные либо одинарные кавычки для выделения записей в строке, то их (эти кавычки) лучше удалить внутри самих записей во избежание дальнейших проблем с чтением в Excel’е. Это целесообразнее сделать, используя класс StringBuilder и его метода Replace(). Замена символов с использованием StringBuilder производится быстрее, нежели просто через класс String, что становится ощутимо при обработке большого количества данных.

Также проблему могут вызывать записи, в которых есть разбиение по строкам или абзацам, поэтому нужно обработать и их.

Пример кода необходимых преобразований в записях (двойные кавычки заменяются на одинарные, переход на новую строку — на HTML-тег
, два пробела — на один, символ табуляции — на четыре HTML-символа пробела):

Использование TSV выгодно еще и тем, что вы можете использовать данный формат и в обход Excel, например, написав собственный небольшой модуль импорта/экспорта, но не Excel-файлов, а вашего формата — обыкновенного текстового TSV из которого построчно извлекаются данные и затем парсятся.


Импорт данных из Excel

Что же касается импорта данных из xls либо xlsx файлов, то наиболее часто встречаемый «подводный камень» — неправильная обработка данных при чтении. Да, это есть и встречается довольно часто. Например, артикулы товаров могут иметь как буквенную, так и цифровую маркировку. И если вы будете использовать стандартную библиотеку, такую как, например, Microsoft.Jet.OLEDB4.0, то она будет читать в колонке либо только буквенные, либо только числовые артикулы, это можно обнаружить при загрузке Excel-файла в DataGridView — вместо части данных пустые поля.

Как отличный вариант, решающий данную проблему, можно рассматривать замену «читающей» библиотеки на Microsoft.ACE.OLEDB 12.0. Ее можно найти в рамках системного драйвера для Office 2007 — AccessDatabaseEngine (скачивается здесь). Устанавливается в папку, где у вас находится Microsoft Office, а к C#-проекту его нужно подключить в References, взяв dll-ку из этого же каталога.

Затем все стандартно (в данном случае вы выбираете файл через OpenFileDialog):

Импорт данных в Excel из Интернета

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

Все инструменты для импорта данных расположены на ленте на вкладке «Данные».

В новых версиях Excel по умолчанию встроена надстройка Power Query, которая и занимается импортом всех данных из внешних источников (пример показывали тут ). В более ранних версиях использовался специальный мастер импорта (пример был тут ). Если Вы привыкли именно к нему, то включить его в новой версии Excel можно пройдя по пути «Файл»-«Параметры»-«Данные» и поставив галочку на пункте «Из интернета (прежних версий)»

Как Вы уже догадались, для импорта данных из мировой паутины нужно найти команду «Из интернета», после чего перед вами откроется окно старого мастера импорта или новое окно Power Query. Разберем оба способа.

Старый мастер импорта данных из интернета

Если у Вас Excel 2013 или более старый, то этот мастер откроется по умолчанию при выборе команды «Из интернета» на вкладке «Данные». Если у Вас Excel 2016, то после того, как Вы включили старый мастер в настройках, как показано выше, он будет доступен по следующему пути: «Данные»-«Получить данные»-«Устаревшие мастеры»-«Из интернета (прежних версий)».

Читать еще:  Как сделать чтобы в excel не убирались нули?

После запуска откроется окно «Создание веб-запроса». Оно похоже на стандартное окно браузера. В адресную строку вверху нужно ввести URL страницы, с которой необходимо выгрузить данные. После того, как страница будет загружена, все данные, которые Excel может импортировать, будут помечены небольшой желтой стрелкой. Кликните по ней и нажмите кнопку «Импорт» в правом нижнем углу. Если на странице нет желтых стрелок или они расположены не там, где нужно, то данным способом выгрузить данные в Excel не получится.

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

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

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

Если поставить курсор в любую ячейку выгруженной таблицы и кликнуть правой кнопкой мыши, то в контекстном меню будет доступна команда «Обновить», по нажатию которой произойдет обновление источника данных (повторная выгрузка информации из интернета на лист). Там же (в контекстном меню) есть команда «Свойства диапазона данных. «. Вызвав ее можно задать, например, настройки обновления или изменить имя диапазона.

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

2. Импорт данных с помощью Power Query

После нажатия кнопки «Из интернета» в Excel 2016 Вы увидите не окно «Создание веб-запроса», а маленькое окошко, в котором нужно будет указать адрес страницы.

После нажатия кнопки «ОК» нужно подождать, пока Power Query подключится к источнику. Когда это произойдет, Вы увидите окно «Навигатор». В левой части будет представлен список всех таблиц, которые программа смогла распознать на странице сайта. После клика на любой из них в правой части окна появится предпросмотр данных (будут отображены те, которые Power Query выгрузит на лист при выборе данной таблицы). Если в правой части переключить вкладку вверху с «Представление таблицы» на «Веб-представление», то можно увидеть, как выглядит выбранная Вами таблица на странице сайта (и понять, это ли вы хотите выгрузить).

Если результат предпросмотра Вас устраивает, жмите кнопку «Загрузить». Если нет, то можно нажать кнопку «Правка». Тогда Вы попадете в окно редактора Power Query. Здесь можно настроить обработку данных после получения их из Интернета и перед выгрузкой на лист. Например, удалить лишние столбцы, изменить заголовки или поменять регистр текста.

После того, как данные примут нужный вид, нажмите кнопку «Закрыть и загрузить» на вкладке «Главная» в редакторе запросов.

Данные будут выгружены на новый лист. Обратите внимание, что импортированная таблица будет автоматически преобразована в «умную таблицу», а в списке запросов («Данные» — «Запросы и подключения») появится новый запрос.

Обновить его можно кликнув правой кнопкой мыши и выбрав команду «Обновить», либо нажав на иконку в правом верхнем углу рядом с названием запроса. Там же (в контекстном меню по правой кнопке мыши) есть команда «Свойства», с помощью которой можно, например, настроить автообновление запроса.

В отличие от старого мастера импорта, Power Query имеет ряд преимуществ:

1) Может работать с гораздо большим числом сайтов и страниц;

2) Может осуществлять промежуточную обработку данных перед тем, как они будут выгружены на лист;

3) Выгружает данные из Интернета гораздо быстрее;

4) Автоматически создает «Умную таблицу».

Учитывая всё вышесказанное, настоятельно рекомендуем Вам пользоваться новыми версиями Excel в целом и Power Query в частности (в Excel 2016 он встроен по умолчанию, в Excel 2010 и 2013 может быть установлен как бесплатная надстройка).

Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @ExEvFeedbackBot

Выгрузка данных из Access в шаблон Word и Excel

Всем привет, сегодня мы поговорим о том, как можно выгрузить данные из Access в такие приложения как Word и Excel. Но не о стандартном способе, который есть в Access (связь с Office), а о способе, который позволяет выгружать данные в заданный шаблон как в Word, так и в Excel.

Другими словами, это нужно тогда, когда создать отчет в Access по шаблону, который уже существует, например, в Word, невозможно или слишком трудоемко. Как Вы знаете, отчет в Access может выводиться просто коряво или, самый распространенный вариант, это когда много текста, который в отчете Access не так хорошо форматируется как в Word, а данных не так много, но отчет необходимо автоматизировать, например это какие-то договора, заявления и так далее.

Использование слияния из самого Word-а не очень удобно, поэтому сегодня я расскажу, как можно заполнять такие шаблоны напрямую из Access, путем нажатия на одну кнопку.

Кроме выгрузки в шаблон Word, иногда возникает и необходимость выгрузки в шаблон Excel, и этот способ мы тоже сегодня рассмотрим.

Экспорт данных из Access в шаблон Word

Вся разработка делится на две части, это:

  • Настройка шаблона Word;
  • Настройка выгрузки данных в шаблон.
Читать еще:  Как сделать константу в excel?

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

Примечание! Я использую Microsoft Word 2003.

Открываем шаблон Word, для начала добавим необходимую панель инструментов, для этого нажимаем «Вид -> Панель инструментов» и ставим галочку «Формы». Теперь у Вас отобразилась панель инструментом «Формы». Все, что осталось сделать — это вставить в местах, в которых необходимо выводить данные, элементы «Текстовое поле», которые доступны на только что добавленной панели инструментов.

После добавления поля, у Вас появится серая область, которая свидетельствует о том, что поле добавлено. Теперь необходимо задать имя этого поля, для того чтобы потом из access вставлять в него значения (стандартное названия не очень удобное). Для этого щелкните правой кнопкой мыши по полю и нажмите «Свойства». В поле закладка напишите желаемое имя этого поля, я в примере назвал его MyTestPole.

Создайте столько полей, сколько Вам нужно.

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

Переходим к более интересной задачи, это к реализации самой выгрузки из Access в этот шаблон на VBA.

Примечание! Я использую Access в связке с MS SQL 2008, поэтому и данные буду брать от туда.

Код VBA для выгрузки данных в шаблон Word

Допустим, у Вас есть форма, сделайте на ней кнопку (я назвал ее testbutton) и в событие нажатие кнопки вставьте следующий код VBA:

Код прокомментирован, поэтому сложностей возникнуть не должно. Здесь весь смысл сводится к созданию объекта word.document и word.application. А после мы уже работаем с нашими объектами, т.е. заполняем их.

Экспорт данных из Access в шаблон Excel

В шаблоне Excel уже не нужно создавать поля как в Word, так как здесь мы уже будем ориентироваться по адресам ячеек.

Существует несколько способов, как заполнять Excel шаблон, я опишу два, первый — это тогда, когда Вам просто необходимо проставить несколько полей, т.е. в источнике данных будет всего одна строка с несколькими столбцами. Второй — это когда строк будет уже несколько, причем Вы не знаете, сколько именно (в зависимости от каких то условий). В шаблоне по умолчанию отведено для этого все пару строк, поэтому мы будем нужные нам строки добавлять, для того чтобы наши данные не накладывалась на строки ниже (допустим там примечание, подпись руководителя и т.д.). И совет, я здесь, для примера, использую всего один источник данных, а Вы, если Вам необходимо заполнить шапку, примечание и некое количество строк (т.е. область данных), можете использовать несколько источников (Recordset).

Код VBA для выгрузки данных в шаблон Excel

Сначала добавьте кнопку на форму (я ее назвал testexcel) и вставьте следующий код в событие «Нажатие кнопки».

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

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

У многих пользователей программы 1С: Бухгалтерия в процессе работы с ней часто возникает необходимость в том, чтобы выгрузить документ из 1C в Excel для переноса в другую базу. Экспорт может понадобиться и в том случае, если бухгалтеру надо обработать данные без использования программы. Для осуществления данного механизма нет необходимости устанавливать внешние компоненты, ведь программа оснащена всем необходимым функционалом. В большинстве случаев выгрузить файл из системы можно без помощи программистов.

Способы выгрузки документов из программы 1С

Если бухгалтеру необходимо выгрузить отчетность, имеющую печатную форму, тогда выполнение процедуры не составит большого труда. Для этого следует сохранить документ стандартным способом, нажав пункт меню «Сохранить как» и выбрав требуемый формат файла. Данный способ подходит для конфигураций, которые поддерживают различные форматы. Если система предлагает сохранить документ только в формате mxl, следует прибегнуть к другим методам.

Применение специального программного обеспечения. Утилита «1С:Предприятие – Работа с файлами» позволяет просматривать табличную часть документов, созданных во внутренних форматах 1С, а также конвертировать их и распечатывать на бумажных носителях. Программу можно скачать бесплатно на официальном сайте 1С.

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

Особенности выгрузки и загрузки данных

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

Чтобы документ корректно загрузился на другую платформу необходимо создать при помощи конфигурации «Конвертация данных» файл с расширением;

Настройка соответствий между объектами метаданных и реквизитами таблиц обеих программ является ключевой задачей при подготовке правил обмена. Для создания метаописаний данных используются внешние обработки;

Выгрузка файлов из программы может осуществляться с группировками строк;

Программа 1С: Бухгалтерия не различает формулы, которые мы видим в ячейках MS Excel, для работы с ней используются функции на языке VBA.

Стандартный способ вывода информации из программы 1С в Excel

Данный способ подходит для всех платформ 1С, в том числе и для 1С: Торговля. Программа предлагает несколько форматов хранения файлов: mxl (предназначен для таблиц в 1С), xls (MS Excel), html (размещение на веб-ресурсах), txt (текстовый документ). От выбора формата будет зависеть внешний вид полученного документа. Последовательность действий приведена далее:

Читать еще:  Как сделать чтобы excel не убирал нули?

Открыть информационную базу, затем выбрать пункты «Операции» − «Справочники» − «Номенклатура»;

Щелкнуть правой кнопкой мышки в любом месте, затем нажать «Вывести список». Появится окно установки;

В открывшемся списке отметить флажком поля, которые будут экспортироваться;

В меню «Выводить в …» следует выбрать текстовый или табличный формат, нажать клавишу«Enter»;

Когда откроется таблица − надо выделить ее. После этого нажать «Файл − Сохранить»;

Ввести название документа и выбрать формат, в котором он будет сохранен.

Если таблица объемная и содержит большой объем данных, для удобства работы с ней в дальнейшем можно выгрузить каждую группу в отдельный документ. MS Excel имеет ограниченный размер, максимальное количество строк – 1048000 (версии от 2007 года выпуска). Так как выгружаемая отчетность содержит важную информацию, желательно, чтобы все операции по экспорту данных выполнял профессионал.

Выгрузка информации из платформы 1С: Бухгалтерия 7.7

Перенос данных из платформы 1С 7.7 рекомендуется проводить в начале нового отчетного периода, после выполнения всех операций прошедшего периода. Процедура осуществляется при помощи внешних обработок, основной из которых является ACC_ACC8.ert. Эту обработку можно открывать в программе через меню «Сервис» − «Дополнительные возможности», где она называется «Переход на 1С: Бухгалтерию» (указывается версия программы). Также используется пункт «Синхронизировать данные с 1С: Бухгалтерией», устанавливающий режим синхронизации.

Из информационной базы можно выгрузить элементы справочников, сведения о товарах, текущие документы и остатки на счетах бухгалтерского учета, формы ФСС из зарплаты и др. Перенос происходит в два этапа: все данные выгружаются в отдельный файл, а затем он загружается в другую базу. Установка обработки запускается двойным нажатием мышки на setup.exe.

После успешной инсталляции надо открыть пункт меню «Сервис», затем «Дополнительные возможности», и выбрать «Выгрузка данных для 1С». Когда параметры будут определены − нажать кнопку «Загрузить правила обмена». Если перенос данных осуществляется в последний день 2015 года, то следует указать дату выгрузки 01.01.2016. Тогда документы с введенными остатками будут датированы 31.12.2015, а документы с текущими операциями – следующим днем.

Выгрузка данных из программ 1С: Бухгалтерия 8 и 8.2

В системах 1С 8 и 1С 8.2 есть возможность экспорта информационных баз в полном объеме для последующей загрузки на других компьютерах, также можно сохранять отчеты в нескольких форматах, выгружать таблицы и получать информацию с помощью запросов консоли. Чтобы экспортировать базу целиком следует зайти в режим Конфигуратор, выбрать пункт меню «Администрирование», затем нажать «Выгрузить информационную базу». Система попросит пользователя указать наименование файла и его расположение. Если надо загрузить сохраненную информацию в другую базу, следует нажать кнопку «Загрузить информационную базу» и выбрать требуемый файл.

Иногда перед бухгалтерами ставят задачи, связанные с получением списков определенных документов или товаров. Рассмотрим, как можно выгрузить такую информацию из программы 1С. Для этого надо открыть форму списка и установить необходимые отборы, затем правой кнопкой мышки вызвать контекстное меню и выбрать «Вывести список». Программа предложит возможные варианты вывода.

Еще один несложный способ – выгрузка печатных форм в Excel. Для получения данных необходимо открыть реестр документов, выбрать из списка нужный, затем открыть печатную форму. После этого нажать сочетание клавиш «Ctrl + S» или «Файл – Сохранить как», система предложит ввести имя файла и выбрать его тип. Сформированный отчет выгружается по похожему алгоритму.

Экспорт остатков из системы 1С

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

Нажать «Операции» − «Справочники» − «Номенклатура»;

Когда появится окно с перечнем номенклатур, можно отобрать требуемые наименования при помощи фильтров. Затем кликнуть мышкой по любой строке, в контекстном меню выбрать «Вывести список»;

Установить галочки на необходимых параметрах, нажать «OK»;

Набрать комбинацию «Файл» − «Сохранить как»;

Ввести название файла, выбрать тип «Лист Excel», сохранить.

Основные средства выгружаются по подобному сценарию.

Экспорт справочников контрагентов из 1С в Excel

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

Открыть меню «Предприятие», выбрать пункт «Контрагенты»;

Нажать «Действия», выбрать команду «Вывести список»;

Когда появится список, следует проверить, чтобы в каждом поле был указан параметр ИНН. При необходимости установить флажок в настройках. В рядке «Выводить в …» указать «Табличный документ». Сформировать готовый список;

Нажать «Файл» − «Сохранить как».

Выгрузка счетов из программы 1С: Бухгалтерия в Excel

Необходимость обмены счетами с покупателями и контрагентами возникает довольно часто. Но так как для ведения бухгалтерского и налогового учета используется специальное программное обеспечение, сотрудникам компании приходится выгружать из него документы и сохранять их в табличной форме. Формат Excel позволяет экспортировать файлы из системы 1С без потерь, и если другой пользователь откроет сохраненный документ в программе Excel – он увидит его точно таким, каким он был создан в бухгалтерской программе.

Для начала необходимо сформировать счет и вывести его на экран. После этого документ можно распечатать на бумажном носителе или сохранить во внешний файл для последующей отправки по электронной почте. Выгрузка счетов осуществляется по стандартной схеме: в меню «Файл» выбрать пункт «Сохранить как», затем ввести название и указать тип сохраняемого документа.

Ссылка на основную публикацию
Adblock
detector