5

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

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

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

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

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

Вопрос в Stackoverflow

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

3 ответа3

2

PowerPoint Add-In Excel Импорт можно импортировать данные Excel в PowerPoint

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

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

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

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


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

    2

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

    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
    
    0

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

    PowerPoint откроет документы Word. И Word откроет HTML.

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

    Всё ещё ищете ответ? Посмотрите другие вопросы с метками .