Как импортировать файл Excel в Python с помощью Pandas

Вы можете легко импортировать файл Excel в Python с помощью Pandas . Для достижения этой цели вам необходимо использовать read_excel .

В этом кратком руководстве я рассмотрю шаги по импорту файла Excel в Python на простом примере.

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

 import pandas as pddf =  pd.read_excel (r'Path, где хранится файл Excel  File name.xlsx ') print (df) 

Обратите внимание, что для более ранней версии Excel вам может потребоваться использовать расширение файла of ‘xls’

И если у вас есть конкретный лист Excel , который вы хотите импортировать, вы можете применить:

 import pandas как pddf = pd.read_excel (r'Path, где хранится файл Excel  File name.xlsx ', sheet_name =' ваше имя листа Excel ') print (df) 

Давайте теперь рассмотрим пример, который включает данные, которые нужно импортировать в Python.

Содержание
  1. Данные, которые нужно импортировать в Python
  2. Шаги по импорту файла Excel в Python с помощью Pandas
  3. Шаг 1. Захватите путь к файлу
  4. Шаг 2. Примените код Python
  5. Шаг 3. Запустите код Python, чтобы импортировать файл Excel
  6. Необязательный шаг: выбор подмножества of column/s
  7. Простой интерфейс для импорта файла Excel
  8. Заключение
  9. /ImportExcel
  10. Пожертвование
  11. Как работать с видео
  12. Обновления непрерывной интеграции
  13. Что нового в 7.1.1
  14. Что нового в 7.1.0
  15. Исправлено
  16. Updated h4> Добавить поддержку -AsDate в Import-Excel и ConvertFrom-ExcelSheet Новые примеры
  17. Новые примеры
  18. Что нового в 7.0.1
  19. Что нового в 7.0.0
  20. Рефакторинг
  21. Что нового 6.5.3
  22. Что нового в 6.5.2
  23. Что нового 6.5.0
  24. Что нового в 6.2.4
  25. Что нового в 6.2.3
  26. Что нового 6.2.2
  27. Что нового 6.2. 0
  28. Что нового в 6.1.0
  29. Что нового в 6.0.0
  30. Что нового в 5.4.5
  31. Новый пример
  32. Что нового в 5.4.4
  33. Что нового в 5.4.3
  34. Что нового в версии 5.4.2
  35. Что нового 5.4. 0
  36. Что нового в 5.3.4
  37. Что нового в 5.3.3
  38. Что нового в версии 5.3
  39. Что нового в версии 5.2
  40. Что нового в версии 5.1.1
  41. Что нового в версии 18 июля
  42. Новое в 18 июня
  43. Бонусные баллы
  44. Попробуйте PassThru
  45. Результат
  46. Get-Process, экспортированный в Excel
  47. Всего физических Группировка памяти по компании
  48. Импорт данных из электронной таблицы Excel
  49. Известные проблемы

Данные, которые нужно импортировать в Python

Предположим, у вас есть следующая таблица, сохраненная в Excel ( где имя файла Excel — ‘P roduct List ‘):

Продукт Цена
Настольный компьютер 700
Планшет 250
iPhone 800
Ноутбук 1200

Как бы ты тогда импортировать указанные выше данные в Python?

Вы можете выполнить следующие шаги, чтобы импортировать файл Excel в Python.

Шаги по импорту файла Excel в Python с помощью Pandas

Шаг 1. Захватите путь к файлу

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

В моем случае я сохранил файл Excel на своем рабочем столе:

C: Users Ron Desktop Product List.xlsx

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

Don ‘ не забудьте указать имя файла (в нашем примере это ‘Product list ‘как выделено синим). Вам также необходимо указать расширение файла Excel (в нашем случае это «.xlsx», как выделено зеленым).

Шаг 2. Примените код Python

А вот и код Python, адаптированный для нашего примера. Я добавил несколько примечаний в код, чтобы прояснить некоторые из используемых компонентов.

 импортировать панды как pddf = pd.read_excel (r'C:  Users  Ron  Desktop  Product List.xlsx ')  # поместите букву "r" перед строкой пути для адресации специального символа, такого как ''.  Не забудьте указать имя файла в конце пути + '.xlsx'print (df) 

Шаг 3. Запустите код Python, чтобы импортировать файл Excel

Запустите код Python (настроенный на ваш путь), и вы получите следующий набор данных:

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

Примечание : вам необходимо установить xlrd , если при запуске кода возникает следующая ошибка:

ImportError: установите xlrd> = 1.0.0 для поддержки Excel

Затем вы можете использовать подход установки PIP для установки xlrd следующим образом:

 pip install xlrd 

Необязательный шаг: выбор подмножества of column/s

Что делать, если вы хотите выбрать конкретный столбец или столбцы из файла Excel?

Например, что, если вы хотите выбрать только Столбец Product ? В этом случае вы можете указать имя этого столбца, как показано ниже:

 import pandas as pddata = pd.read_excel (r'C:  Users   Ron  Desktop  Product List.xlsx ') df = pd.DataFrame (data, columns = [' Product ']) print (df) 

Запустить код (после настройки пути к файлу) , и вы получите только столбец Product:

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

 import pandas as pddata =  pd.read_excel (r'C:  Users  Ron  Desktop  Product List.xlsx ') df = pd.DataFrame (data, columns = [' Product ',' Price ']) print (df) 

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

До сих пор вы видели, как импортировать файл Excel в Python, указав имя пути в коде.

Но знаете ли вы, что вы также можете импортировать файл Excel без указания пути?

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

Простой интерфейс для импорта файла Excel

Вы можете использовать приведенный ниже код для импорта файла Excel в Python:

 импортировать tkinter как tkfrom tkinter import filedialogimport pandas as pdroot = tk.Tk () canvas1 = tk.Canvas (root, width = 300, height = 300, bg = 'lightsteelblue') canvas1.pack () def  getExcel (): global df import_file_path = filedialog.askopenfilename () df = pd.read_excel (import_file_path) print (df) browseButton_Excel = tk.Button (text = 'Импортировать файл Excel', command = getExcel, bg = 'green', fg  = 'white', font = ('helvetica', 12, 'bold')) canvas1.create_window (150, 150, wind  ow = browseButton_Excel) root.mainloop () 

После запуска кода вы увидите экран с одной кнопкой для импорта файла Excel:

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

Заключение

Вы только что видели, как импортировать файл Excel в Python с помощью Pandas.

Иногда вам может потребоваться импортировать файл CSV в Python. В этом случае вы можете проверить следующий учебник, в котором объясняется, как импортировать файл CSV в Python с помощью Pandas.

Вы также можете проверить Pandas документации, чтобы узнать больше о различных параметрах, которые вы можете применить в отношении read_excel.



/ImportExcel

Пожертвование

Если этот проект помог вам сократить время на выполнение работы, дайте мне знать.

Система CI Среда Статус
Azure DevOps Windows
Azure DevOps Windows (Core)
Azure DevOps Ubuntu
Azure DevOps macOS

PowerShell Import-Excel —

Установить из галереи PowerShell.

Этот модуль PowerShell позволяет вы можете читать и записывать файлы Excel без установки Microsoft Excel в вашей системе. Не нужно возиться с громоздким COM-объектом Excel. Создание таблиц, сводных таблиц, диаграмм и многого другого стало намного проще.

Как работать с видео

  • Модуль PowerShell Excel — ImportExcel

Установка —

PowerShell V5 и более поздних версий

Вы можете установить модуль ImportExcel непосредственно из галереи PowerShell

  • [Рекомендуется] Установить в вашу личную папку модулей PowerShell

      Установить-  Модуль ImportExcel -scope CurrentUser  
  • [Требуется повышение уровня] Установить для всех (папка модулей PowerShell на компьютере)

      Install-Module ImportExcel  

Обновления непрерывной интеграции

Большое спасибо Illy за то, что он поднял Azure DevOps CI на новый уровень. Улучшенные значки, улучшенная матрица для кроссплатформенного тестирования ОС и многое другое.

Кроме того, подключение отчета PowerShell ScriptAnalyzer Excel, который мы встраивали в каждый запуск, как артефакт.

Что нового в 7.1.1

  • Объединенное исправление Linux Нейта Феррелла. Спасибо!
  • Export-MultipleExcelSheets перемещен из psm1 в Примеры/Экспериментальный
  • Удалена сборка CI в Appveyor
  • Спасибо, Майки Броновски, за
    • Многократные проверки
    • Стандартизация регистров имен параметров и переменных
    • Плюс обновление> 50 примеров и их согласованность.

Что нового в 7.1.0

Исправления, обновления и новые примеры

Исправлено

  • Странное поведение при возврате функции Import-Excel https://github.com /dfinke/ImportExcel/issues/792
  • Export-Excel -FreezeTopRow with -Title https://github.com/dfinke/ImportExcel/issues/795
  • Не импорт, когда первая строка содержит 0 в столбце https://github.com/dfinke/ImportExcel/issues/802

Updated h4>
  • Добавить поддержку -AsDate в Import-Excel и ConvertFrom-ExcelSheet

Новые примеры

PS1 Описание Ссылка
Приставать-Кому -XLSx Запускает Pester, собирает результаты, обогащает их и экспортирует в Excel Pester-To-XLSx.ps1
DSUM Суммирует числа в поле (столбце) записей в списке или база данных, соответствующая указанным вами условиям. DSUM.ps1
VLookup Настройки лист, вы вводите имя элемента и ищется количество VLOOKUP.ps1

Что нового в 7.0.1

Дополнительные улучшения инфраструктуры.

  • Уточнение анализа сценария конвейера
  • Улучшить опубликованные артефакты
  • Добавить проверки манифеста (psd1)

Что нового в 7.0.0

Рефакторинг

  • Удалить все функции из psm1
  • Переместить функции в общедоступный подкаталог
  • Выровнять рабочий процесс TDD и непрерывной интеграции для этого рефакторинга
  • Переместить справку из функций в mdHelp и использовать PlatyPS для создания внешней справки file

Спасибо Джеймсу О’Нилу за рефакторинг и Illy за непрерывную интеграцию.

Что нового 6.5.3

Еще раз спасибо сообществу за то, что сделали этот модуль даже лучше.

  • Исправить импорт заголовков Excel
  • Многочисленные улучшения для DataTables и их экспорт в Excel Джеймс О’Нил
    • Имена, стили, правильное добавление
  • Обрабатывает пометку пустой строки в пустой таблице как фиктивной строки.
  • Переделать код на основе рекомендаций линтинга.
  • Обновите существующие тесты и добавьте больше
  • Support PipelineVariable благодаря Люку Декенсу за отчетность и Илии за PR.
  • Исправить цитирование в ConvertFromExcelToSQLInsert beckerben

Что нового в 6.5.2

Спасибо uSlackrill

  • Устраняет проблему порядка столбцов (плюс тесты) для Get-ExcelColumnName

Спасибо, jhoneill

  • Добавлен параметр -Force для Send-SQLDataToExcel, чтобы он отправлял что-то, даже если строки не возвращаются. (см. # 703)
  • Добавлен -asText в import-Excel см. (# 164) [https://github.com/dfinke/ImportExcel/issues/164] и многие другие
  • Linux. Теперь установите переменную среды, если присутствует поддержка, необходимая для автоматического изменения размера, и используйте эту переменную среды, чтобы решить пропустить операции автоматического изменения размера.
  • Исправлены тесты, для работы которых требовалось автоматическое изменение размера, поэтому они пропускали переменную среды. set.
  • Исправлен еще один разрыв, когда на azure модуль никогда не загружался.
  • Добавьте комментарий к ci.ps1, чтобы улучшить определение версии .NET и оставил некоторый закомментированный код .

Other

  • Добавлен пример ReadAllSheets.ps1 на основе этой темы https://github.com/dfinke/ImportExcel /issues/678 ​​

Что нового 6.5.0

Теперь используется последняя версия EPPlus. Модульные тесты обновляются и проходят, если вы столкнулись с проблемами, пожалуйста, откройте проблему. Вы можете вернуться к более старой версии из PowerShell Gallery, если вас заблокировали.

  • Модульные тесты были обновлены и исправлены
  • «Set-WorksheetProtection» теперь включен.
  • Внесено изменение, чтобы сделать диапазон Set-Excel более удобным при автоматическом изменении размера на платформах, отличных от Windows.
  • Исправлено — только тесты Windows не пытаются для запуска в системах, отличных от Windows.
  • Тесты на основе Get-Process не пытаются запускаться, если возвращено
  • Если $ env: TEMP не установить (как это будет в случае с Linux)
  • Join-Path, если он используется, чтобы пути были построены с/или с использованием в зависимости от ОС, в которой выполняется тест.
  • Теперь поддерживается Excel Sparklines, ознакомьтесь с примерами SalesByQuarter и Sparklines.

Что нового в 6.2.4

Разумные значения параметров по умолчанию, сделают вашу жизнь проще и выполнят работу быстрее.

  • Спасибо DomRRuggeri за первоначальный PR Out-Excel и пинок прекратить разговор об улучшениях.
  • Спасибо ili101 за рефакторинг и улучшение значений по умолчанию, а также за добавление тестов для параметров.
  • Создает таблицу с фильтрацией.
  • Выбирает TableStyle
  • Автоматически отображает электронную таблицу Excel
  Get-Process |  выберите Компания, Имя, Ручки |  Export-Excel  

Что нового в 6.2.3

Спасибо jhoneill.

  • Реорганизованная копия листа и добавленная поддержка каналов
  • Добавить ClearAll в Установить -ExcelRange
  • Исправить неработающий тест и регрессию для паролей
    • Примечание : Пароли не работают в pwsh . Библиотека EPPlus в настоящее время не поддерживает эти API ядра dotnet.

Что нового 6.2.2

  • Добавлена ​​запрошенная функция, линии тренда диаграммы.
    • Пример сценария PowerShell
  • Исправлена ​​проблема импорта Excel и относительного пути, добавлены модульные тесты.

Что нового 6.2. 0

Спасибо Джеймсу О’Нилу

  • Исправлено, Import-Excel может читать файлы xlsx, даже если они уже открыты в Excel
  • Добавлен New-ExcelStyle , плюс -Style в Export-Excel и -Merge с Set-ExcelRange
  • Добавлены примеры стилей

Что нового в 6.1.0

Спасибо вы к Джеймсу О’Нилу

  • Вместо указания пути предоставляет объект пакета Excel (из Open-ExcelPackage ), это позволяет избежать повторного -чтение всего файла при импорте нескольких его частей. Чтобы разрешить несколько операций чтения, Import-Excel НЕ закрывает пакет, и вы должны использовать Close-ExcelPackage -noSave , чтобы закрыть его.

Что нового в 6.0.0

Спасибо Джеймсу О’Нилу за оптимизацию и рефакторинг, приведший к ~ 10x увеличение скорости. Спасибо ili101 за более ранние PR, которые обеспечили основу для этого.

  • Улучшение производительности для Export-Excel см. # 506 и # 555. Это означало возврат кода из Add-CellValue в блок процесса Export-Excel , поскольку накладные расходы на вызов функции были намного больше, чем время выполнения кода внутри нее. Сообщение в блоге, на которое нужно подписаться. Некоторые тесты показывают увеличение скорости . # 572 касалось неработающего тега #region в этой части кода, который был очищен в процессе.
  • Export-Excel теперь имеет — Параметр InputObject (ранее это был -TargetData, который теперь является псевдонимом для InputObject). Если inputobject представляет собой массив, каждый элемент будет вставлен, поэтому вы можете запустить export-excel -inputobject $ x вместо $ х | Export-Excel , и если это объект system.data.datatable , он будет вставлен напрямую, а не по отдельности. Send-SQLDataToExcel использует преимущества этой новой функции. Существуют простые тесты для этих новых элементов.
  • Export-Excel ранее предполагалось -Now , если не было других параметров, он теперь примет значение -Now , если нет -Path или -ExcelPackage . В файле .PSD1 теперь перечислены элементы, экспортированные модулем # 557

Что нового в 5.4.5

Спасибо Джеймсу О’Нилу за отличные дополнения.

  • Изменен Send-SQLDataToExcel, поэтому он сам создает таблицы и диапазоны; ранее он полагался на export-excel для этого, что вызывало проблемы при добавлении данных на существующий лист (# 555).
  • Добавлена ​​новая команда Add-ExcelDataValidation, которая будет применять различные правила проверки данных к диапазонам ячейки
  • Изменено поведение экспорта таким образом, что (1) попытки преобразования в число применяются только в том случае, если значение было строкой; (2) Нулевые значения больше не преобразуются в пустую строку (3) существует специальная проверка для URI, а не только для текста, который является действительным URI. Использование имен UNC в гиперссылках остается проблематичным.
  • Изменено поведение AutoSize в экспорте Excel, теперь оно применяется только к экспортированным столбцам. Ранее, если что-то экспортировалось рядом с уже существующими данными, AutoSize изменял размер всего листа, потенциально отменяя то, что было установлено для более ранних данных. Если кто-то полагался на это поведение, им нужно будет явно указать листу на автоматический размер с помощью $ sheet.cells.autofitColumns. (где $ sheet указывает на лист, это может быть $ ExcelPackage.Workbook.Worksheets [‘Name’])
  • В Compare-Worksheet ключ для сравнения листов теперь может быть записан как хеш-таблица с выражением — используется с командой Group-Object, поэтому, если она действительна в Group-Object, ее следует принять; это позволяет создавать составные ключи, когда сравниваемые данные не имеют столбца, который однозначно определяет строки.
  • В Set-ExcelRange добавлен параметр «Заблокировано», эквивалентный флажку на вкладке «Защита» диалогового окна форматирования ячеек в Excel.
  • Создал функцию Set-WorksheetProtection. Это дает те же параметры, что и диалоговое окно защиты в Excel, но на данный момент это версия 0.9.

Новый пример

  • Добавлен файл MutipleValidations.ps1. Получено из tests.

Что нового в 5.4.4

  • Исправить проблему, когда в Export-Excel передается только одно свойство.
  • Исправить проблему в Copy-ExcelWorksheet , закрыть $ Stream

Что нового в 5.4.3

  • Добавлено удаление- Рабочий лист: удаляет один или несколько рабочих листов из одной или нескольких книг.

Что нового в версии 5.4.2

  • Добавлены параметры -GroupDateRow и -GroupDatePart & -GroupNumericRow, -GroupNumericMin, -GroupNumericMax и -GroupNumericInterval

    в Add-PivotTable и New-PivotTableDefinition. Даты собирают даты одного и того же года, и/или квартала, и/или месяца, и/или дня и т. Д.

    Числа единицы группируют числа в полосы, начиная с Min, и увеличивая шаги, указанные Интервал. Для них добавлены тесты и справка.

  • Set-ExcelRow и Set-ExcelColumn теперь проверяют, существует ли переданное ими имя рабочего листа в книге.

Что нового 5.4. 0

  • Спасибо Конраду Аграмонту, Twitter: @AGramont за пример AddMultiWorkSheet.ps1 . Большое спасибо!
  • Исправлено еще несколько ошибок, из-за которых параметры игнорировались при передаче нулевого значения.
  • Исправлена ​​ошибка, из-за которой заголовки серий диаграммы не могли образовывать ссылку на ячейку (= Sheet1 ! Z10 теперь работает как ссылка на заголовок)
  • Add-Chart теперь допускает один диапазон X или столько диапазонов X, сколько имеется диапазонов Y.
  • Объединить -MultipleSheets более надежен.
  • Ловушка Set-ExcelRow и Set-ExcelColumn пытается обработать лист без строк/столбцов.
  • Справка проверена ( спасибо миссис @Jhoneill!).

Что нового в 5.3.4

  • HotFix для параметра PivotTableStyle должен быть PivotTableStyle https://github.com/dfinke/ImportExcel/issues/453

Что нового в 5.3.3

  • Спасибо (lazywinadmin) [https://github.com/lazywinadmin] — разверните псевдонимы в примерах и в других местах.
  • В Export-Excel исправлена ​​ошибка, из-за которой -AutoNameRange для уже существующих данных включала заголовок в диапазон.
  • В Export-Excel исправлена ​​ошибка, из-за которой нулевая, пустая или пустая строка в списке простых объектов пропускалась.
  • В Export-Excel улучшено поведение при новый рабочий лист создается без данных, и к нему добавляются таблицы и т. д.
  • В Join-Worksheet: добавлен завершитель аргумента для -TitleBackgroundColor и по умолчанию для -TitleBackgroundStyle установлено значение «Solid».
  • В диаграммах Add-Excel, New-ExcelChart, тестах и ​​примерах исправлено неправильное написание «Position»
  • В Send-SqlDataToExcel: улучшена надежность проверки отсутствия возвращаемых данных.
  • В Set-ExcelColumn: -column может поступать из конвейера (поддержка массива усложняет поддержку блоков скрипта); -AutoNameRange больше не требует указания заголовка (так что вы можете сделать 1..10 | Set-ExcelColumn -AutoNameRange); В Set-ExcelRow: -Row может поступать из конвейера.
  • Улучшенное тестовое покрытие (назад более 80%).
  • Справка и примеры улучшений. В «Index — music.ps1» модуль для запроса индекса можно загрузить из галереи PowerShell #requires, установленной для его запроса. В SQL + FillColumns + Pivot example2.ps1 можно загрузить модуль GetSQL и задать #Requires. Таблица результатов F1 доступна с одного диска, и предоставляется ссылка.
  • Добавлена ​​непрерывная интеграция и значки Azure DevOps

Что нового в версии 5.3

  • Улучшения справки и приведение в порядок примеров и дополнительных примеров
  • Пакет Open-Excel и таблица добавления сейчас добавить листы в качестве свойств скрипта, поэтому $ Excel = Open-ExcelPackage -path test.xlsx; $ excel.sheet1 вернет лист с именем «sheet1» $ Excel.SheetName — это свойство скрипта, определенное как $ this.workbook. рабочие листы ["Sheetname"]
  • Переименован Set-Column в Set-ExcelColumn , Set-Row в Set-ExcelRow и Set-Format на Set-ExcelRange . Добавлены псевдонимы, поэтому старые имена по-прежнему работают.
  • Set-ExcelRange (или set-Format) неправильно использовали «Адрес» и «Диапазон». Теперь есть единственный параметр -Range с псевдонимом «Адрес». Если параметр рабочего листа присутствует, функция принимает строку, определяющую ячейки («A1: Z10») или имя диапазона. Без рабочего листа он принимает объект, представляющий именованный диапазон или таблицу; или адрес таблицы, или часть коллекции worksheet.cells.
  • Add-ConditionalFormatting : «адрес» используется правильно, и он будет принимать диапазоны в адресе параметр (диапазон теперь является псевдонимом для адреса). Теперь при необходимости строки условных значений заключаются в кавычки (для = = строки операций должны быть двойные кавычки, см. Проблему № 424). Доработан параметр intellisense. Появились новые параметры: -StopIfTrue и -Priority и поддержка использования параметра -Reverse с правилами цветовой шкалы. (выпуск №430). Логические значения на листе теперь поддерживаются в качестве значения условия. Также объединил два разных типа условий в Export-Excel и исправил ошибку, из-за которой именованные диапазоны не работали в некоторых местах. В New-ConditionalText поддерживается больше типов условного формата, а завершитель аргументов для -ConditionalTextColor отсутствовал и был добавлен.
  • Улучшена обработка гиперссылок в Export-Excel (см. проблему № 426) s
  • Export-Excel лучше проверяет имена таблиц и сводных таблиц (для уникальность) и новый тест в быстрых графиках на наличие подходящих данных для построения графиков. Он также принимает хэш-таблицы для диаграмм, сводных таблиц и параметров условного форматирования, которые разделены на функции, которые их добавляют.
  • Перемещена логика для добавления именованного диапазона из Export-Excel в новый функция с именем Add-ExcelName и логика для добавления таблицы в функцию с именем Add-ExcelTable ; это упрощает выполнение этих задач независимо от Export-Excel, но минимизирует дублирование. Команда Add-ExcelTable имеет дополнительные параметры для переключения параметров с панели инструментов инструментов таблицы (отображение итогов и т. Д.) И установки параметров в строке итогов.
  • Функции сводной таблицы перемещены из Export-Excel.PS1 в их собственный файл и переместил Add-ExcelChart из Export-Excel.ps1 в New-ExcelChart.ps1
  • Исправлена ​​ошибка в Merge-MultipleSheets, когда фоновый узор был установлен на None, что делало цвет фона невидимым.
  • Исправлены проблемы, при которых форматирование могло быть сброшено при использовании Export-Excel для управления существующим листом без добавления данных; это применимо к числовым форматам и таблицам.
  • Add-PivotTable имеет несколько новых параметров. -PassThru возвращает сводную таблицу (например, чтобы разрешить имена/порядок сортировки данных серия, которую нужно изменить) -Address позволяет разместить сводку на существующем листе; -PivotTableStyle позволяет изменить «Medium6», -PivotNumberFormat форматирует ячейки данных. Это более гибкий способ указания исходных данных — копирование параметров диапазона в Set-ExcelRange. Add-ExcelChart теперь используется для создания сводных диаграмм, а -PivotChartDefinition позволяет определять, созданное с помощью New-ExcelChartDefinition . используется при настройке сводной таблицы. Это открывает все возможности Add-ExcelChart без дублирования параметров в таблице Add-Pivot и Export-Excel. Definition, TableStyle, Numberformat и ChartDefiniton можно использовать в New-PivotTableDefinition .
  • Add-ExcelChart теперь поддерживает -PassThru для вернуть график на доработку после создания; теперь есть параметр -PivotTable, позволяющий Add-PivotTable вызывать код в Add-ExcelChart. А в New-ExcelChartDefinition теперь поддерживаются параметры легенды (размер, полужирный шрифт и положение).
  • Параметры ChartDefinition и условного форматирования теперь могут быть хэш-таблицами — все, что имеет знаки Добавить -ExcelChart или Add-ConditionalFormatting, это должно быть приемлемо в качестве определения.

Что нового в версии 5.2

  • Значение не обязательно должно быть обязательным в Set-Row или Set-Column, также немного привел в порядок их параметры.
  • Добавлена ​​поддержка формул массива в Set-Format (это действительно должен быть установлен диапазон теперь, когда он устанавливает значения, формулы и гиперссылки — которые могут быть в списке дел)
  • Исправлена ​​ошибка с -Append в Export-Excel, которая приводила к перезаписи последнего row, если новые данные были простого типа.
  • NumberFormat в Export-Excel теперь устанавливает значение по умолчанию для нового/пустого листа; но [по-прежнему] устанавливает отдельные ячейки при добавлении на лист
  • Добавлена ​​поддержка интервалов времени в Export excel; установить как прошедшие часы, минуты, секунды [h]: mm: sss
  • В Export-Excel улучшен универсальный обработчик для защиты значений, чтобы лучше справляться с вложенными объектами (# 419) и уменьшить количество операций синтаксического анализа.
  • Добавлен переключатель -Calculate в Export-Excel и Close-Excel Package; EPPlus нуждается в формулах для опускания ведущего знака =, поэтому там, где формула установлена, теперь он удаляет ведущий знак =
  • Добавлен параметр -PivotTotals там, где уже был -NoTotalsInPivot, новый разрешает None, Both, Rows, Columns . (# 415)
  • При добавлении Export-Excel только расширенные таблицы и диапазоны, если они были явно указаны. Теперь он делает это автоматически.
  • На листе сравнения и слияния изначально была проблема с> 26 столбцами, я исправил слияние, оказалось, что я не исправил сравнение … У меня сейчас
  • Исправлена ​​ошибка, из-за которой Export-Excel не распознал, что ему нужно было установить $ TitleFillPattern — сделало значение по умолчанию «Solid»
  • ExcludeProperty в Export-Excel теперь поддерживает подстановочные знаки.
  • Добавлен DateTime в список типов, которые можно экспортировать как один столбец.
  • Добавлена ​​поддержка пароля для Open- и Close-ExcelPackage (пароль не выполнялся что угодно в Export-Excel)
  • Дало Expand-NumberFormat лучшее понимание макетов валют — он следует за .NET, который не всегда совпадает с установленным в Excel 🙁

Что нового в версии 5.1.1

  • Set-Row и Set-Column теперь будут создавать гиперссылки и вставлять даты правильно
  • Import-Excel теперь имеет завершитель аргументов для имени рабочего листа — это может быть медленным для больших файлов
  • Параметр NumberFormat (в Export-Excel, Set-Row , Set-Column, Set-Format и Add-ConditionalFormat) и параметры X & YAxisNumberFormat (в New-ExcelChartDefinition и Add-ExcelChart) теперь имеют n, а имена «Валюта», «Число», «Процент», «Научные данные», «Дробь», «Краткая дата», «Краткое время», «Долгое время», «Дата-время» и «Текст» будут преобразованы в правильные строки форматирования Excel.
  • Добавлено новая функция Select-Worksheet, чтобы сделать именованный лист активным: добавлен переключатель -Activate в Add-Worksheet, чтобы сделать текущий лист активным, Export-Excel и Add-PivotTable поддерживают -Activate и передать его в Add-Worksheet, а New-PivotTableDefinition позволяет он должен быть частью определения сводной таблицы.
  • Исправлена ​​ошибка в Set-Format, из-за которой -Hidden не работал.
  • Внесены те же изменения в формат Add-Conditional как установленный формат, поэтому -switch: $ false обрабатывается, и 0 перечислений и значений обрабатываются правильно
  • В Export-Excel, обернутые вызовы Add-CellValue в попытке поймать, поэтому значение, которое вызывает проблема не приводит к сбою всего экспорта, а вместо этого генерирует предупреждение (# 410).
  • Дополнительные тесты.

Что нового в версии 18 июля

  • Изменена оценка параметров в Set-Format для поддержки -bold: $ false (и других переключателей, так что если указано false, атрибут будет удален), и для ошибки были перечисления с нулевым значением, а другие нулевые параметры не были установлены.
  • Создание диаграммы перенесено в отдельную функцию (диаграмма Add-Excel) в Export-Excel.ps1. New-Excelchart переименован в New-ExcelChartDefinition, чтобы было понятнее, что он ничего не делает в книге (но для совместимости поместите псевдоним New-ExcelChart, чтобы существующий код не сломался). Обнаружено, что -Header ничего не делает, поэтому это не диаграмма Add-Excel, а в New-ExcelChartDefinition есть сообщение, которое ничего не делает.
  • Добавлены параметры -BarChart -ColumnChart -LineChart -PieChart для экспорта -Excel для быстрых диаграмм без предоставления полного определения диаграммы.
  • Добавлены параметры для управления осями диаграммы и условными обозначениями
  • Добавлены некоторые тесты диаграмм в Export-Excel.tests.ps1. (но тесты и примеры для быстрых диаграмм, осей или легенд все еще в списке дел)
  • Исправлен некорректный код, который был зарегистрирован с ошибкой и приводил к прерыванию добавления диаграмм. (Это не было замечено за пределами GitHub # 377)
  • Добавлен параметр «Reverse» в Add-ConditionalFormatting; и добавлен -PassThru, чтобы упростить изменение деталей правил условного форматирования после создания (# 396)
  • Реорганизован код условного форматирования в Export excel для использования Add-ConditionalFormatting.
  • Переписал Copy-ExcelWorksheet, чтобы использовать функцию копирования вместо импорта | export (395)
  • Найденные сортировки могли быть несовместимыми в Merge-MultipleWorksheet, поэтому теперь выполняйте сортировку по большему количеству столбцов.
  • Исправлена ​​ошибка, появившаяся в Compare-Worksheet при изменении описанные в июньских изменениях ниже, это означало, что цвет шрифта устанавливался только на одном листе при изменении строки. Также обнаружено, что PowerShell ISE и оболочка возвращают результаты Compare-Object в разных последовательностях, что нарушает некоторые тесты. Применена сортировка, чтобы обеспечить предсказуемый порядок вещей. (# 375)
  • Удалены (2) вызова Get-ExcelColumnName (удалена, а затем восстановлена ​​сама функция)
  • Исправлена ​​проблема в Export-Excel, когда были вставлены формулы в виде строк, если применяется «NoNumberConversion» (# 374) и к ячейкам формулы применяется форматирование.
  • Исправлена ​​проблема с набором параметров в Export-Excel, некорректно определяемым в некоторых случаях (I думаю, что это было решено раньше и могло произойти регресс)
  • Вернул [double] :: tryParse в export excel к предыдущему (более длинному) способу, так как более короткий способ не работал правильно с числовые форматы в определенных регионах. (также # 374)
  • Измененные имена таблиц, диапазонов и AutoRangeNames применяются ко всей области данных, если данные не были вставлены, ИЛИ к вставленным данным, только если они есть. (# 376) Это означает, что если есть при нескольких вставках касаются только вставленных данных, а не идут вниз и/или вправо до самой дальней используемой ячейки. Для этого добавлен тест.
  • Добавлены дополнительные параметры из Export-Excel в Join-workheet, join просто вызывает export-excel с этими параметрами, поэтому за ними нет кода (# 383)
  • Добавлены дополнительные параметры из Export-Excel в Send-SQLDataToExcel, отправляются только вызовы export-excel с этими параметрами …
  • Добавлена ​​поддержка передачи System. Data.DataTable непосредственно в Send-SQLDataToExcel
  • Исправлена ​​ошибка в Merge-MultipleSheets, из-за которой, если ключ был «name», столбцы, такие как «displayName», не обрабатывались бы правильно, а также имена вроде «something_ROW» «. Добавлены тесты для рабочего листа сравнения, слияния и объединения.
  • Add-Worksheet, исправлена ​​регрессия с перемещением после (# 392), изменен способ определения имени рабочего листа по умолчанию, поэтому, если ничего не указано, и существующий лист копируется (см. июньские дополнения), а имя еще не существует, исходное имя листа будет сохранено. (# 393) Если имя не задано и создается пустой лист, он будет называться sheetX, где X — номер листа (так что если у вас есть листы FOO и BAR, новый лист будет Sheet3).

Новое в 18 июня

  • Новые команды — Diff, Merge и Join
    • Compare-Worksheet (представленный в 5.0) использует встроенную команду Compare-object для вывода команды: линии DIFF и/или раскрасьте лист, чтобы показать различия. Например, если мои листы являются службами Windows, выделяются дополнительные строки или строки, в которых состояние запуска изменилось

    • Merge-Worksheet (также представленный в 5.0) объединяет две части, сбоку выделяя различия. Итак, теперь у меня могут быть службы сервера A и службы сервера Bs на одной странице. Я придумал, как сделать несколько листов. Таким образом, у меня могут быть серверы A, B, C, D на одной странице :-), то есть Merge-MultpleSheets

      Для этого выпуска я исправил только небо знает, сколько опечаток и ошибок чтения корректуры в справке для этих двух, единственное изменение кода — исправить ошибку, если два листа имеют разные имена, находятся в разных файлах, и сравнение отправляет дельту во втором назад, прежде чем на первое , то выделение измененных свойств может вызвать ошибку. Исправление орфографии Merge-MultipleSheets потенциально является критическим изменением (и оно все еще во множественном числе!)

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

    • Join-Worksheet является новым для этого выпуска. В самом простом случае он копирует все данные с рабочего листа A в конец рабочего листа B

  • Add-Worksheet
    • Я переместил его из ImportExcel.psm1 в ExportExcel.ps1, и теперь он может переместить новый лист в нужное место и скопировать существующий лист (из той же или другой книги) в новый, и я установил Установите тип возврата для поддержки intellisense.
  • New-PivotTableDefinition
    • Теперь поддерживает -PivotFilter и -PivotDataToColumn , -ChartHeight/width -ChartRow/Column , -ChartRow/ColumnPixelOffset parameters
  • Set-Format
    • Исправлена ​​ошибка, при которой -адрес параметр должен был быть назван, хотя примеры в справке по export-excel показали, что он работает по позиции (что сейчас работает).
  • Export-Excel
    • Я сделал некоторый повторный факторинг
      1. Я «сгладил» маленькие «вызываемые один раз» функции, добавил -title, convert-toNumber и Stop-ExcelProcess.
      2. Теперь он использует Add-Worksheet, Open-ExcelPackage и Add-ConditionalFormat вместо дублирования их функций.
      3. Я переместил функциональность сводной таблицы (которая была увеличена вдвое) в новую функцию «Add-PivotTable», которая поддерживает некоторые дополнительные параметры PivotFilter и PivotDataToColumn, ChartHeight/width ChartRow/Column, ChartRow/ ColumnPixelOffsets.
      4. Я сделал блоки try {} catch {}, покрывающие меньшие блоки кода, чтобы лучше понять, где произошел сбой, некоторые из них теперь предупреждают, а не бросают — я бы лучше сохранить данные с предупреждениями, чем выбросить их, потому что мы не можем добавить диаграмму. Наряду с этим я добавил несколько дополнительных сообщений с подробным описанием записи.
    • Неверные имена столбцов, указанные для сводных таблиц, теперь генерируют предупреждения, а не выбрасывают.
    • Исправлены проблемы, когда сводные таблицы/диаграммы уже существуют и экспорт пытается создать их снова.
    • Исправлена ​​проблема, когда AutoNamedRange, NamedRange и TableName не работают при добавлении к листу, который уже содержит диапазон (ы)/таблица
    • Исправлена ​​проблема, при которой AutoNamedRange может пытаться создать диапазоны с недопустимым именем.
    • Добавлена ​​проверка на недопустимые символы в RangeName или Table Name ( замените их на «_»), изменили проверку имени таблицы, чтобы разрешить пробелы, и применили такую ​​же проверку к RangeName.
    • Исправлена ​​ошибка, из-за которой BoldTopRow всегда выделяет строку 1 жирным шрифтом, даже если экспорт должен начинаться с меньшего row.
    • Исправлена ​​ошибка, из-за которой заголовки приводили к нарушению выравнивания при создании сводной таблицы.
    • Исправлена ​​ошибка, из-за которой Append может перезаписывать последние строки данных, если при первоначальном экспорте пустые строки в вверху листа.
    • Убрана необходимость указывать тип заливки при указании цвета фона заголовка
    • Добавлены параметры MoveToStart, MoveToEnd, MoveBefore и MoveAfter — они идут прямо через Добавить рабочий лист.
    • Добавлены переключатели «NoScriptOrAliasProperties» и «DisplayPropertySet» (имена могут быть изменены) — в сочетании с ExcludeProperty это быстрый способ уменьшить количество экспортируемых данных (и ускорить процесс)
    • Добавлен переключатель PivotTableName (в соответствии с выпуском 5.0.1)
    • Add-CellValue теперь понимает свойства элемента URI. Если свойство имеет тип URI, оно создается как гиперссылка для ускорения Add-CellValue
      • Закомментированы подробные операторы записи, даже если подробные сведения отключены, они вызывают значительное влияние на производительность, а если они включены они вызовут поток сообщений.
      • Изменил порядок вариантов в переключателе и добавлен параметр, говорящий: «Если это числовое значение, уже опубликуйте его как есть»
      • Добавлена ​​возможность устанавливать числовой формат только в том случае, если он не соответствует стандартному для листа.
  • Export-Excel Pester Тесты
    • Я преобразовал примеры 1-9, 11 и 13 из справки Export-Excel в тесты и добавил некоторые дополнительные тесты и дополнительные параметры в команду примера, чтобы улучшить покрытие тестами. На данный момент тест содержит 184 условия «следует», сгруппированных как 58 «ИТ» утверждений; но все еще в стадии разработки.
  • Тесты для сравнения контрольных таблиц
  • Джеймс О’Нил добавил Compare-Worksheet
    • Сравнивает два листа с одинаковым именем в разных файлах.

22.04.2018

Еще раз спасибо сообществу

  • ili101 за исправления и функции
    • Удалено [PSPlot] как OutputType. Исправляет выдачу ошибки
  • Насир Зубайр добавил ConvertEmptyStringsToNull в функцию ConvertFrom-ExcelToSQLInsert
    • Если указано, ячейки без данных заменяются на NULL вместо пустой строки. Это сделано для решения проблем в определенных СУБД, где пустая строка вставляется как 0 для столбца INT вместо значения NULL.

10.04.2018

-Новый параметр -ReZip . Он повторно архивирует xlsx, чтобы его можно было импортировать в PowerBI.

Спасибо Джастину Гроту за обнаружение и исправление ошибки, из-за которой созданные файлы Excel не импортируются в PowerBI онлайн. Кроме того, спасибо CrashM за подтверждение исправления.

Очень полезно!

31.03.2018

  • Обновлен Set-Format
    • Добавлены параметры для установки границ ячеек, включая верхнюю, нижнюю, левую и правую
    • Добавлены параметры для установки value и formula
  $ data = @ "From, To, RDollars, RPercent, MDollars, MPercent, Revenue, MarginAtlanta, New York, 3602000, .0809,955000, .09,245,65New York, Washington, 4674000,  .105,336000, .03,222,16Чикаго, Нью-Йорк, 4674000, .0804,1536000, .14,550, 43Нью-Йорк, Филадельфия, 12180000, 0,1427, -716000, -. 07,321, -25 Нью-Йорк, Сан-Франциско, 3221000 ,.  0629,1088000, 0,04 436,21 Нью-Йорк, Phoneix, 2782000, 0,0723,467000, 0,10 674,33 "@  

  • Добавлен параметр -PivotFilter , позволяющий настроить фильтр для детализации вниз в подмножество общего набора данных.
  $ data = @ "Region  , Площадь, Продукт, Единицы, Стоимость на север, A1, Яблоко, 100, .5 Юг, A2, Груша, 120, 1,5, Восток, A3, Виноград, 140, 2,5, Запад, A4, Банан, 160, 3,5, Север, A1, Груша, 120  , 1.5North, A1, Grape, 140,2.5 "@  

14.03.2018

  • Спасибо Джеймсу О’Нилу, исправлено ошибки с параметром ChangeDatabase, которые могут помешать его работе

  • Добавлен -Force to New-Alias ​​

  • Добавить пример для установки цвета фона столбца

  • Поддерживает исключение общих итогов строк для сводных таблиц

  • Разрешить чтение файлов xlsm

  • Исправить Set-Column.ps1 , Set-Row.ps1 , SetFormat.ps1 , форматирование. ps1 $ false и

    01.01.2018

  • Добавлен переключатель [Switch] $ NoTotalsInPivot . Позволяет скрыть итоги строк в сводной таблице.

    Спасибо jameseholt за запрос.

   получить-процесс |  где Компания |  выберите Company, Handles, WorkingSet |  export-excel C:  temp  testColumnGrand.xlsx `-Show -ClearSheet -KillExcel` -IncludePivotTable -PivotRows Company -PivotData @ {"Handles" = "average"} -NoTotalsInPivot  
  • Исправлено при использовании определенного ChartType для диаграммы сводной таблицы, вызывало ошибку.
  • Исправлено — когда вы указываете файл, а каталог не выходит, теперь он его создает

23.11.2017

Еще больше отличных дополнений и спасибо к Джеймсу О’Нилу

  • Добавлен Convert-XlRangeToImage Получает указанную часть файла Excel и экспортирует ее как изображение.
  • Исправлена ​​опечатка в сообщении в строке 373.
  • Теперь перехватите попытку очистить лист и добавить к нему.
  • Исправлены некоторые проблемы при добавлении к листам, где заголовок отсутствует в строке 1 или данные не начинаются в столбце 1.
  • Добавлена ​​поддержка дополнительных настроек при создании сводной диаграммы.
  • Исправлена ​​опечатка PivotTableName: PivtoTableName in defit ion of New-PivotTableDefinition
  • Add-ConditionalFormat и Set-Format добавлены к параметрам, поэтому каждый может работать как другой.
  • Добавлен Set-Row и Set-Column — заполните формулу вниз или поперек.
  • Добавлен Send-SQLDataToExcel. Вставьте набор строк, а затем вызовите Export-Excel для диапазонов, диаграмм, сводных диаграмм и т. Д.

30.10.2017

Огромное спасибо Джеймсу О’Нилу. Поклонник PowerShell. При работе с PowerShell он всегда вносит особый интерес. Это не исключение.

(Ознакомьтесь с примерами help Export-Excel -Examples )

  • Новый параметр Пакет позволяет передать объект ExcelPackage, возвращаемый -passThru , в
  • Новый параметр ExcludeProperty для удаления нежелательные свойства без необходимости проходить через select-object
  • Новый параметр Добавить код для чтения существующих заголовков и перемещения вставки точка под текущими данными
  • Новый параметр ClearSheet , который удаляет рабочий лист и все прошлые данные.
  • Удалите любую существующую сводную таблицу перед попыткой чтобы [повторно] создать его
  • Проверьте вставку сводной таблицы, поэтому, если указан -InsertPivotChart , это подразумевает -InsertPivotTable

(Ознакомьтесь с примерами help Export-Excel -Examples )

  • Новая функция Export-Charts (требуется установка Excel) — экспорт диаграмм Excel как JP G файлы
  • Новая функция Add-ConditionalFormatting Добавляет условное форматирование на рабочий лист
  • Новая функция Set-Format Применяет форматирование числа, шрифта, выравнивания и цвета к диапазону ячеек Excel.
  • ColorCompletion завершение аргумента для цветов для параметров в функциях.

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

ps | выберите компанию, ручки | Export-Excel

13.10.2017

Добавлен New-PivotTableDefinition код>. Вы можете создать и подключить сводную таблицу к рабочей таблице. Вы также можете создать столько листов сводной таблицы, чтобы указывать на один лист. Или вы можете создать множество рабочих листов и множество соответствующих рабочих листов сводных таблиц.

Здесь вы можете создать рабочий лист с данными из Get-Service . Затем создайте четыре сводные таблицы, указывая на данные, каждая из которых вращается в другом измерении и показывает другую диаграмму

  $ base = @ {SourceWorkSheet = 'gsv' PivotData = @ {'Status  '=' count '} IncludePivotChart = $ true} $ ptd = [упорядочено] @ {} $ ptd + = New-PivotTableDefinition @base servicetype -PivotRows servicetype -ChartType Area3D $ ptd + = New-PivotTableDefinition @Base status -Pivot status -Pivot  ChartType PieExploded3D $ ptd + = New-PivotTableDefinition @base starttype -PivotRows starttype -ChartType BarClustered3D $ ptd + = New-PivotTableDefinition @base canstop -PivotRows canstop -ChartType |  Export-Excel -path $ file -WorkSheetname gsv -Show -PivotTableDefinition $ ptd  

4.10.2017

Спасибо https://github.com/ili101:

  • Исправить ошибку, невозможно найти тип [PSPlot]
  • Исправить ошибку, Автофильтр с именем таблицы создает поврежденный файл Excel.

Спасибо Джереми Бруну. Исправлены проблемы, связанные с использованием параметра -Title вместе. с параметрами форматирования столбцов.

  • Проблема № 182
  • Проблема № 89

28.09.2017 (Версия 4.0.1)

  • Добавлен новый параметр под названием Пароль для импорта файлов, защищенных паролем

  • Добавлено еще больше тестов Pester для более надежного и свободного от ошибок модуля

  • Параметр «TopRow» переименован в «StartRow»

    Это позволяет нам быть более краткими при вводе новых параметров («StartColumn», ..) будет добавлен в будущем. Ваш код не сломается после обновления, потому что мы добавили псевдоним для обратной совместимости

Особая благодарность robinmalik за предоставленный нам код для реализации этой новой функции. Дай пять DarkLite1 за реализацию.

12.09.2017 (версия 4.0.0)

Супер спасибо и наконечник шляпы для DarkLite1. Теперь есть новый и улучшенный Import-Excel , не только по функциональности, но и с улучшенной читабельностью, примерами и многим другим. Мало того, он уже несколько недель запускает его в своей компании!

Добавлено Update-FirstObjectProperties Обновляет первый объект, чтобы он содержал все свойства объекта с наибольшим количеством свойств в массиве. Обратитесь к справке.

Критические изменения : из-за большой части кода, который переписан, поведение немного отличается можно ожидать от функции Import-Excel . Это особенно верно для импорта пустых файлов Excel с использованием параметра TopRow или без него. Чтобы убедиться, что ваш код по-прежнему действителен, проверьте примеры в справке или в прилагаемом Pester тестовом файле.

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

03.07.2017

Спасибо Миккелю Нордбергу. Он предоставил ConvertTo-ExcelXlsx . Для его использования необходимо установить Excel. Функция преобразует старый формат файла Excel, заканчивающийся на .xls , в новый формат, заканчивающийся на .xlsx .

15.06.2017

Огромное спасибо DarkLite1! Рефакторинг кода, добавление справки, добавление функций, исправление ошибок. В частности, этот давно выдающийся:

Export-Excel: числовые значения неверны

Работать с такими людьми, как DarkLite1 — это фантастика. в сообществе, чтобы помочь сделать модуль намного лучше. Шляпа тебе.

Еще один привет Дэмиану Ривзу! Его вопросы превращаются в отличные черты. Он спросил, можно ли импортировать лист Excel и преобразовать данные в операторы SQL INSERT . Теперь мы можем ответить на этот вопрос большим ДА!

  ConvertFrom-ExcelToSQLInsert People.  TestSQLGen.xlsx  
  INSERT INTO People ('First', 'Last', 'The Zip') Values ​​('John', 'Doe', '12345'); INSERT INTO People ('First', 'Last', 'The Zip')  ) Values ​​('Jim', 'Doe', '12345'); INSERT INTO People ('First', 'Last', 'The Zip') Values ​​('Tom', 'Doe', '12345'); INSERT INTO  People ('First', 'Last', 'The Zip') Values ​​('Harry', 'Doe', '12345'); INSERT INTO People ('First', 'Last', 'The Zip') Values ​​(''  Jane ',' Doe ',' 12345 ');  

Бонусные баллы

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

  ConvertFrom-ExcelData.  testSQLGen.xlsx {param (  $ propertyNames, $ record) $ reportRecord = @ () foreach ($ pn в $ propertyNames) {$ reportRecord + = "{0}: {1}" -f $ pn, $ record. $ pn} $ reportRecord + = "  "$ reportRecord -join" `r`n"}  

Создает

  Первый: JohnLast: DoeThe Zip: 12345First: JimLast: DoeThe Zip: 12345First: TomLast: DoeThe Zip: 12345First: HarryLast: DoeThe Zip: 12345First: JaneLast: DoeThe Zip: 12345  

02.02.2017

Спасибо DarkLite1 за дополнительные обновления

  • TableName с проверкой параметров, выдает ошибку, когда TableName:
    • начинается с чего-то еще, кроме буквы.
    • NULL или пусто
    • Содержит пробелы
  • Числовой синтаксический анализ теперь использует CurrentInfo для использования системных настроек

14.02.2017

Большое спасибо DarkLite1 за отличные обновления

  • Переключатель

    -DataOnly добавлен в Import-Excel . При использовании он будет генерировать объекты только для строк, содержащих текстовые значения, но не для пустых строк или столбцов.

  • Get-ExcelWorkBookInfo — получает информацию из книги Excel.

      Get-ExcelWorkbookInfo.  Test.xlsx CorePropertiesXml: #document Title: Subject: Автор: Konica Minolta Комментарии пользователей: Ключевые слова: LastModifiedBy:  Бонд, Джеймс (Лондон) GBR Последняя печать: 2017-01-21T12: 36: 11Z Создано: 17.01.2017 13:51:32 Категория: Статус: ExtendedPropertiesXml: #document Application: Microsoft Excel HyperlinkBase: AppVersion: 14. 0300 Компания: Менеджер секретной службы: Обновлено: 02.10.2017 12:45:37 CustomPropertiesXml: #document  

12 /22/2016

  • Добавлен переключатель -Now . Этот ярлык прерывает процесс, автоматически создает временный файл и включает переключатели -Show , -AutoFilter , -AutoSize .
  Get-Process |  Выберите компанию, Ручки |  Export-Excel -Now  
  • Добавлены блоки ScriptBlocks для раскрашивания ячеек. Ознакомьтесь с примерами
  Get-Process |  Компания Селект-Объект, Ручки, PM, NPM |  Export-Excel $ xlfile -Show -AutoSize -CellStyleSB {param ($ workSheet, $ totalRows, $ lastColumn) Set-CellStyle $ workSheet 1 $ LastColumn Сплошной голубой цвет foreach ($ row in (2 .. $ totalRows | Where-Object {$)  _% 2 -eq 0})) {Set-CellStyle $ workSheet $ row $ LastColumn Solid Grey} foreach ($ row in (2 .. $ totalRows | Where-Object {$ _% 2 -eq 1})) {Установить  -CellStyle $ workSheet $ row $ LastColumn Solid LightGray}}  

28.09.2016

Исправлена ​​совместимость с PowerShell 3.0. Благодаря headsphere. Он использовал синтаксис $ obj.PSObject.Methods [$ target] , чтобы сделать его обратно совместимым. PS v4.0 и более поздние версии позволяют $ obj. $ Target .

Спасибо xelsirko за исправление — Import-module importexcel выдает предупреждение о версии при запуске внутри фонового задания

12.08.2016

Исправлено чтение заголовков из ячеек, перемещенных из используя свойство Text в свойство Value .

30.07.2016

  • Добавлен Copy-ExcelWorksheet . Давайте скопируем рабочий лист из одной книги Excel в другую.

21.07.2016

  • Исправляет Import-Excel # 68

07.07.2016

Аттила Михалич исправил две проблемы

  • Удаление лишних пробелов после обратной кавычки
  • Неинициализированная переменная $ idx просачивается в конвейер, когда -TableName

Спасибо, Аттила.

01.07.2016

  • Добавлен фиксированный путь разрешения 2.2.7 в Get-ExcelSheetInfo
  • Исправлена ​​ошибка преобразования в Export-Excel
  • Для Import-Excel измените Resolve-Path для возврата ProviderPath для использования с UNC

01.06.2016

  • Добавлен параметр -UseDefaultCredentials как в Import-Html , так и в Get-HtmlTable
  • Новые функции, Import-UPS и Import-USPS . Передайте действительный номер отслеживания, и он очистит страницу для получения сведений о доставке.

30.04.2016

Огромное спасибо Вилли Мёллеру

  • Он добавил проверку версии, чтобы классы PowerShell не вызывали проблем для версии PowerShell нижнего уровня
  • Он также внес первые тесты Pester для модуля. Супер! Проверьте их вне, они будут способом реализации тестов в будущем

18.04.2016

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

  $ file = "C:  Temp  ps.xlsx" rm $ file -  ErrorAction Ignoreps | где компания | выберите Company, PagedMemorySize, PeakPagedMemorySize | Export-Excel $ file -Show -AutoSize `-IncludePivotTable` -IncludePivotChart `-ChartType ColumnClustered` -PivotRows sumory '-PivotMagedemory' -PivotData '  sum '}  

Добавить -PivotDataToColumn

  $ file = "C:  Temp  ps.xlsx" r  m $ file -ErrorAction Ignoreps |  где компания |  выберите Company, PagedMemorySize, PeakPagedMemorySize |  Экспорт-Excel $ file -Показать -AutoSize `-IncludePivotTable` -IncludePivotChart `-ChartType ColumnClustered` -PivotRows Company `-PivotData @ {PagedMemorySize = 'sum'; PeakPagedMemorySize = 'sum'}` -PivotData  > 

А вот и новый вид диаграммы

07.04.2016

Сделано больше методов

  $ t = Get-Range 0 5 .2 $ t2 = $  t |% {$ _ * $ _} $ t3 = $ t |% {$ _ * $ _ * $ _} (Новый график).  Сюжет ($ t, $ t, $ t, $ t2, $ t, $ t3).  SetChartPosition ("я").  SetChartSize (500,500).  Заголовок («Привет, мир»).  Show ()  

31.03.2016

  • Благодаря многосерийным диаграммам redoz сейчас работают

Также узнайте, как можно создать таблицу, а затем с помощью нотации Excel индексировать данные для построения диаграмм «Впечатления [A]»

  $ data = @ "A, B, C, Date2,1,1,2016-03-295,10,1,2016-03-29" @  |  ConvertFrom-Csv $ c = New-ExcelChart -Title Impressions `-ChartType Line -Header" Something "` -XRange "Impressions [Date]" `-YRange @ (" Impressions [B] "," Impressions [A] ") $  данные |  Export-Excel temp.xlsx -AutoSize -TableName Impressions -Show -ExcelChartDefinition $ c  

26.03.2016

  • Добавлен NumberFormat параметр
  $ data |  Export-Excel -Path $ file -Show -NumberFormat '[Синий] $ #, ## 0.00; [Красный] - $ #, ## 0.00'  

18.03.2016

  • Добавлены примеры Get-Range , New-Plot и Plot Cos.
  • Обновленная библиотека EPPlus. Позволяет изменять и раскрашивать маркеры.
  • Обрабатывает и предупреждает, если имена диапазонов автоматических имен также являются допустимыми диапазонами Excel.

07.03.2016

  • Добавлены Header и FirstDataRow для Import-Html
  • Добавлен GreaterThan , GreaterThanOrEqual , LessThan , LessThanOrEqual на New-ConditionalText
  echo 489 668 299 777 860 151 119 497 234 788 |  Export-Excel c:  temp  test.xlsx -Show `-ConditionalText (New-ConditionalText -ConditionalType GreaterThan 525)  

22.02.2016

  • Import-Html с использованием Ли Холмса Извлечение таблиц из PowerShell Invoke-WebRequest

17.02.2016

  • Добавлены типы условного текста для Equal и NotEqual
  • Телефонные номера вроде "+33 011 234 34" теперь обрабатываются правильно

Попробуйте PassThru

  $ file = "C:   Temp  passthru.xlsx "rm $ file -ErrorAction Ignore $ xlPkg = $ (New-PSItem север 10 New-PSItem восток 20 New-PSItem запад 30 New-PSItem юг 40) |  Export-Excel $ file -PassThru $ ws = $ xlPkg.Workbook.Worksheets [1] $ ws.Cells ["A3"]. Value = "Hello World" $ ws.Cells ["B3"]. Value = "Обновление ячеек  "$ ws.Cells [" D1: D5 "]. Value =" Data "$ ws.Cells.AutoFitColumns () $ xlPkg.Save () $ xlPkg.Dispose () Invoke-Item $ file  

Результат

18.01.2016

  • Добавлено условное форматирование текста . Бо Прокс опубликовал статью об отчетах в формате HTML, часть 2: сделайте шаг вперед в отчетности и раскрасил ячейки. Отличная идея, теперь часть модуля PowerShell Excel.

07.01.2016

  • Добавлен Get-ExcelSheetInfo - отличный вклад от Йохана Окерстрёма , посмотрите его на GitHub и Twitter

26.12.2015

  • Добавлено NoLegend , Show-Category , ShowPercent для всех диаграмм, включая сводные диаграммы.
  • Обновлены PieChart, BarChart, ColumnChart и Line диаграмма для работы с конвейером и добавлены NoLegend , Show-Category , ShowPercent

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

Следите за сообщениями в блоге и примерами.

Быстрый список

  • StartRow, StartColumn для размещения данных в любом месте листа
  • New-ExcelChart - добавление диаграмм на лист, несколько серий для диаграммы, расположение диаграммы в любом месте на листе
  • AutoNameRange, использовать функции и/или вычисления в ячейке
  • Быстрое построение диаграмм с использованием PieChart, BarChart, ColumnChart и др.

20.10.2015

Большое исправление ошибки для версии 3.0, люди PowerShell!

Этот метод не работает в 3.0 и работает в 4.0 и более поздних версиях.

  $ m = "substring" "hello". $ m (2,1)  

Добавление .invoke работает в версиях 3.0 и позже.

  $ m = "substring" "hello". $ m.invoke (2,1)  

A большое спасибо DarkLite1 за добавление помощи в Export-Excel.

Добавлен -HeaderRow код> параметр. Иногда заголовок не начинается в строке 1.

16.10.2015

Исправления Export-Excel создает поврежденный файл Excel

Import-Excel имеет новый параметр NoHeader . Если данные в таблице не имеют заголовков и вы не хотите предоставлять свои собственные, Import-Excel сгенерирует имя свойства.

Import-Excel теперь возвращает .Value , а не .Text

10 /1/2015

Объединенный набор ValidateSet для кодирования и расширения. Спасибо, Ирвин Страчан.

30.09.2015

Export-Excel теперь может обрабатывать данные, которые не объект

  echo abc 1 $ true 2.1 01.01.2015 |  Export-Excel c:  temp  test.xlsx -Show  

Или

  dir -Name |  Export-Excel c:  temp  test.xlsx -Show  

25.09.2015

Скрыть рабочие листы Получил отличный запрос от forensicsguy20012004, чтобы скрыть рабочие листы. Вы создаете несколько сводных таблиц, генерируете диаграммы, а затем листы сводной таблицы не должны быть видимыми.

Export-Excel теперь имеет -HideSheet , который принимает массив имен рабочих листов и скрывает их.

Пример

Здесь вы создаете четыре листа с именами PM , Handles , Services и Files .

Последняя строка создает лист Files , а затем скрывает листы Handles , Services .

  $ p = Get-Process $ p | выберите компанию, личка |  Экспорт-Excel $ xlFile -WorkSheetname PM $ p | выберите компанию, обрабатывает |  Export-Excel $ xlFile -WorkSheetname HandlesGet-Service |  Экспорт-Excel $ xlFile -WorkSheetname Servicesdir -File |  Export-Excel $ xlFile -WorkSheetname Files -Show -HideSheet Handles, Services  

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

11.09.2015

Добавлено условное форматирование. См. Пример TryConditional.ps1.

Или посмотрите короткое "Как сделать" видео.

21.08.2015

  • Теперь импортируйте листы Excel, даже если файл открыт в Excel. Спасибо, Франсуа Лашанс-Гиймет.

09.07.2015

  • за -PivotRows вы можете передать хэш-таблицу с именем свойства и типом вычисления. Сумма , Среднее , Макс , Мин , Продукт , StdDev , StdDevp , Var , Varp
  Get-Service |  Export-Excel "c:  temp  test.xlsx" `-Show` -IncludePivotTable `-PivotRows status` -PivotData @ {status = 'count'}  

16.06.2015 (Спасибо, Джастин)

  • Улучшения перезаписи сводной таблицы
  • Добавлены два параметра в Export-Excel
    • RangeName - превращает данные, переданные в Export-Excel, в именованный диапазон.
    • TableName - превращает данные, переданные в Export-Excel, в таблицу Excel.

Примеры

  Get-Process | Export-Excel foo.xlsx -Verbose -IncludePivotTable -TableName  «Процессы» -ShowGet-Process | Export-Excel foo.xlsx -Verbose -IncludePivotTable -RangeName «Processes» -Show  

25.05.2015

  • Исправлена ​​проблема с нулевым заголовком

17.05.2015

  • Добавлены три параметра:
    • FreezeTopRow - замораживает первую строку данных.
    • AutoFilter - включает фильтрацию данных на листе
    • BoldTopRow - жирный верхний край строка данных, заголовки столбцов

Пример

  Get-CimInstance win32_service |  выбрать состояние, принять *, начало *, заголовок |  Export-Excel test.xlsx -Show -BoldTopRow -AutoFilter -FreezeTopRow -AutoSize  

04.05.2015

  • Опубликовано в галерее PowerShell. В PowerShell v5 используйте Find-Module importexcel , затем Find-Module importexcel | Install-Module

27.04.2015

  • свойства datetime отображались как целые числа, теперь отформатированы

25.04.2015

  • Теперь вы можете создать несколько сводных таблиц за один проход
    • Благодаря pscookiemonster он отправил повторный пример в проект EPPlus CodePlex и исправил его.

Пример

  $ ps = ps $ ps |  Экспорт-Excel.  TestExport.xlsx -WorkSheetname память `-IncludePivotTable -PivotRows Company -PivotData PM` -IncludePivotChart -ChartType PieExploded3D $ ps |  Export-Excel.  TestExport.xlsx -WorkSheetname обрабатывает `-IncludePivotTable -PivotRows Company -PivotData Handles` -IncludePivotChart -ChartType PieExploded3D -Show  

  • Включена и приукрашена функция Клауса Нильсена, чтобы взять все листы в файловой книге Excel и создать текстовый файл для каждого ConvertFrom-ExcelSheet
  • Переименован Export-MultipleExcelSheets в ConvertFrom-ExcelSheet

13.04.2015

  • Вы можете добавить заголовок в "Отчет" Excel Title , TitleFillPattern , TitleBold , TitleSize , TitleBackgroundColor
    • Спасибо Ирвину Страчану за этот и другие отличные предложения, тестирование и многое другое.
  • Переименовано AutoFitColumns на Au toSize
  • Реализован Export-MultipleExcelSheets
  • Реализован -Password для рабочий лист
  • Заменен переключатель -Force на переключатель -NoClobber
  • Добавлены примеры для Get-Help
  • Если запрошена сводная таблица, этот лист становится выбранной вкладкой

4 /8/2015

  • Реализован экспорт данных в именованные листы с помощью параметра -WorkSheetname.

Примеры - gsv | Export-Excel. Test.xlsx -WorkSheetname Services

dir -file | Export-Excel. Test.xlsx -WorkSheetname Files

ps | Export-Excel. Test.xlsx -WorkSheetname Processes -IncludePivotTable -Show -PivotRows Company -PivotData PM

Преобразование (всех или некоторых) листов Excel в текстовые файлы

Считывает каждый лист в TestSheets.xlsx и выводит его в каталог данных как имя листа с расширением .txt

   ConvertFrom-ExcelSheet.  TestSheets.xlsx.  Data  

Считывает и выводит такие листы, как Sheet10 и Sheet20, из TestSheets.xlsx, и выводит его в каталог данных как имя листа с расширением. txt

  ConvertFrom-ExcelSheet.  TestSheets.xlsx.  data sheet? 0  

Пример добавления Заголовок

Вы можете установить узор, размер и, если заголовок выделен жирным шрифтом.

  $ p = @ {Title =  «Отчет о процессе на $ (Get-Date)» TitleFillPattern = "LightTrellis" TitleSize = 18 TitleBold = $ true Path = "$ pwd  testExport.xlsx" Show = $ true AutoSize = $ true} Get-Process |  Где Компания |  Выберите компанию, ЛС |  Export-Excel @p  

Пример Export-MultipleExcelSheets

  $ p = Get-Process $ DataToGather = @ {PM = {$ p | select company, pm} Handles = {$ p | select company, handles} Services = {gsv} Files = {  dir -File} Albums = {(Invoke-RestMethod http://www.dougfinke.com/PowerShellfordevelopers/albums.js)}}Export-MultipleExcelSheets -Show -AutoSize.  testExport.xlsx $ DataToGather  

ПРИМЕЧАНИЕ Если лист существует при использовании параметра -WorkSheetname , он будет удален, а затем добавлены с новыми данными.

Get-Process, экспортированный в Excel

Всего физических Группировка памяти по компании

Импорт данных из электронной таблицы Excel

Вы также можете найти EPPLus на Nuget.

Известные проблемы

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

Оцените статью
logicle.ru
Добавить комментарий