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

Кнопка  Импорт из Excel — вызывает инструмент СПДС GraphiCS, с помощью которого осуществляется передача данных из открытой книги MS Excel в таблицу СПДС GraphiCS, а кнопка  Экспорт в Excel — передает табличные данные в таблицу MS Excel.

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

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

  • кликнуть по иконке  на вкладке СПДС — панель Форматы, таблицы;

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

  • кликнуть по иконке  на панели Форматы, таблицы;

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

  • Строка меню — СПДС — Форматы, таблицы — Редактирование таблиц — Импорт таблицы из Excel;

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

  • ввести в командную строку команду sptableexcelimport.

Для передачи данных из открытой книги MS Excel в таблицу СПДС GraphiCS необходимо:

  • открыть таблицу Excel и на листе выделить ячейки, данные из которых нужно импортировать в таблицу СПДС GraphiCS;

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

  • перейти в окно AutoCAD, в редактор таблицы СПДС и нажать кнопку Импорт из Excel;

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

  • данные будут переданы в таблицу.

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

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

  • кликнуть по иконке  на вкладке СПДС — панель Форматы, таблицы;

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

  • кликнуть по иконке  на панели Форматы, таблицы;

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

  • Строка меню — СПДС — Форматы, таблицы — Редактирование таблиц — Экспорт таблицы в Excel;

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

  • ввести в командную строку команду sptableexcelexport.

Для передачи данных из таблицы СПДС GraphiCS в таблицу MS Excel:

  • активировать функцию (нажать на  пиктограмму  или ввести в командную строку команду) и указать на таблицу СПДС GraphiCS или открыть таблицу СПДС GraphiCS и нажать на кнопку ;
  • после нажатия на кнопку открывается новая книга Excel и в нее переносятся все табличные данные, с сохранением форматирования ячеек, установленным в таблице.

Из таблиц СПДС GraphiCS не передаются в таблицу Excel следующие данные:

  • блоки AutoCAD;
  • форматированный текст;
  • формулы, не соответствующие формату Excel.

В этом уроке Вы узнали об инструменте СПДС GraphiCS, с помощью которого производится импорт и экспорт данных из (в) Excel. Данная возможность позволит ускорить процесс создания и редактирования таблиц, что в свою очередь сделает выполнения чертежей более комфортным. Опытный пользователь СПДС GraphiCS. Автор блога «Кровля и фасады» (http://roof-facade.blogspot.com/).

Источник: http://sapr-journal.ru/spds-graphics/eksport-i-import-tablic-v-iz-excel/

Экспорт данных из 1С в Microsoft Excel

Многим офисным работникам не редко приходится пользоваться программами 1C и Excel. Им приходится экспортировать данные из одного приложения в другое. Сегодня мы рассмотрим, как выгрузить из 1С в Excel.

Выгружаем данные из 1С в Эксель

Выгрузка данных из 1С в Microsoft Excel – процесс, состоящий из несложных действий. Для этого достаточно встроенных в данные приложения средств. Есть несколько способов экспорта данных.

Выгружаем большое количество данных

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

  • Как сделать экспорт в excel?
  • Остается лишь выбрать формат файл и сохранить его.
  • Как сделать экспорт в excel?

Выгружаем печатные формы документов

Как сохранить документ из 1С в Excel? После нажатия кнопки «Печать» появится новое окно, где следует убрать отметки с пункта «Только просмотр» и произвести сохранение файла в нужном формате.

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

Как вставить список в книгу Excel

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

  • Нужный список открываем в программе 1С. Затем необходимо правой кнопкой мыши кликнуть на «Все действия», а затем «Вывести список».

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

  • Появится оболочка вывода списка. В поле «Выводит в» должен быть установлен вариант «Табличный документ».
  • Чуть ниже можно выбрать колонки, которые следует перенести.

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

Совет! Не следует ничего менять в этом окне, когда вы собираетесь полностью перенести документ.

  1. После всего этого пользователь увидит на экране список в виде таблицы. Его нужно весь выделить и скопировать.
  2. Затем создается новый документ в Excel и данные вставляются в него при помощи «CTRL+V».

Создаем новую книгу Excel со списком

Можно долго не возиться и сразу вывести список из 1С в Эксель:

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

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

2. Далее остается выбрать куда сохранить файл и формат «Лист Excel (*.xls)» или «Лист Excel 2007.

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

Видео: Загрузка и выгрузка данных в 1С

Заключение

Теперь вы знаете, несколько способов, как выгрузить таблицу из 1С в Эксель. Процедура довольно легкая, и с ней справится абсолютно любой пользователь. Главное – это хорошо изучить наши инструкции, выбрать подходящий способ и четко следовать указаниям. Чтобы было проще, смотрите на вставленные скрины.

Источник: http://tehno-bum.ru/eksport-dannyx-iz-1s-v-microsoft-excel/

Импорт данных в Excel из текстового файла

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

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

Возьмём такой жизненный и несложный пример — перенесем из текстового файла (с расширением .txt) в Excel список сотрудников, в котором перечислены фамилия, имя , отчество, год рождения и должность.

  • Допустим, вот наши герои:
  • Иванов Иван Иванович 1978 инспектор
    Сидоров Петр Сидорович 1970 старший инспектор
  • Петров Василий Самуилович 1965 самый старший инспектор
  • Больше трех лень набивать ???? , но и их хватит.

Теперь определимся, какая нам нужна в Excel таблица? Пусть она имеет такие столбцы:
Фамилия, Имя, Отчество, Год рождения, Должность.

Все у нас имеется, но тут есть один нюанс в представлении должности. Для каждого сотрудника должность имеет разный размер – 1, 2 и 3 слова. Как же Excel указать, где начинается и заканчивается информация, заносимая по столбцам?

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

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

инспектор (без пробелов), то подошел бы и пробел. Подходите творчески, чтобы меньше делать работы. ????

  1. Структурируем наш список:
  2. Фамилия/Имя/Отчество/Год рождения/Должность
    Иванов/Иван/Иванович/1978/инспектор
    Сидоров/Петр/Сидорович/1970/старший инспектор
  3. Петров/Василий/Самуилович/1965/самый старший инспектор

и сохраняем в текстовом документе c расширением .txt . Теперь такой список замечательно перенесется в Excel.

Для этого заходим в Excel на вкладку Данные. В области Получение внешних данных нажимаем кнопку Из текста.

В открывшемся окне указываем на наш текстовый файл, из которого будем импортировать данные. После этого откроется Мастер импорта на первом шаге. Тут нужно указать структуру наших данных – “с разделителями” (которым у нас выступает наклонная «/»). После этого нажимаем кнопку Далее.

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

На следующем шаге мастера нужно указать символ-разделитель. Тут приведены некоторые варианты, но мы выбираем “другой” и в окошке вводим наш символ – наклонную. Сразу же в нижней области (с нашим списком) появляются вертикальные линии (столбцы), по которым можно проверить правильность разделения данных. Нажимаем кнопку Далее.

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

На третьем шаге можно указать формат данных для каждого или выбранного столбца, если в этом есть необходимость. Как правило, такое актуально для столбцов с датой. Мы же ничего не меняем и жмём кнопку Готово.

  • Как сделать экспорт в excel?
  • После этого нужно указать ячейку, с которой будет начинаться таблица – её левый верхний угол.
  • Как сделать экспорт в excel?

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

  1. Как сделать экспорт в excel?
  2. Теперь можно навести марафет, указав выравнивание и задав границы.
  3. Как сделать экспорт в excel?

Источник: http://machula.ru/import-dannyih-v-excel-iz-tekstovogo-fayla/

Экспорт в CSV из Excel: экспорт выбранных диапазонов без закрытия исходного файла

Популярность текстовых файлов CSV объясняется тем, что этот формат поддерживается большинством приложений. Поэтому конвертация файлов Excel в файлы CSV с разделителями-запятыми вполне привычная операция.

Но что если вам нужно экспортировать не весь лист, а только выбранный диапазон, или применить другой разделитель? Кроме того, операция «Сохранить как CSV» автоматически закрывает книгу Excel — и это осложняет работу при необходимости экспортировать данные многократно.

Надстройка «Экспорт в CSV» упрощает этот рутинный процесс:

  • Конвертация диапазонов из XLSX (XLS) в CSV
  • Выбор разделителя: запятая, точка с запятой, табуляция, вертикальная черта
  • Экспорт в CSV значений или значений с форматом
  • Сохранить как CSV без закрытия исходного файла Excel
  • Корректный экспорт объединённых ячеек

Язык видео: английский. Субтитры: русский, английский. (Внимание: видео может не отражать последние обновления. Используйте инструкцию ниже.)

Добавить «Экспорт в CSV» в Excel 2019, 2016, 2013, 2010

Подходит для: Microsoft Excel 2019 – 2010, desktop Office 365 (32-бит и 64-бит).

Скачать надстройку XLTools

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

Как работать с надстройкой:

Как экспортировать выбранный диапазон из Excel в CSV

  1. Выбелите таблицу или диапазон ячеек.
  2. Нажмите кнопку «Экспорт в CSV» на панели инструментов XLTools > Откроется диалоговое окно.
  3. Настройте параметры отображения данных в файле CSV и выберите разделитель.
  4. Нажмите ОК > Сохраните CSV файл на свой компьютер > Готово.

Как экспортировать значения или значения с форматом из Excel в CSV

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

  1. Выберите диапазон > Нажмите кнопку «Экспорт в CSV».
  2. Настройте параметры отображения значений в файле CSV:

    • Выберите «Сохранить формат значения» > Экспортированные значения будут отображаться в том же формате, что задан в Excel, напр. 10%, 16 марта 2015 г., $40.
    • Выберите «Сохранить значение» > Значения будут экспортированы в формате по умолчанию, напр. 0.1, 16.03.2015, 40.00.
Читайте также:  Как сделать бегущую строку в word?

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

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

  1. Выберите диапазон > Нажмите кнопку «Экспорт в CSV».
  2. Выберите походящий разделитель между значениями в CSV файле результата:

    • Запятая
    • Точка с запятой
    • Табуляция
    • Вертикальная черта

Как экспортировать в CSV диапазон с объединёнными ячейками

  1. Выберите диапазон с объединёнными ячейками > Нажмите кнопку «Экспорт в CSV».
  2. Отметьте флажком «Дублировать значения при экспорте объединённых ячеек» > Надстройка продублирует содержимое объединённых ячеек в соответствующих местах текстовых строк в CSV.

Как сохранить данные Excel как CSV без закрытия Excel файла

Когда вы конвертируете Excel файлы через «Сохранить как…CSV», появляется сообщение: «Некоторые возможности станут недоступными». Далее, похоже, что ваш исходный XLSX-файл замещён CSV-файлом.

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

Это отнимает время и вносит риск потери несохранённых изменений исходных данных.

Надстройка «Экспорт в CSV» оптимизирует рутинный экспорт XLSX-в-CSV:

  1. Выбелите диапазон > Нажмите «Экспорт в CSV» > Установите параметры CSV файла.
  2. Нажмите ОК > Присвойте имя и сохраните файл на свой компьютер.
  3. Готово. Обратите внимание, что исходный Excel файл остался открытым. Его расширение не изменилось.
  4. При необходимости внесите изменения и продолжите — без перебоев — экспортировать другие диапазоны.

Вы можете также «Открыть CSV файл после экспорта», чтобы сразу увидеть результат. Файл откроется в новом окне Excel.

Как сделать экспорт в excel?Появились вопросы или предложения? Оставьте комментарий ниже.

Источник: https://xltools.net/ru/export-to-csv/

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

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

 

Экспорт данных из меню Записи

Любую онлайн базу данных в QuintaDB вы можете экспортировать в Excel, где названия полей вашей формы будут столбцами таблицы Excel. Для этого зайдите в меню «Записи«.

Пошаговая инструкция:

В меню «Записи«находим кнопку «Экспорт» и жмем на нее. Далее нам будет предложен выбор: «Экспорт в PDF«, «Экспорт в Excel«.

Excel файл будет загружен на ваше устройство.

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

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

Следует отметить, что как при импорте данных из Excel так и при экспорте в Excel у вас не возникнет никаких проблем с кодировкой.

Если ваша база данных содержит не только текст, но и файлы (фото, видео, аудио), то вы также можете экспортировать эти файлы на ваш компьютер.

Про экспорт в Excel из Виджета таблицы вы можете узнать по этой ссылке.

Пошаговая инструкция:

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

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

В QuintaDB существует лимит на експорт файлов, который составляет 1 Гб,  т.е. если ваша БД превышает данный лимит, экспортировать удастся не всю базу, а только 1 Гб.

Поэтому, если размер вашей БД превышает 1 Гб., то экспортировать ее необходимо по частям. Сначала создаем отчет из некоторых записей базы, а потом экспортируем данные из отчетов по частям.

Пожалуйста, войдите в QuintaDB чтобы иметь возможность оставлять комментарии

Поделиться обсуждением в социальных сетях: Tweet

Источник: https://quintadb.ru/posts/c1GM5ncsbh0iMFsIRr1y85%7C-eksport-dannyh-v-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-символа пробела):

static string ubratKav(string p)
{
StringBuilder b = new StringBuilder(p);
b.Replace(«»», «'»);
b.Replace(Environment.NewLine, «
«);
b.Replace(»
«, «
«);
b.Replace(» «, » «);
b.Replace(» «, »    «);
return b.ToString();
}

Использование TSV выгодно еще и тем, что вы можете использовать данный формат и в обход Excel, например, написав собственный небольшой модуль импорта/экспорта, но не Excel-файлов, а вашего формата — обыкновенного текстового 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):

const string CONNECTION_STRING =
@»Provider=Microsoft.ACE.OLEDB.12.0;Data Source = {0};
Extended Properties=Excel 8.0;»;

private const string QUERY_EXCEL = «SELECT * FROM[Лист1$]»;

string connection_String =
string.Format(CONNECTION_STRING, openFileDialog1.FileName);

OleDbDataAdapter adapter =
new OleDbDataAdapter(QUERY_EXCEL, connection_String);

DataTable dataTable = new DataTable();

adapter.Fill(dataTable);

dataGridView.DataSource = dataTable;

Кристофер,christopher@tut.by, itcs.3dn.ru

Источник: https://www.kv.by/content/321757-realnoe-programmirovanie-eksport-i-import-dannykh-izv-excel

Простой экспорт в Excel XLSX

В продолжение темы, начатой в предыдущей статье, хочу поделиться своим опытом экспорта данных, в частности, в формате XLSX. Как сделать экспорт в excel?

Итак, кому интересно, как заполнить XLSX без больших и сложных библиотек, прошу под кат.

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

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

Находил еще несколько библиотек для работы с XLSX, но все они были или забытыми, т.к. не обновлялись по 2-3 года, или обязательно тянули за собой сторонние библиотеки, или использовали DOM для работы с файлами, что мне не очень нравилось. Каждый раз, натыкаясь на очередную библиотеку и изучая механизмы ее работы, ловил себя на мысли, что все это «из пушки по воробьям». Не нужно мне такое сложное решение! Признаюсь честно, изучив поверхностно каждое из найденных решений, не стал ставить и тестировать ни одного. Мне нужно было более простое и надежное, как танк, решение.

Читайте также:  Как сделать ссылку на скайп в word?

Задача

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

Требования, как и следовало ожидать, оказались тривиальными:

  • Оформить экспортирующий механизм в виде автономного класса
  • Реализовать в классе набор функций для записи значений ячеек и ряда
  • Возможность работы с неограниченным объемом данных
  • Распаковка и упаковка XLSX.

Отдельно остановлюсь только на последнем пункте.

Как известно, XLSX представляет собой обычный zip-архив, который можно распаковать и увидеть, что он состоит из нескольких файлов и каталогов. Обратным образом его можно упаковать и переименовать в XLSX. Если все изменения правильные, то Microsoft Excel откроет файл без проблем.

Реализация

Изначально очень хотел создавать все файлы, из которых состоит XLSX, кодом, но, к счастью, быстро понял бессмысленность своей идеи. И родилось иное, более правильно и простое решение.

Надо с помощью Microsoft Excel создать файл XLSX в таком виде, в каком он нужен в итоге, но без данных, иными словами — шаблон, а потом, с помощью кода, только добавить данные! В таком случае, класс должен будет распаковывать шаблон в отдельный каталог, вносить изменения в /xl/worksheets/sheet1.

xml и упаковывать содержимое каталога обратно в XLSX. В объявлении класса присутствуют публичные переменные:

$templateFile – имя файла шаблона

$exportDir – папка, в которую будет распакован шаблон, разумеется с необходимыми правами доступа. Конструктор класса принимает имя будущего файла, количество колонок и рядов. Потом проверяет, что имя файла корректно, папка для распаковки шаблона существует и формирует полное имя конечной папки для распаковки шаблона. После создания класса можно распаковать шаблон и открыть на запись sheet1.xml. На самом деле я не просто дописываю в файл, а полностью его перезаписываю. Однажды взяв из него начальную строку, вношу в нее изменение в тэге dimension, который отражает размер экспортируемого диапазона, и записываю в файл. public function openWriter()
{
if (is_dir($this->baseDir))
CFileHelper::removeDirectory($this->baseDir);
mkdir($this->baseDir);

exec(«unzip $this->templateFullFilename -d «$this->baseDir»»);

$this->workSheetHandler = fopen($this->baseDir.'/xl/worksheets/sheet1.xml', 'w+');

fwrite($this->workSheetHandler, '');
}
Обеспечить скорость работы и возможность работы с большим объемом данных позволяют функции resetRow и flushRow. Они отвечают за очистку текущего ряда в памяти и запись текущего ряда на диск. А вот сохранение значений ячеек с разными типами оказалось не такой простой задачей.

Запись строки

Казалось бы, что сложного записать строковое значение в файл. Однако, в XLSX все не так просто. Все строки внутри XLSX хранятся в отдельном файле /xl/sharedStrings.xml. В ячейки записываются не строковые значения, а их порядковые номера — индексы. Разумное решение с точки зрения сокращения размера файла. Но такое решение неудобно с точки зрения программного заполнения шаблона.

Если выполнять указанное требование, то мне бы пришлось выполнять отдельный проход по всем строковым значениям в массиве данных, исключать повторяющиеся, сохранять их в sharedStrings.xml, проиндексировать и вместо значений в исходном массиве вписать их индексы. Медленно и неудобно. Оказывается, можно обойти требование и сохранять строковые значения ячеек прямо в ячейках.

Но в этом случае формат записи будет иной: public function appendCellString($value)
{
$this->curCel++;
if (!empty($value)) {
$value = htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
$value = preg_replace( '/[x00-x13]/', '', $value );
$this->currentRow[] = 'isBold ? ' s=»7″' : '').'>'.$value.

'';
$this->numStrings++;
}
}

Запись числа

Никаких сложностей с записью целых или дробных чисел не возникло. Все просто: public function appendCellNum($value)
{
$this->curCel++;
$this->currentRow[] = ''.$value.'';
}

Запись даты и времени

Дата и время хранятся в виде количества секунд прошедших с 01.01.1970 поделенных на количество секунд в сутках. Причем, в вычислении допущена ошибка с определением високосного года.

В общем, не вдаваясь в подробности, которые несложно найти в сети, чтобы корректно вычислять дату пришлось объявить в классе две константы:

ZERO_TIMESTAMP – смещение даты в формате Excel от UNIX_TIMESTAMP

SEC_IN_DAY – секунд в сутках. После вычисления значения даты и времени, целая часть дроби – это дата, дробная часть – время: const ZERO_TIMESTAMP = 2209161600;
const SEC_IN_DAY = 86400;

public function appendCellDateTime($value)
{
$this->curCel++;

if (empty($value))
$this->appendCellString('');
else
{
$dt = new DateTime($value);
$ts = $dt->getTimestamp() + self::ZERO_TIMESTAMP;
$this->currentRow[] = ''.$ts/self::SEC_IN_DAY.'';
}
}
После записи всех данных остается закрыть рабочий лист и рабочую книгу.

Применение

Источник: https://habr.com/post/236107/

Как экспортировать любые данные из программы в Excel

Иногда бывает необходимость извлечь из программы «Автопрокат» какие либо хранящиеся в ней данные. Например список клиентов с их номерами телефонов для рассылки смс-сообщений через какой либо интернет-сервис СМС.

Во-первых, во многих окнах-таблицах программы есть кнопка «Открыть в Excel», которая вызывает процедуру экспорта в Excel содержимого таблицы этого окна.

При этом данные экспортируются точно в том виде, в каком они в данный момент видны в этой таблицы (с учетом текущей настройки колонок таблицы, которую можно изменять при помощи «Менеджера форматов»). А также с учетом установленного Фильтра и других ограничений видимости данных в таблице.

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

Кроме этого, содержимое любого файла базы данных программы можно экспортировать в текстовый файл с расширением «CSV», который можно потом открыть программой Excel. Делается это при помощи программы Topscan. Скачать программу Topscan можно отсюда: www.pisoft.ru/dl/topscan.zip

Эта программа позволяет просматривать, редактировать, «ремонтировать» и делать кое-что еще с файлами базы данных tps (Тоp Speed). В том числе в ней есть функция экспорта содержимого файла базы данных в текстовый формат.

Если указать при экспорте символ разделитель «Точка с запятой» и сохранить данные в файл с расширением CSV, то этот файл можно будет открыть в Excel.
Вот что нужно сделать в окне «Export«, которое вызывается через пункты меню программы «File» — «Export»:- Указать имя экспортируемого файла в поле Export File. Например «Numbers.

csv»;- Delimiter (разделитель) — установить в положение Character (символ) и ввести в соответствующем поле ввода символ-разделитель: «точка с запятой»;- Включить признак Quote string (заключать строки в кавычки).
Предварительно можно в основном окне программы настроить видимость колонок.

Экспортироваться будут только те колонки, видимость которых включена. Видимость колонок (полей базы данных) настраивается в окне «Show/Hide» (Показать/Скрыть), которое вызывается через пункты меню программы «Columns» — «Show/Hide».  В этом окне нужно отметить (галочками) только те колонки, которые вам нужны.

Если нужны все колонки, то нажмите в нижней части этого окна кнопку «Select all» (выбрать все). По умолчанию видны не все колонки, а только первые, поэтому важно нажать кнопку «Select all».

Файл справочника клиентов (Clien.tps) зашифрован при помощи пароля. Поэтому при его открывании Topsсan потребует ввести пароль. Пароль совпадает с именем таблицы: в данном случае это «Client».

Рекомендую брать номера телефонов не из справочника «Клиенты», а из файла с названием типа Num_1.tps или Numbers.

tps, который формируется в основной папке программы «Автопрокат» при нажатии на кнопку «Отправить SMS» в окне «Клиенты» программы.

(Предварительно нужно в этом окне «отметить» тех клиентов, которым нужно разослать это СМС-сообщение). Кстати, этот файл имеет пароль «Numbers».

Источник: https://www.pisoft.ru/autoprok/faq/export-excel

Как сделать экспорт большой таблицы в Excel средствами PHP?

Для решения этой задачи писал своё решение. Было просто огромное количество данных.
Перепробовал все что было на тот момент. На решения данной задачи подойдут только SAX решения.
Я думаю вы сможете поправить временные директории под себя и использовать мой код:'.
''.

''.

''.

''.

'»);');
fwrite($this->stringsHandler, '');
}

public function writeRowStart()
{
$this->numRows++;
fwrite($this->workSheetHandler, '');
$this->curCel = 0;
}

public function writeNumberCell($value)
{
$this->curCel++;
fwrite($this->workSheetHandler, ''.

$value.'');
}
public function writeStringCell($value)
{
$this->curCel++;
if (!empty($value)) {
$value = htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
$value = preg_replace( '/[x00-x13]/', '', $value );
fwrite($this->stringsHandler, ''.$value.

'');
fwrite($this->workSheetHandler, ''.$this->numStrings.

'');
$this->numStrings++;
}
}

public function writeRowEnd()
{
fwrite($this->workSheetHandler, '');
}

public function closeExcelWriter()
{
fwrite($this->workSheetHandler, '

');
fwrite($this->stringsHandler, '');
fclose($this->workSheetHandler);
fclose($this->stringsHandler);

$source = '../source.xlsx';
$curDir = getcwd();
chdir($this->dirPath.'/data');
exec(«zip -r $source * -O ../output.zip»);
chdir($curDir);
rename($this->dirPath.'/output.zip', $this->outputFile);
Switlle_Path::removeFolder($this->dirPath);
}
}
Видятся такие варианты:
1) Найти машину с достаточным количеством оперативной памяти. Писал через PHPExcel большие файлы, ничего не висло.

2) Сначала попробовать писать XLSX через PHPExcel, если не пройдет, то писать XLSX вручную построчно, ибо XLSX это по сути архив с XMLками и стилями.

Нравится 1 12 комментариев

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

Нравится 1 5 комментариев Действительно PHPExcel для больших объемов данных не подходит.
Как решение, формируйте эксель данные в формате ODF, можно с расширением XLS. Это открытый XML формат, эксель его понимает. Формировать эти данные можно обычным print-ами, память и ресурсы при этом расходоваться не будут. Самый простой способ пронять структуру ODF-файла, это сохранять данные из Экселя в формате ODF/XML и посмотреть как они устроены. Потом просто воспроизведите эту структуру на PHP.

Читайте также:  Как таблицу из excel сделать картинкой?

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

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

На самом деле это не простой вопрос.
Вариант с формированием HTML и сохранением с расширением XLS я раньше практиковал, однако, последние версии MS Excel выдают предупреждение при открытии файла. Это немного нехорошо.
Пробовал разные библиотеки, но они все используют память, что при больших объёмах данных может просто выдать ошибку нехватки памяти.
Если оставить вариант сохранения в формате CSV, то, опять же по опыту, могу сказать, что не все знают чем открывать этот формат (несмотря на то, что он бывает ассоциирован с Excel при установке пакета Office). Сохранение в XLS/XLSX путём echo/print позволяет решить две проблемы из трёх: расходуется меньше памяти и данные сохраняются в формате Excel, но без форматирования.

Тут нет единого решения — всё зависит от конкретных требований.

Источник: https://toster.ru/q/84700

Импорт 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. К этому мы еще вернемся. Прошел месяц, и у нас появился такой же файл .csv за февраль. Возникает вопрос, как объединить данные за два месяца? В Power Query для этого есть специальные инструменты.

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

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

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

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

В Power Query есть два типа объединения запросов: Добавление (Append) и Объединение (Merge). Нас интересует добавление, т.к.

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

Сейчас заходим Главная – Скачать и преобразовать – Создать запрос – Объединить запросы – Добавить.

  1. Далее нужно выбрать добавляемые запросы.
  2. Следует понимать две вещи.
  3. • Добавлять можно только запросы (а не Таблицы Excel)
  4. • Запрос в верхнем поле будет первым сверху

Добавить можно было бы и больше запросов, выбрав в верхней строке Три таблицы или больше, но у нас только два. Нажимам ОК. Создается объединенный запрос под названием 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 и через правую кнопку мыши выбираем Удалить другие столбцы.

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

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

  1. Однако на этот раз потребуется вручную внести некоторые корректировки.
  2. • Удалим последний шаг Измененный тип
  3. Преобразование – Использовать первую строку в качестве заголовков
  4. • Правой кнопкой мыши по полю Дата – Тип изменения – Дата
  5. • Удерживая Shift, выделяем два столбца Наименование и Менеджер, затем через правую клавишу мыши Тип изменения – Текст
  6. • Через Shift выделяем остальные столбцы Цена, Стоимость, Комиссия – правая клавиши мыши – Тип изменения – Десятичное число
  7. • Правой кнопкой мыши по полю Дата – Удалить ошибки
  8. Главная – Закрыть – Закрыть и загрузить

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

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

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

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

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

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

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

Серия видеоуроков о Power Query.

Поделиться в социальных сетях:

Источник: https://statanaliz.info/excel/power-query/import-v-excel-iz-csv-i-txt-fajlov-c-pomoshchyu-power-query/

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