Данные Excel в слайды PowerPoint

Данные Excel в слайды PowerPoint

Я уже нашел несколько полезных сайтов, но все еще не могу сделать то, что хочу. Мой файл Excel содержит несколько столбцов и несколько строк. Все данные из одной строки будут на одном слайде, но данные из разных ячеек в этой одной строке должны быть отправлены в определенные элементы на слайде PP. Во-первых, возможно ли экспортировать данные из ячейки Excel в определенное текстовое поле в PP? Например, я хотел бы, чтобы все данные из первого столбца каждой строки были отправлены в текстовое поле 1. Допустим, у меня 100 строк, поэтому у меня будет 100 слайдов, и на каждом слайде будет текстовое поле 1 с правильными данными. Текстовое поле слайда 66 будет содержать данные из первого столбца строки 66. Затем все данные из второго столбца каждой строки будут отправлены в текстовое поле 2 и так далее.

Я пытался сделать несколько макросов, но безуспешно. Я также пытался использовать контуры Word и экспортировать их в PP (Новый слайд -> Слайды из контура), но, похоже, есть ошибка, так как я получил 250 страниц тарабарщины. У меня было всего два абзаца, и оба состояли из одного слова. Первый абзац использовал стиль Заголовок 1, а второй абзац использовал стиль Обычный.

Сайты, которые я нашел, используют VB и/или какой-то другой язык программирования для создания слайдов из листов Excel. Я пытался добавить эти коды VB в свои макросы, но ни один из них пока не сработал. Возможно, я просто не знаю, как их правильно использовать :) Вот несколько полезных сайтов:

VBA: создание слайда PowerPoint для каждой строки в книге Excel

Создание презентационного отчета на основе данных

Вопрос в Stackoverflow

Я использую Office 2011 на Mac. Буду признателен за любую помощь!

решение1

Попробуйте что-нибудь вроде этого. Я сделал несколько модов, чтобы он заменял любой экземпляр текста @COL1@ на слайде значениями из рабочего листа. Непроверенный aircode, заметьте.

Sub CreateSlides()
'Open the Excel workbook. Change the filename here.
Dim OWB As New Excel.Workbook
Set OWB = Excel.Application.Workbooks.Open("C:\list.xlsx")
'Grab the first Worksheet in the Workbook
Dim WS As Excel.Worksheet
Dim sCurrentText As String
Dim oSl As Slide
Dim oSh As Shape
Set WS = OWB.Worksheets(1)
Dim i As Long
'Loop through each used row in Column A
For i = 1 To WS.Range("A65536").End(xlUp).Row
    'Copy the first slide and paste at the end of the presentation
    ActivePresentation.Slides(1).Copy
    Set oSl = ActivePresentation.Slides.Paste(ActivePresentation.Slides.Count + 1)
    sCurrentText = WS.Cells(i, 1).Value

    ' find each shape with "@COL1@" in text, replace it with value from worksheet
    For Each oSh In oSl.Shapes
      ' Make sure the shape can hold text and if is, that it IS holding text
      If oSh.HasTextFrame Then
        If oSh.TextFrame.HasText Then
          ' it's got text, do the replace
          With oSh.TextFrame.TextRange
            .Replace "@COL1@", sCurrentText
          End With
        End If
      End If
    Next
Next
End Sub

решение2

Надстройка PowerPointИмпорт Excelможно импортировать данные Excel в PowerPoint

Что оно делает

  • импортирует данные Excel в открытую презентацию
    Метод: одна строка Excel на слайд PowerPoint, одна ячейка на текстовое поле на текущем слайде
  • можно выбрать лист Excel, из которого будут взяты данные, если их несколько
  • можно автоматически добавлять слайды, если в вашем файле Excel строк больше, чем слайдов в PowerPoint
  • предупреждает, если текстовых полей (форм) недостаточно для размещения всех данных из строки
  • работает со всеми версиями Microsoft Office

Как использовать

  • ЗагрузитьДобавить в
  • сохраните его в папке надстроек Microsoft Office.
    Совет: нажмите Win+ Rи введите%AppData%\Roaming\Microsoft\AddIns
  • Откройте PowerPoint и включите надстройку.
    • Excel 2003: Меню → Инструменты → Надстройки
    • Excel 2007: кнопка «Пуск» → Параметры Excel → Надстройки → раскрывающийся список: Надстройки Excel → Перейти
    • Excel 2010: вкладка Файл → Параметры → Надстройки → раскрывающийся список: Надстройки Excel → Перейти
  • появится новый пункт меню
    введите описание изображения здесь
  • новыйИмпорт данных ExcelКнопка выведет диалоговое окно Файл для выбора файла Excel.
    Если у вас достаточно текстовых полей, надстройка заполнит их

Просмотреть этот короткийальбом imgurдля иллюстрации надстройки


Примечание: Если вы хотите настроить код, вам нужнодобавить ключ реестрачтобы увидеть код надстройки.
Исходный код можнопросмотрено на pastebin

решение3

PPTools не работает на 64-битной платформе, которая теперь является стандартной.

PowerPoint БУДЕТ открывать документы Word. А Word откроет HTML.

  1. В Excel вставьте столбец слева.
  2. Поместите HTML-тег <h1> в каждую ячейку этого столбца.
  3. В крайнем правом столбце поместите HTML-тег </h1> в каждую ячейку.
  4. Скопируйте/вставьте весь лист в блокнот.
  5. Добавьте эти теги вверху: <html><body>
  6. Добавьте эти теги внизу: </body></html>
  7. Найдите/замените все вкладки ничем, чтобы избавиться от них.
  8. Сохраните это как something.html. Теперь закройте его.
  9. Откройте его в Word.
  10. Сохранить как что-то.docx
  11. Теперь закройте его.
  12. Откройте something.docx в PowerPoint (выберите «все файлы» вместо «*.pptx»).
  13. PowerPoint ДОЛЖЕН импортировать весь контент сейчас, с каждой строкой в ​​качестве слайда.

Связанный контент