Как разобрать файл excel
Описание задачи
Вот согласитесь, что очень часто офисные работники обращаются к вам по вопросам восстановления файлов на нужное время. Логично, что у вас должна быть система резервного копирования, но и она не может делать бэкапы каждые 10 минут, особенно если большие объемы. Пользователь может делать сотни правок в файле, и в какой-то момент осознать, что ему нужно откатиться. Штатными средствами вы не всегда это можете сделать, и из бэкапа не всегда восстановить, если файл еще не успел туда попасть.
Методы восстановления excel файла после сохранения
Существует ряд возможностей, которые смогут вам помочь вернуть потерянную информацию в вашем файле Excel:
- Восстановление из снапшота
- Восстановление из предыдущей версии
- Возвращаем файл средствами самого Excel
- Использование истории файлов
- Восстановление в облаке
Использование снапшотов в Excel
Те кто из вас сталкивался в своей практике с виртуальной машиной, то наверняка знает, что там есть технология моментальных снимков (снапшотов), я про это рассказывал, но в двух словах это быстрое сохранение состояния работы с удобным откатом при необходимости, очень часто используется в тестовых средах. Как оказалось в MS Excel, так же можно реализовать данный функционал, чем я постоянно пользуюсь. Для включения снимков для файлов Excel. вам необходимо установить бесплатный компонент Kutools for Excel Setup.
Установка Kutools for Excel
Хотя установка Kutools for Excel очень простая и тривиальная, я покажу ее для целостности статьи. Запускаем установочный файл. На первом экране мастера инсталляции нажимаем "Далее".
Принимаем лицензионное соглашение.
Указываем, для всех будет доступна утилита или нет.
Задаем каталог установки и нажимаем заветную кнопку.
После завершения инсталляции, выставите галку "Запустить Kutools for Excel".
В результате чего у вас будет запущен Excel, слева вы увидите рабочую область Kutools for Excel и две дополнительные вкладки.
Как создать снапшот в Excel
Теперь, для того чтобы создать моментальный снимок документа,
вам нужно открыть вкладку "KUTOOLS" и выбрать пункт "Snap - Track Snap".
Задаем имя снимка, лучше задавать понятное для вас имя, чтобы потом легко можно было выбрать время на которое нужно восстановить файл Excel.
Теперь, чтобы произвести восстановление файла после сохранения, вы опять открываете "Snap", где видите все ваши снапшоты. Выбираем нужный.
Вас уведомят, что будет восстановлена версия на такое состояние, вы увидите дату. Если все устраивает, то соглашаемся, через 10 секунд у вас будет возвращена нужная вам версия. Согласитесь, что это очень удобный метод по откату вашего документа в нужное состояние.
Второй метод восстановить перезаписанный файл excel
Если вы ранее не делали снапшотов вашего файла, да и в принципе не знали, о такой возможности, то можете попробовать восстановить excel файл средствами операционной системы в Windows. В Windows данная функция называется "Предыдущие версии" в десятке есть еще "История файлов".
Для того, чтобы ей воспользоваться, откройте свойства нужного вам файла и перейдите на вкладку "Предыдущие версии" или же из контекстного меню файла выбрать пункт "Восстановить прежнюю версию".
В списке версий файлов вам необходимо найти нужный вам и нажать восстановить.
Вас попросят подтвердить восстановление вашего Excel файла.
В итоге файл восстановился на прежнее состояние, проверяем его содержимое.
Если у вас в списке версий отсутствуют точки отката, то это говорит о двух моментах:
- У вас просто их нет и вы используете самую последнюю версию
- У вас не включены точки восстановления системы Windows, если их нет, то и нет возможности восстановить файлы Excel таким методом.
- В Windows 10 не включена функция "История файлов", если вы используете ее
Восстановление файлов Excel при аппаратном сбое оборудования
Ни одно оборудование не застраховано от того, что оно не сбоит, вы можете как-то минимизировать данный процесс, но не более. К примеру у вас мог случиться синий экран смерти dpc watchdog violation, что привело к нештатному завершению всех приложений, среди которых были документы Excel. Начиная с версии 2010, они автоматически сохраняются каждые 10 минут, что дает возможность пользователю ощущать какую-то защиту. В таких ситуациях, когда было некорректное закрытие документа, вам при следующем его открытии покажут, что есть автосохраненные точки, вам покажут время их создания. За это отвечает левый блок "Восстановление документа". Указываем нужную версию.
В мгновение ока у вас откроется второй документ, где вы можете сравнить его содержимое и при желании его пересохранить в нужное место.
Метод восстановления несохраненной книги Excel
При некорректном закрытии файла Excel, он может у вас не быть сохранен. В таких случаях можно попытаться восстановить его, для этого перейдите в меню "Файл".
Перейдите в раздел "Открыть - Последние книги", в самом низу будет кнопка "Восстановить несохраненные книги".
В итоге у вас откроется путь C:\Users\Администратор\AppData\Local\Microsoft\Office\UnsavedFiles. В данной папке могут находится снимки файла.
Восстановление в облаке
Одним из больших плюсов использования облачных сервисов, таких как OneDrive, Google Drive является доступность документов везде и возможность быстрого восстановления предыдущих сохранений. Вот вам пример отката в Google Excel. Открываем нужный вам документ, после меню справка вам покажут последнее время изменения, кликаем по нему.
Находим в списке версий нужную нам дату, открываем ее.
Если она нас устраивает, то восстанавливаем наш файл. Еще раз большой плюс в онлайн сервисах.
Сразу хочется сделать несколько замечаний.
Первое. В основном говорить буду про то, с чем сталкивался лично. Претензий на стопроцентное знание «изнанки» формата у меня нет.
Второе. Как многие, вероятно, знают, файлы MS Office 2007 и выше представляют собой архив, который можно открыть с помощью любого архиватора (WinRAR, 7zip и так далее).
Третье. «Под капотом» у этих файлов — в основном XML-разметка, гордо именуемая OOXML или просто OpenXML. Поэтому, в принципе, для понимания принципов редактирования файлов «руками» достаточно будет Блокнота (или, что удобнее, Notepad++).
Итак, начнем с формата MS Excel как наиболее употребимого для генерации всевозможных отчетов, выгрузок из БД и иже с ними.
Когда имеешь дело с форматом .XLSX, на каждый вопрос «почему оно реализовано… так?» следует отвечать: «того требовала оптимизация». Когда Microsoft расширили допустимый размер листа до неприличного с точки зрения наблюдателя (около миллиона строк и 16 тысяч с хвостиком столбцов), они понимали, что найдутся маньяки, которые все это забьют данными под завязку. А через это, если подходить к хранению данных «в лоб», то даже все возрастающих мощностей ПК не хватит ни при каких условиях. Следовательно, надо сделать так, чтобы объем хранимых данных был меньше, чем объем данных в книге. Как это сделать? Забегая вперед: например, исключить дубликаты строк.
Первый интересующий нас файл — %file%/xl/workbook.xml. Основное его назначение — манифест, то есть перечень листов, из которых наша книга Excel, собственно, и состоит.
Выглядит этот перечень, к примеру, так:
Это значит, что в книге 4 листа, и их имена указаны в атрибутах name. Каждому тегу должен соответствовать файл в папке %file%/xl/worksheets. Excel сам знает, как должны называться эти файлы и при попытке их переименовать, сочтет всю книгу поврежденной.
Еще в папке %file%/xl нас интересует файл styles.xml.
Как нетрудно догадаться, здесь хранится информация об оформлении ячеек. Причем в угоду оптимизации, хранится она в достаточно интересном виде. Файл состоит из следующих секций:
Как можно понять, здесь перечислены только уникальные стили оформления текста, использованные в книге. Каждый тег — один стиль. Вложенные теги — особенности стиля, такие как полужирное написание (тег <b/>), кегль (<sz/>) и другие.
2. Заливка ячеек:
Как видно, первый вариант — без заливки вообще, а второй — сплошная заливка библиотечного цвета «gray125».
Как видно, одно наименование здесь состоит из пяти элементов, 4 основных границы и диагональная, то есть все то, что можно настроить через GUI самого Excel.
А вот здесь надо объяснить подробнее. Когда в файле листа мы будем указывать стиль ячейки, мы будем ссылаться как раз на эту секцию. Каждый тег <xf />, представляющий собой один стиль, является собранием ссылок на предыдущие секции, то есть он сам по себе не содержит объявления шрифта, границ и заливки. Рассмотрим интересные атрибуты ближе:
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга Excel, которую нужно "разобрать", т.е. сохранить каждый лист как отдельный файл для дальнейшего использования.
Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.
Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.
Способ 1. Простое разделение
Нажмите сочетание Alt+F11 или выберите в меню Сервис - Макрос - Редактор Visual Basic (Tools - Macro - Visual Basic Editor) , вставьте новый модуль через меню Insert - Module и скопируйте туда текст этого макроса:
Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.
Способ 2. Разделение с сохранением
При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:
Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например "D:\Отчеты\2012" и т.п.
Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла - параметр FileFormat:
Для основных типов файлов значения параметра FileFormat следующие:
- XLSX = 51
- XLSM = 52
- XLSB = 50
- XLS = 56
- TXT = 42
Способ 3. Сохранение в новые книги только выделенных листов
Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:
Создавать новое окно и копировать через него, а не напрямую, приходится потому, что Excel не умеет копировать группу листов, если среди них есть листы с умными таблицами. Копирование через новое окно позволяет такую проблему обойти.
Способ 4. Сохранение только выделенных листов в новый файл
Во всех описанных выше способах каждый лист сохранялся в свой отдельный файл. Если же вы хотите сохранить в отдельный новый файл сразу группу выделенных предварительно листов, то нам потребуется слегка видоизменить наш макрос:
Способ 5. Сохранение листов как отдельных PDF-файлов
- для этого используется уже другой метод (ExportAsFixedFormat а не Copy)
- листы выводятся в PDF с параметрами печати, настроенными на вкладке Разметка страницы (Page Layout)
- книга должна быть сохранена на момент экспорта
Нужный нам код будет выглядеть следующим образом:
Способ 6. Готовый макрос из надстройки PLEX
Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга Excel, которую нужно "разобрать", т.е. сохранить каждый лист как отдельный файл для дальнейшего использования.
Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.
Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.
Способ 1. Простое разделение
Нажмите сочетание Alt+F11 или выберите в меню Сервис - Макрос - Редактор Visual Basic (Tools - Macro - Visual Basic Editor) , вставьте новый модуль через меню Insert - Module и скопируйте туда текст этого макроса:
Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.
Способ 2. Разделение с сохранением
При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:
Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например "D:\Отчеты\2012" и т.п.
Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла - параметр FileFormat:
Для основных типов файлов значения параметра FileFormat следующие:
- XLSX = 51
- XLSM = 52
- XLSB = 50
- XLS = 56
- TXT = 42
Способ 3. Сохранение в новые книги только выделенных листов
Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:
Создавать новое окно и копировать через него, а не напрямую, приходится потому, что Excel не умеет копировать группу листов, если среди них есть листы с умными таблицами. Копирование через новое окно позволяет такую проблему обойти.
Способ 4. Сохранение только выделенных листов в новый файл
Во всех описанных выше способах каждый лист сохранялся в свой отдельный файл. Если же вы хотите сохранить в отдельный новый файл сразу группу выделенных предварительно листов, то нам потребуется слегка видоизменить наш макрос:
Способ 5. Сохранение листов как отдельных PDF-файлов
- для этого используется уже другой метод (ExportAsFixedFormat а не Copy)
- листы выводятся в PDF с параметрами печати, настроенными на вкладке Разметка страницы (Page Layout)
- книга должна быть сохранена на момент экспорта
Нужный нам код будет выглядеть следующим образом:
Способ 6. Готовый макрос из надстройки PLEX
Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:
Постановка задачи
Бьюсь об заклад, что у 99% средних и крупных организаций в России инфраструктура построена на использовании Active Directory. Активный каталог замечательная вещь и легко интегрируется в различные сторонние сервисы. Самая частая задача администратора, это получение отчетов или выгрузок по определенным критериям, например:
- Получить список пользователей Active Directory с рядом атрибутов , чтобы в дальнейшем их вывести из эксплуатации
- Получить список всех компьютеров или пользователей, кто не авторизовывался какое-то время. И так до бесконечности
Получить данные вы можете в разном виде, например в виде выдачи на самом экране, или же в сохраненный файл в формате txt или csv. CSV более распространенный, так как позволяет не только выгружать данные, но и еще их импортировать. Вроде бы все удобно, но есть одно но, когда вы захотите красиво перенести такие данные из csv, txt или экрана, у вас не будет форматирования или столбцов, все будет смешано в кучу, а это не удобно. Ниже я вас научу это обходить.
Структура файла CSV
Файл с разделителями-запятыми (CSV) представляет собой простой текстовый файл, который содержит список данных. Эти файлы часто используются для обмена данными между различными приложениями. Например, базы данных и менеджеры контактов часто поддерживают файлы CSV.
Эти файлы иногда могут называться символьно-разделенными значениями или файлами с разделителями-запятыми. В основном они используют запятую для разделения данных, но иногда используют другие символы, такие как точки с запятой. Идея состоит в том, что вы можете экспортировать сложные данные из одного приложения в файл CSV, а затем импортировать данные из этого файла CSV в другое приложение.
Вот пример такого строки с разделителями:
"Name","OperatingSystem","LastLogonDate","Modified","Enabled" ,"Ping","DistinguishedName""DC01","Windows Server 2008 R2 Standard","02.11.2018 6:14:02", "21.12.2018 15:56:16","Torge","False","CN=DC01, OU=ComputerStore,OU=root,DC=pyatilistnik,DC=org"
теперь представьте, что таких строк сотни или тысячи, а вы хотите все скопировать в ваш Exсel и по столбцам, вот тут вы и поймете, что одностроковый формат требует преобразования. Благо, это делается очень быстро и просто. Вот пример моего тестового csv файла.
Как csv разделить по столбцам в Excel
Первым инструментом, который позволит из csv получить красивые столбцы и разбиение по ним, будет Excel. Откройте в Excel ваш файл csv.
- Выделите первый столбец и перейдите на вкладку "Данные"
- Найдите пункт "Текст по столбцам"
На первом окне мастера распределения текста по столбцам нажмите "Далее".
Далее вам необходимо указать по каким критериям производить разбивку по столбцам, на выбор у вас будет:
- Знак табуляции
- Точка с запятой
- Запятая
- Пробел
- Другой вариант
В моем примере CSV разделяет отдельные данные с помощью запятой. Тут же вы сразу видите, как это будет выглядеть в области "Образец разбора данных".
Далее при необходимости вы можете указать формат (Общий, текстовый, дата) и диапазон к которому будет применяться ваше преобразование. Нажимаем "Готово".
На выходе я получил красивую таблицу, где есть разбивка по столбца. В таком виде мне уже удобнее оперировать данными.
Далее вам остается сохранить файл в формате xlsx и радуемся жизни.
Как csv разделить по столбцам через Google Таблицы
Не так давно я вам рассказывал про установку через групповую политику расширения для Google Chrome под названием "Редактирование файлов Office". Это расширение позволяло работать с файлами Word, Excel и PowerPoint в Google Документах, Google Таблицах и Google Презентациях. Если вы через него откроете ваш файл CSV, то вы буквально в два клика сможете его разбить на столбцы. Для этого выберите меню "Файл - Сохранить в формате Google Таблиц".
Начнется переделывание формата CSV в формат Google Таблиц
На выходе вы получаете разделенный по столбцам документ.
Далее вы уже можете оперировать этими данными или же можете их сохранить в нужный формат. Если у вас изначально документ Google Таблиц содержит данные разделенные запятой в виде одной строки, то вы их можете преобразовать в столбцы вот таким методом. Открываете меню "Данные - Разделить текст на столбцы"
Выбираете тип разделения, в моем случае запятая.
Затем выбираете ваш столбец с данным и еще раз нажмите "Данные - Разделить текст на столбцы"
Читайте также: