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

Импорт данных в Excel 2007

Как импортировать в Excel файл в формате txt?

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

1. Находясь в книге Excel, в верхнем левом углу нажмите кнопку Microsoft Office, затем выберите команду Открыть. В появившемся диалоговом окне Открытие документа, в поле Тип файлов, выберите Текстовые файлы. В окне просмотра у вас появятся все текстовые файлы, укажите нужный файл и нажмите кнопку Открыть.

Программа автоматически запустит Мастер текстов (импорт).

2. Находясь в книге Excel, на вкладке Данные в группе Получение внешних данных нажмите кнопку Из текста. У вас появится диалоговое окно Импорт текстового файла, аналогичное окну Открытие документа п.1. В данном диалоговом окне укажите файл, который необходимо импортировать и нажмите кнопку Импорт.

Программа автоматически запустит Мастер текстов (импорт).

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

Второй важный момент — Формат файла. Из выпадающего списка вы можете выбрать нужную кодировку текста, если программа не смогла автоматически верно распознать текст.

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

Если на первом этапе вы указали все необходимые данные нажмите кнопку Далее.

На втором этапе Мастера импорта текстов у вас может быть два варианта действий.

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

2. Если на первом этапе вы указали, что у вас формат данных фиксированной ширины, то в окне Образец разбора данных у вас есть возможность проставить все необходимые разделители, т.е. вручную расставить колонки в таблице. Линии-разделители устанавливаются путем одноразового клика по шкале, в верхней части окна, или области просмотра. Удалить линию-разделитель можно путем двойного клика по ней.

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

На третьем этапе Мастер импорта текста предлагает установить формат колонок. По умолчанию стоит Общий.

Нажимаем кнопку Готово.

У меня файл в формате csv, открывается в Эксель в одну строчку, как его преобразовать в таблицу?

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

У вас появится диалоговое окно Импорт текстового файла, в котором укажите файл, который необходимо импортировать и нажмите кнопку Импорт.

Сразу же откроется диалоговое окно Мастер текстов (импорт). На первом шаге в поле формат данных укажите с разделителями.

На втором шаге в поле Символом разделителем является отметьте — запятая (точка с запятой).

На третьем шаге, если есть необходимость, укажите формат столбцов.

После нажатия кнопки Готово файл csv будет корректно импортирован в Excel и преобразован в таблицу.

У меня есть таблица в формате txt со всеми линиями границ, как мне импортировать ее в Excel, чтобы этих границ не было?

Перед тем, как осуществить импорт таблицы зайдите в txt-файл и скопируйте фрагмент линии границы.

Во время импорта таблицы в Мастер текстов (импорт) на первом шаге в поле Укажите формат данных отметьте с разделителями.

На втором шаге в поле Символом-разделителем является отметьте пункт другой и установив курсор в поле для ввода символа нажмите комбинацию клавиш Ctrl+V. Таким образом, вы выберите в качестве разделителя линию границы таблицы.

Во время импорта txt-файла, числа, в которых разделители точки, Эксель воспринимает как даты и после импорта вернуть им прежнее значение не удается. Как обойти эту проблему?

Для того, что бы дробные числа с разделителем в виде точки отображались корректно в Excel, во время импорта файла на третьем шаге Мастер текстов (импорт) в окне Образец разбора данных выделите столбик, который содержит дробные числа, и в поле Формат данных столбца выберите текстовый.

После импорта данных выделите столбец, который содержит дробные числа с точкой. С помощью комбинации клавиш Ctrl+H откройте диалоговое окно Найти и заменить. В поле Найти укажите точку, в поле Заменить назапятую. Нажмите кнопку Заменить все — замена будет произведена только в рамках выделенного столбца.

Теперь, с помощью меню Формат ячеек группы Ячейки вкладки Главная, измените формат столбца с Текстовый на Числовой.

Можно ли в Excel подключиться к данным базы Access что бы они автоматически обновлялись?

Да, для этого находясь в книге Excel через вкладку Данные в группе Получить внешние данные нажать на кнопку Из Access.

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

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

У вас откроется еще одно диалоговое окно — Импорт данных. Здесь вы можете выбрать способ отображения данных в виде:

  • Таблицы
  • Отчета сводной таблицы
  • Сводной диаграммы и отчета сводной таблицы

Здесь же можете указать Куда следует поместить данные?

В правом нижнем углу данного диалогового окна имеется кнопка Свойства… кликнув по которой вы переходите в диалоговое окно Свойства подключения.

На вкладке Использование выберите, с какой частотой должны обновляться данные:

  • Фоновое обновление — позволяет продолжить работу в Excel пока выполняется запрос обновления данных. Снятие флажка приведет к выполнению запроса во время ожидания.
  • Обновлять каждые … — включает автоматическое обновление данных через указанные промежутки времени.
  • Обновление при открытии файла — при установлении флажка, данные будут автоматически обновляться только при открытии книги.
  • Удалить данные из внешнего диапазона перед сохранением книги — эта опция доступна только при установленном флажка Обновить при открытии файла и в случае импорта данных в виде запроса. Установление флажка позволяет сохранять книгу с определением запроса, но без внешних данных.

Нажав во всех диалоговых окнах кнопку ОК, вы получаете в Excel данные из базы данных Access, которые автоматически обновляются в соответствии с изменениями в исходной базе данных.

В начало страницы

В начало страницы

Импорт csv и txt файлов в Excel c помощью Power Query

Одним из популярных источников для импорта в Power Query являются файлы типа .csv или .txt. Традиционные методы импорта и объединения текстовых файлов довольно неуклюжи и отнимают много времени. Однако применение Power Query многократно облегчает решение проблемы. Пусть у нас есть отчет о продажах за январь в формате .csv. Задача в том, чтобы импортировать его в Excel.

Создадим запрос Power Query (в Excel 2016) Данные – Скачать и преобразовать – Создать запрос – Из файла – Из CSV (либо Из текста, если импортируете из .txt).

В открывшемся окне указываем путь к файлу. Далее в предпросмотре убеждаемся, что выбран нужный файл, и нажимаем Изменить, чтобы попасть в редактор Power Query.

Power Query распознал и разделил данные по столбцам. Также автоматически выполнены шаги:

Читать еще:  Как сделать таблицу в excel ютуб?

• Первая строка повышена в заголовки

• Изменен тип для каждого столбца

Если обработки не требуется, то результат можно выгружать в книгу Эксель Главная – Закрыть – Закрыть и загрузить.

На новом листе создается Таблица Excel.

Теперь можно проводить анализ внутри Excel. К этому мы еще вернемся. Прошел месяц, и у нас появился такой же файл .csv за февраль. Возникает вопрос, как объединить данные за два месяца? В Power Query для этого есть специальные инструменты.

Уберем пока из листа Excel данные за январь. Для этого в панели запросов через правую клавиши выбираем Загрузить в…, где меняем настройки выгрузки на Только соединение.

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

Делаем новый запрос на файл за февраль и сразу создаем только соединение.

Теперь у нас два запроса, из которых нужно сделать общий, объединяющий два файла.

В Power Query есть два типа объединения запросов: Добавление (Append) и Объединение (Merge). Нас интересует добавление, т.к. таблицы должны быть сложены вместе (одна под другой). Объединение нужно для слияния запросов по ключевому полю, но об этом в другой раз.
Сейчас заходим Главная – Скачать и преобразовать – Создать запрос – Объединить запросы – Добавить.

Далее нужно выбрать добавляемые запросы.

Следует понимать две вещи.

• Добавлять можно только запросы (а не Таблицы Excel)

• Запрос в верхнем поле будет первым сверху

Добавить можно было бы и больше запросов, выбрав в верхней строке Три таблицы или больше, но у нас только два. Нажимам ОК. Создается объединенный запрос под названием Append1.

Изменим название на Отчет о продажах и выгрузим данные в Excel (Главная – Закрыть – Закрыть и загрузить). Итого получим три запроса.

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

Через месяц появился файл за март, и вы также решили добавить его в общий отчет и сводную таблицу. Создаем запрос к новому файлу Март.csv. Затем его нужно добавить в запрос Отчет о продажах. Однако, если повторить все шаги с добавлением, то будет создан новый общий запрос, который уже не имеет смысла, т.к. сводная таблица строится по данным из запроса Отчет о продажах. Поэтому нужно зайти в редактирование запроса Отчет о продажах и уже там добавить новый запрос за март. В редакторе Power Query выбираем Главная – Комбинировать – Добавить запросы. В окне добавления теперь только одно поле, т.к. первый запрос уже определен. Нужно выбрать лишь добавляемый.

Нажимаем ОК и снова выгружаем обновленные данные в Excel (Главная – Закрыть – Закрыть и загрузить). Теперь в Таблице Excel находятся данные за три месяца. Нужно только обновить сводную таблицу.

Для импорта новых файлов нужно будет повторить все действия:

• создание нового запроса

• добавление его в объединяющий запрос Отчет о продажах

• выгрузка в Excel

• обновление сводной таблицы.

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

Импорт из папки

Источником в Power Query могут быть не только отдельные файлы, но и целая папка со всем ее содержимым. Далее дело следующей техники.

Создадим папку Данные о продажах csv и поместим в нее сразу три файла за январь, февраль и март. Сделаем запрос к этой папке Данные – Скачать и преобразовать – Создать запрос – Из папки. В следующем окне указываем путь. Адрес лучше заранее скопировать и затем вставить, чем искать в проводнике. В редакторе Power Query мы увидим такую таблицу.

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

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

Идея в том, чтобы в столбце Extension поставить фильтр на расширение .csv. Чтобы случайно не отфильтровать файлы .CSV, сделаем все буквы для столбца Extension маленькими. Для этого выделяем столбец, далее через правую кнопку мыши Преобразование – нижний регистр. Переходим к установке фильтра. Если в выпадающем списке фильтра поставить переключатель на значение .csv, то у нас ничего не получится, т.к. при единственном типе файлов будет автоматически выделен пункт Выбрать все. Поэтому выбираем Текстовые фильтры – Равно… и указываем .csv (обязательно с точкой впереди).

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

Приступим к извлечению данных. Содержимое файлов скрыто в колонке Content за значением Binary.

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

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

Это кнопка загрузки двоичного (бинарного) файла. Жмем. И о чудо! Содержимое всех трех файлов один за другим выгружается в единую таблицу.

Однако на этот раз потребуется вручную внести некоторые корректировки.

• Удалим последний шаг Измененный тип

Преобразование – Использовать первую строку в качестве заголовков

• Правой кнопкой мыши по полю Дата – Тип изменения – Дата

• Удерживая Shift, выделяем два столбца Наименование и Менеджер, затем через правую клавишу мыши Тип изменения – Текст

• Через Shift выделяем остальные столбцы Цена, Стоимость, Комиссия – правая клавиши мыши – Тип изменения – Десятичное число

• Правой кнопкой мыши по полю Дата – Удалить ошибки

Главная – Закрыть – Закрыть и загрузить

Таким образом, мы получаем таблицу с единым заголовком, сделанную из трех файлов. На ее основе создадим сводную таблицу.

Сводная таблица построена по 116 строкам. Таким же образом можно было бы объединить и 10 файлов с сотнями тысяч строк.

Добавление в запрос новых файлов и обновление сводной таблицы

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

И вот здесь наступает момент истины. Все что нужно, это закинуть новые файлы в указанную папку и на ленте во вкладке Данные нажать Обновить все. Первое нажатие обновит все запросы, второе – сводные таблицы.

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

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

Учебник: импорт данных в Excel и создание модели данных

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

Читать еще:  Как из cvs сделать excel?

Примечание: В этой статье описаны модели данных в Excel 2013. Однако те же функции моделирования данных и Power PIVOT, представленные в Excel 2013, также применимы к Excel 2016.

Вы узнаете, как импортировать и просматривать данные в Excel, строить и совершенствовать модели данных с использованием Power Pivot, а также создавать с помощью надстройки Power View интерактивные отчеты с возможностью публикации, защиты и предоставления общего доступа.

Учебники этой серии

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

В этом учебнике вы начнете работу с пустой книги Excel.

Разделы учебника

В конце учебника есть тест, с помощью которого можно проверить свои знания.

В этой серии учебников используются данные, описывающие спортивных medals, страны размещения и различные спортивных спортивные мероприятия. Мы рекомендуем вам пройти каждый из этих учебников по порядку. Учебники также используют Excel 2013 с Power Pivot. Для получения дополнительных сведений о Excel 2013 щелкните здесь. Для получения инструкций по включению Power Pivot щелкните здесь.

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

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

Сначала загрузим данные из Интернета. Эти данные об олимпийских медалях являются базой данных Microsoft Access.

Щелкните следующие ссылки, чтобы скачать файлы, используемые во время этого ряда учебников. Скачайте каждый из четырех файлов в нужное место, например загружаемЫе файлы или Мои документы, или новую созданную папку.
_Гт_ олимпикмедалс. accdb Access

Откройте пустую книгу в Excel 2013.

Щелкните данные _Гт_ получить внешние данные _Гт_ из Access. Лента настраивается динамически в зависимости от ширины книги, поэтому команды на ленте могут немного отличаться от следующих экранов. На первом экране отображается лента, если книга является широкой, а на втором — книга, размер которой был изменен, чтобы занимать только часть экрана.

Выберите скачанный файл Олимпикмедалс. accdb и нажмите кнопку Открыть. Откроется следующее окно Выбор таблицы, в котором отображаются таблицы, найденные в базе данных. Таблицы в базе данных похожи на листы и таблицы в Excel. Установите флажок Разрешить выбор нескольких таблиц и выберите все таблицы. Нажмите кнопку ОК.

Появится окно «Импорт данных».

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

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

После импорта данных создается сводная таблица с использованием импортированных таблиц.

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

Просмотр данных в сводной таблице

Просматривать импортированные данные удобнее всего с помощью сводной таблицы. В сводной таблице можно перетаскивать поля (похожие на столбцы в Excel) из таблиц (например, таблиц, импортированных из базы данных Access) в разные области, настраивая представление данных. Сводная таблица содержит четыре области: ФИЛЬТРЫ, СТОЛБЦЫ, СТРОКИ и ЗНАЧЕНИЯ.

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

Рассмотрим в сводной таблице данные об олимпийских медалях, начиная с призеров Олимпийских игр, упорядоченных по дисциплинам, типам медалей и странам или регионам.

В полях сводной таблицы разверните таблицу medals , щелкнув стрелку рядом с ней. Найдите поле Нок_каунтрирегион в развернутой таблице medals и перетащите его в область столбцы. В NOC используется National спортивных комитетов, который является организационным подразделением для страны или региона.

Затем перетащите виды спорта из таблицы Disciplines в область СТРОКИ.

Давайте отфильтруем дисциплины, чтобы отображались только пять видов спорта: стрельба из лука (Archery), прыжки в воду (Diving), фехтование (Fencing), фигурное катание (Figure Skating) и конькобежный спорт (Speed Skating). Это можно сделать в области Поля сводной таблицы или в фильтре Метки строк в самой сводной таблице.

Щелкните в любом месте сводной таблицы, чтобы убедиться, что сводная таблица Excel выбрана. В списке Поля сводной таблицы, где развернута таблица Disciplines, наведите указатель на поле Discipline, и в его правой части появится стрелка раскрывающегося списка. Щелкните эту стрелку, нажмите кнопку (Выбрать все), чтобы снять отметку со всех выбранных параметров, а затем прокрутите вниз и выберите пункты Archery, Diving, Fencing, Figure Skating и Speed Skating. Нажмите кнопку ОК.

Либо щелкните в разделе сводной таблицы Метки строк стрелку раскрывающегося списка рядом с полем Метки строк, нажмите кнопку (Выбрать все), чтобы снять отметку со всех выбранных параметров, а затем прокрутите вниз и выберите пункты Archery, Diving, Fencing, Figure Skating и Speed Skating. Нажмите кнопку ОК.

В разделе Поля сводной таблицы перетащите поле Medal из таблицы Medals в область ЗНАЧЕНИЯ. Поскольку значения должны быть числовыми, Excel автоматически изменит поле Medal на Count of Medal.

В таблице Medals снова выберите поле Medal и перетащите его в область ФИЛЬТРЫ.

Давайте отфильтруем сводную таблицу таким образом, чтобы отображались только страны или регионы, завоевавшие более 90 медалей. Вот как это сделать.

В сводной таблице щелкните стрелку раскрывающегося списка рядом с полем Метки столбцов.

Выберите Фильтры по значению, а затем — Больше.

Введите 90 в последнем поле (справа). Нажмите кнопку ОК.

Сводная таблица будет иметь следующий вид:

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

Но что делать, если данные происходят из разных источников или импортируются не одновременно? Обычно можно создать связи с новыми данными на основе совпадающих столбцов. На следующем этапе вы импортируете дополнительные таблицы и узнаете об этапах создания новых связей.

Импорт данных из таблицы

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

Начнем с создания пустого листа, а затем импортируем данные из книги Excel.

Вставьте новый лист Excel и назовите его Sports.

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

Выберите и скопируйте данные на листе Sheet1. При выборе ячейки с данными, например, ячейки А1, можно нажать клавиши Ctrl + A, чтобы выбрать все смежные данные. Закройте книгу OlympicSports.xlsx.

На листе Sports поместите курсор в ячейку А1 и вставьте данные.

Выделив данные, нажмите клавиши CTRL + T, чтобы отформатировать данные как таблицу. Вы также можете отформатировать данные в виде таблицы на ленте, выбрав в _Гт_ формат таблицы. Так как у данных есть заголовки, в появившемся окне Создание таблицы выберите пункт таблица с заголовками, как показано ниже.

Форматирование данных в виде таблицы имеет много преимуществ. Можно назначить имя таблице, что упрощает ее определение. Кроме того, вы можете устанавливать связи между таблицами, позволяя исследовать и анализировать в сводных таблицах, Power Pivot и в Power View.

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

ПриСвойте таблице имя. В разделе Работа с таблицаМи _Гт_ свойства _ГТ_ макета найдите поле имя таблицы и введите Спорт. Книга будет выглядеть так, как показано на следующем экране.

Импорт данных с помощью копирования и вставки

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

Вставьте новый лист Excel и назовите его Hosts.

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

Реальное программирование: экспорт и импорт данных из/в 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.

Когда допустимо использовать импорт в Excel

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

Пример хорошо структурированных данных показан на рисунке ниже (текст в блокноте).


[нажмите на картинку для увеличения]

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

Как использовать мастер импорта текста в Excel

Чтобы преобразовать таблицу в блокноте в таблицу Excel, копируем текст и вставляем его на лист Excel. При этом получается следующая картина.


[нажмите на картинку для увеличения]

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


[нажмите на картинку для увеличения]

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


[нажмите на картинку для увеличения]

Здесь потребуется указать, какой символ (или символы) является разделителем столбцов в таблице, скопированной из блокнота. В данном случае я определил, что это табуляция, причём, как правило, несколько, поэтому настройки будут выглядеть так, как показано на рисунке выше.

Нажимаем Далее и переходим к следующему шагу.


[нажмите на картинку для увеличения]

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


[нажмите на картинку для увеличения]

Добавим заголовок (можно также импортом, а можно вручную) и отформатируем таблицу. И вот конечный результат.


[нажмите на картинку для увеличения]

Подведём итоги

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

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