Импорт объектов карты. Конвертирование XLS файлов в Google Spreadsheet с использованием Google Apps Script

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

Важно:

Экспорт данных XML (с не более 65 536 строк)

Экспорт данных XML (для более 65 536 строк)

    Найдите разность общего количества строк в файле и числа 65 537. Обозначим это число как x.

    Удалите x строк с начала листа Excel.

    Экспортируйте лист в виде файла данных XML (смотрите в предыдущем разделе процедуры).

    Нажмите кнопку Закрыть , но не сохранить лист. Снова откройте лист Excel.

    Удалите все, кроме первых x строк, а затем экспортируйте в виде файла данных XML (смотрите в предыдущем разделе процедуры).

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

Сохранение данных XML в сопоставленных ячейках в файле данных XML

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

Примечание: Если лист содержит заголовки или метки, отличающиеся от имен XML-элементов на карте XML, то при экспорте или сохранении данных XML приложение Excel использует имена XML-элементов.

Распространенные проблемы при экспорте данных XML

При экспорте данных XML могут появляться сообщения, подобные приведенным ниже.

Эту карту XML можно экспортировать, но некоторые необходимые элементы не сопоставлены

Такое сообщение может появиться по следующим причинам.

    На карте XML, связанной с этой XML-таблицей, есть один или несколько необходимых элементов, которые с ней не сопоставлены.

    В иерархическом списке элементов в области задач "Источник XML" необходимые элементы выделены красной звездочкой. Она находится в верхнем правом углу значка, который расположен слева от элемента. Чтобы сопоставить необходимый элемент, перетащите его туда, где он должен отображаться.

    Элемент представляет собой рекурсивную структуру.

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

    XML-таблица содержит смешанное содержимое.

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

Невозможно экспортировать карты XML в книге

Карту XML не удастся экспортировать, если невозможно сохранить отношения сопоставленного элемента с другими элементами. Отношение может не сохраниться по следующим причинам.

    Определение схемы сопоставленного элемента содержится в последовательности со следующими атрибутами:

    • атрибут maxoccurs не равен 1;

      последовательность содержит более одного прямого дочернего элемента или включает в себя другой составной объект в качестве такого элемента.

    Неповторяющиеся элементы одного уровня с одним и тем же повторяющимся родительским элементом сопоставлены с разными XML-таблицами.

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

    Дочерние элементы разных родительских элементов сопоставлены с одной и той же XML-таблицей.

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

    Список списков. В одном списке элементов есть другой список элементов.

    Ненормированные данные. XML-таблица содержит элемент, который в соответствии с определением в схеме должен встречаться один раз (атрибуту maxoccurs присвоено значение 1). При добавлении такого элемента в XML-таблицу Excel заполнит столбец таблицы несколькими его экземплярами.

    Выбор. Сопоставленный элемент является частью конструкции схемы .

При импорте данных из файла формата KML на карту добавляются:

    метки (координаты, описание, подпись, цвет);

    линии (все настройки, которые можно менять в Конструкторе);

    многоугольники (все настройки, которые можно менять в Конструкторе).

Если в исходном файле были группы ─ они не сохранятся .

Цвет объектов приводится к наиболее близкому из поддерживаемых в Конструкторе.

Пример результатов импорта данных из файла формата KML (на английском, но использоваться могут и другие языки):

GPX

При импорте данных из файла формата GPX на карту добавляются метки (координаты, описание, подпись), а также объекты routes и tracks.

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

Пример результатов импорта данных из файла формата GPX (на английском, но использоваться могут и другие языки):

GeoJSON

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

Если в исходном файле были группы ─ они не сохранятся.

Цвет объектов приводится к наиболее близкому из поддерживаемых в Конструкторе. Пример результатов импорта данных из файла формата GeoJSON (на английском, но использоваться могут и другие языки):

CSV

При импорте данных из файла формата CSV на карту добавляются только метки (координаты, описание, подпись, номер).

    Разделителем может быть запятая, точка с запятой или знак табуляции.

    Порядок полей:

    1. Поля «Широта» и «Долгота» обязательны к заполнению. Остальные поля можно оставить пустыми.

      Координаты задаются в формате десятичной дроби, где целая часть отделяется от дробной точкой.

      Например: 51.52014078866054,-0.1044968729335983 .

      Описание.

      Текстовые значения подписи и описания желательно заключать в кавычки.

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

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

Пример записи файла, подготовленного для импорта:

51.530216469900985,-0.12356737902929697,"при открытии «Кингс-Кросс»","Кингс-Кросс Сент-Панкрасс","162" .

XLSX

При импорте данных из файла формата XLSX на карту добавляются только метки (координаты, описание, подпись, номер).

Файл, используемый для импорта, должен соответствовать шаблону:

Например, при импорте данных из файла, содержащего записи (на английском, но использоваться могут и другие языки):

Мы получим карту вида:

______________________________________________________________

Меня зовут Александр и я фрилансер, основная моя специализация - это Google Apps Script. Одному из заказчиков потребовалось программно конвертировать файлы Microsoft Excel в Google Spreadsheets. Я раньше с такой задачей не сталкивался, поэтому призвал на помощь Google. Перерыл кучу форумов, но готового решения не нашёл. Пришлось писать свой велосипед. И хотя код получился коротким, времени на нахождение решения потребовалось не мало. Вот то, что получилось:

function convert(folderId) { var folderIncoming = DriveApp.getFolderById(folderId); var files = folderIncoming.getFilesByType(MimeType.MICROSOFT_EXCEL_LEGACY); while (files.hasNext()) { var source = files.next(); var sourceId = source.getId(); var fileName = source.getName().replace(".xls", ""); var file = { title: fileName, }; file = Drive.Files.copy(file, sourceId, {convert: true}); } }
Эта функция принимает в качестве параметра ID папки, в которой находятся файлы нуждающиеся в конвертировании. Находит в этой папке файлы соответствующие типу MimeType.MICROSOFT_EXCEL_LEGACY, это XLS документы Microsoft Excel, и создаёт их копии в этой же папке. При копировании и происходит конвертирование формата, за это отвечает параметр convert: true. Если в имени файла оригинала присутствует расшитение.xls, то оно удаляется.

Если нужно обрабатывать XLSX файлы, то меняем тип на MimeType.MICROSOFT_EXCEL и
var fileName = source.getName().replace(".xls", ""); на var fileName = source.getName().replace(".xlsx", "");
Но если просто скопировать этот код и попытаться запустить, то он выдаст ошибку ""ReferenceError: Объект «Drive» не определен.". Для её устранения нужно в редакторе кода, в меню «Ресурсы» выбрать пункт «Дополнительные функции Google...». В появившемся окне, находим «Drive API» и включаем его.

Затем, в меню «Ресурсы» выбрать пункт «Проект Developers Console...». В появившемся окне, переходим по ссылке с ID проекта.

На появившейся странице, в левом меню выбираем «APIs & auth» затем «APIs». Появится список API, в нём переходим по ссылке «Drive API».

Нажимаем на кнопку «Enable API» - готово. Можно запускать.

Аналогично можно конвертировать файлы других форматов.

Надеюсь, что эта заметка сэкономит кому-нибудь время.

CSV (Comma Separated Values) – распространённый формат для хранения табличных данных (числовых и текстовых) в виде простого текста. Этот формат файлов популярен и живуч благодаря тому, что огромное количество программ и приложений понимают CSV, хотя бы как альтернативный вариант файлового формата для импорта / экспорта. Более того, формат CSV позволяет пользователю заглянуть в файл и немедленно найти проблему с данными, если таковая имеется, изменить разделитель CSV, правила цитирования и так далее. Это возможно потому, что CSV – это простой текст, и даже не очень опытный пользователь, сможет легко его понять без специальной подготовки.

В этой статье мы изучим быстрые и эффективные способы экспорта данных из Excel в CSV и узнаем, как преобразовать файл Excel в CSV, сохранив без искажений все специальные и иностранные символы. Описанные в статье приёмы работают во всех версиях Excel 2013, 2010 и 2007.

Как преобразовать файл Excel в CSV

Если требуется экспортировать файл Excel в какое-либо другое приложение, например, в адресную книгу Outlook или в базу данных Access, предварительно преобразуйте лист Excel в файл CSV, а затем импортируйте файл .csv в другое приложение. Ниже дано пошаговое руководство, как экспортировать рабочую книгу Excel в формат CSV при помощи инструмента Excel – «Сохранить как ».

Замечание: Все упомянутые форматы сохраняют только активный лист Excel.


Экспортируем из Excel в CSV с кодировкой UTF-8 или UTF-16

Если на листе Excel содержатся какие-либо специальные или иностранные символы (тильда, ударение и подобные) или иероглифы, то преобразование листа Excel в CSV описанным выше способом не сработает.

Дело в том, что команда Сохранить как > CSV (Save as > CSV) исказит все символы, кроме ASCII (American Standard Code for Information Interchange). И если на листе Excel есть парные кавычки или длинные тире (перенесённые в Excel, например, из документа Word при копировании / вставке текста) – такие символы также будут искромсаны.

  • UTF-8 – это более компактная кодировка, использующая для каждого символа от 1 до 4 байт. Чаще всего рекомендуется использовать этот формат, когда символы ASCII преобладают в файле, т.к. большинство таких символов требует 1 байт памяти. Ещё одно преимущество в том, что кодировка файла UTF-8, содержащего только символы ASCII, ничем не будет отличаться от такого же ASCII-файла.
  • UTF-16 использует от 2 до 4 байт для хранения каждого символа. Учтите, что не во всех случаях файл UTF-16 требует больше места в памяти, чем файл UTF-8. Например, японские символы занимают от 3 до 4 байт в UTF-8 и от 2 до 4 байт в UTF-16. Таким образом, есть смысл использовать UTF-16, если данные содержат азиатские символы, в том числе Японские, Китайские и Корейские. Существенный недостаток этой кодировки в том, что она не полностью совместима с ASCII-файлами и требуются специальные программы для отображения таких файлов. Помните об этом, если планируете импортировать получившиеся файлы из Excel куда-то ещё.

Как преобразовать файл Excel в CSV UTF-8

Предположим, у нас есть лист Excel с иностранными символами, в нашем примере – это японские имена.

Чтобы экспортировать этот лист Excel в файл CSV, сохранив при этом все иероглифы, сделаем следующее:


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

  1. Так как в нашем текстовом Юникод файле в качестве разделителей используется символ табуляции, а мы хотим преобразовать его в CSV (разделители – запятые), то необходимо заменить символы табуляции на запятые.

Замечание: Если нет строгой необходимости получить файл именно с разделителями – запятыми, а нужен любой файл CSV, который Excel сможет понять, то этот шаг можно пропустить, так как Microsoft Excel отлично понимает файлы с разделителем – табуляцией.

Замечание: Если Ваш файл предназначен для использования за пределами Excel и формат UTF-8 является обязательным требованием, то не совершайте на листе никаких изменений и не сохраняйте его снова в Excel, поскольку это может привести к проблемам с чтением кодировки. Если какая-то часть данных не отображается в Excel, откройте тот же файл в Блокноте и в нём внесите исправления в данные. Не забудьте снова сохранить файл в формате UTF-8.

Как преобразовать файл Excel в CSV UTF-16

Экспортировать в файл CSV UTF-16 намного быстрее и проще, чем в UTF-8. Дело в том, что Excel автоматически применяет формат UTF-16 при сохранении файла как Текст Юникод (Unicode Text).

Для этого сохраняем файл при помощи инструмента Сохранить как (Save as) в Excel и затем в Проводнике Windows изменяем расширение созданного файла на .csv . Готово!

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

Другие способы преобразования файлов Excel в CSV

Описанные выше способы экспорта данных из Excel в CSV (UTF-8 и UTF-16) универсальны, т.е. подойдут для работы с любыми специальными символами и в любой версии Excel от 2003 до 2013.

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

Преобразуем файл Excel в CSV при помощи Таблиц Google

Как оказалось, можно очень просто преобразовать файл Excel в CSV при помощи Таблиц Google. При условии, что на Вашем компьютере уже установлен Google Drive , выполните следующие 5 простых шагов:

Совет: Если файл Excel относительно небольшой, то для экономии времени можно перенести из него данные в таблицу Google при помощи копирования / вставки.


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

Сохраняем файл.xlsx как.xls и затем преобразуем в файл CSV

Для этого способа не требуется каких-либо дополнительных комментариев, так как из названия уже всё ясно.

Это решение я нашёл на одном из форумов, посвящённых Excel, уже не помню, на каком именно. Честно говоря, я никогда не использовал этот способ, но, по отзывам множества пользователей, некоторые специальные символы теряются, если сохранять непосредственно из .xlsx в .csv , но остаются, если сначала .xlsx сохранить как .xls , и затем как .csv , как мы .

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

Сохраняем файл Excel как CSV при помощи OpenOffice

OpenOffice – это пакет приложений с открытым исходным кодом, включает в себя приложение для работы с таблицами, которое отлично справляется с задачей экспорта данных из формата Excel в CSV. На самом деле, это приложение предоставляет доступ к большему числу параметров при преобразовании таблиц в файлы CSV (кодировка, разделители и так далее), чем Excel и Google Sheets вместе взятые.

Просто открываем файл Excel в OpenOffice Calc, нажимаем Файл > Сохранить как (File > Save as) и выбираем тип файла Текст CSV (Text CSV).

На следующем шаге предлагается выбрать значения параметров Кодировка (Character sets) и Разделитель поля (Field delimiter). Разумеется, если мы хотим создать файл CSV UTF-8 с запятыми в качестве разделителей, то выбираем UTF-8 и вписываем запятую (,) в соответствующих полях. Параметр Разделитель текста (Text delimiter) обычно оставляют без изменения – кавычки (“). Далее нажимаем ОК .

Таким же образом для быстрого и безболезненного преобразования из Excel в CSV можно использовать ещё одно приложение – LibreOffice . Согласитесь, было бы здорово, если бы Microsoft Excel предоставил возможность так же настраивать параметры при создании файлов CSV.

В этой статье я рассказал об известных мне способах преобразования файлов Excel в CSV. Если Вам знакомы более эффективные методы экспорта из Excel в CSV, расскажите об этом в комментариях. Благодарю за внимание!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: