
Я уже нашел несколько полезных сайтов, но все еще не могу сделать то, что хочу. Мой файл Excel содержит несколько столбцов и несколько строк. Все данные из одной строки будут на одном слайде, но данные из разных ячеек в этой одной строке должны быть отправлены в определенные элементы на слайде PP. Во-первых, возможно ли экспортировать данные из ячейки Excel в определенное текстовое поле в PP? Например, я хотел бы, чтобы все данные из первого столбца каждой строки были отправлены в текстовое поле 1. Допустим, у меня 100 строк, поэтому у меня будет 100 слайдов, и на каждом слайде будет текстовое поле 1 с правильными данными. Текстовое поле слайда 66 будет содержать данные из первого столбца строки 66. Затем все данные из второго столбца каждой строки будут отправлены в текстовое поле 2 и так далее.
Я пытался сделать несколько макросов, но безуспешно. Я также пытался использовать контуры Word и экспортировать их в PP (Новый слайд -> Слайды из контура), но, похоже, есть ошибка, так как я получил 250 страниц тарабарщины. У меня было всего два абзаца, и оба состояли из одного слова. Первый абзац использовал стиль Заголовок 1, а второй абзац использовал стиль Обычный.
Сайты, которые я нашел, используют VB и/или какой-то другой язык программирования для создания слайдов из листов Excel. Я пытался добавить эти коды VB в свои макросы, но ни один из них пока не сработал. Возможно, я просто не знаю, как их правильно использовать :) Вот несколько полезных сайтов:
VBA: создание слайда PowerPoint для каждой строки в книге Excel
Создание презентационного отчета на основе данных
Я использую 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.
- В Excel вставьте столбец слева.
- Поместите HTML-тег <h1> в каждую ячейку этого столбца.
- В крайнем правом столбце поместите HTML-тег </h1> в каждую ячейку.
- Скопируйте/вставьте весь лист в блокнот.
- Добавьте эти теги вверху: <html><body>
- Добавьте эти теги внизу: </body></html>
- Найдите/замените все вкладки ничем, чтобы избавиться от них.
- Сохраните это как something.html. Теперь закройте его.
- Откройте его в Word.
- Сохранить как что-то.docx
- Теперь закройте его.
- Откройте something.docx в PowerPoint (выберите «все файлы» вместо «*.pptx»).
- PowerPoint ДОЛЖЕН импортировать весь контент сейчас, с каждой строкой в качестве слайда.