Где-то в моем приложении мне нужно создать слайды PowerPoint и заполнить его значениями DB. Я могу создать слайды с помощью локального шаблона. Но я не понимаю, как заполнить его значениями DB. Я искал веб-сайт и нашел this, но это не помогает мне. График или график я не хочу заполнять. Это простой текст, основанный на значениях DB.
Может кто-нибудь помочь мне здесь?Задать презентацию PowerPoint с значениями базы данных
ответ
Этот следующий код позволяет создать новый слайд, выбрать его и добавить значения в таблицу. Вам просто нужно сейчас, чтобы прочитать DB и заполнить его в
int newaddslidecounter = 0; // checking how many new slides have to be inserted in order to split the table
int startmultiplicator=1; // used in order to return current table row that must be pasted in new table
int amountrowsshown =7; // amount of shown rows per table
int fontsize = 12;
// set position of new table/chart
int topsize = 100;
int leftsize = 100;
int widthsize = 150;
int heightsize = 150;
Boolean alreadycreated = false; // checks if a table has already been created
//Resizing all tables
//and insert new Excel table instead while importing data from Excel table
//used for visualization of data
foreach (PowerPoint.Slide slide in presentation.Slides)
{
slide.Select();
//loop through all shapes in slide
foreach (PowerPoint.Shape pptshape in slide.Shapes)
{
//Console.WriteLine("Shape type : " + pptshape.Type.ToString());
//check if current shape is a table
//in order to do the manipulation
if (pptshape.Type.ToString().Equals("msoTable"))
{
for (int i = 1; i <= pptshape.Table.Rows.Count; i++)
{
for (int j = 1; j <= pptshape.Table.Columns.Count; j++)
{
/// checks if the module of the current row and the amount of maximum
/// shown rows to be visible in table is the same
// Console.WriteLine("row= " + i + " col= " + j);
if ((i % amountrowsshown) == 0 && alreadycreated == false)
{
PowerPoint.Table objTable = null;
/// Add new slide if table requires more than one slide
if (newaddslidecounter == 0)
{
/// Add new table object in the slide
objTable = presentation.Slides[slide.SlideIndex].Shapes.AddTable(amountrowsshown, pptshape.Table.Columns.Count, topsize, leftsize, slide.Master.Width - widthsize, slide.Master.Height - heightsize).Table;
}
else
{
presentation.Slides.Add(slide.SlideIndex + newaddslidecounter, NetOffice.PowerPointApi.Enums.PpSlideLayout.ppLayoutClipArtAndVerticalText);
/// Add new table object in the slide
objTable = presentation.Slides[slide.SlideIndex + newaddslidecounter].Shapes.AddTable(amountrowsshown, pptshape.Table.Columns.Count, topsize, leftsize, slide.Master.Width - widthsize, slide.Master.Height - heightsize).Table;
}
int incrementer = 1;
/// Run through the created new table and paste all the previous table values
for(int k=startmultiplicator;k<=i;k++)
{
for(int l=1;l<=pptshape.Table.Columns.Count;l++)
{
objTable.Cell(incrementer,l).Shape.TextFrame.TextRange.Text=pptshape.Table.Cell(k,l).Shape.TextFrame.TextRange.Text;
objTable.Cell(incrementer, l).Shape.TextFrame.TextRange.Font.Size = fontsize;
}
incrementer++;
}
startmultiplicator += amountrowsshown;
alreadycreated = true;
newaddslidecounter++;
}
}
alreadycreated = false;
}
/// In case is still some rows left which haven't been considered
/// we copy those in a new table
//Console.WriteLine("Create new table before leaving");
// Console.WriteLine(startmultiplicator);
if (startmultiplicator <= pptshape.Table.Rows.Count)
{
PowerPoint.Table objTable = null;
if (startmultiplicator < amountrowsshown)
{
/// Add new table object in the slide
objTable = presentation.Slides[slide.SlideIndex].Shapes.AddTable(amountrowsshown, pptshape.Table.Columns.Count, topsize, leftsize, slide.Master.Width - widthsize, slide.Master.Height - heightsize).Table;
}
else
{
/// Don't add new slide for last rows
presentation.Slides.Add(slide.SlideIndex + newaddslidecounter, NetOffice.PowerPointApi.Enums.PpSlideLayout.ppLayoutClipArtAndVerticalText);
// Add new table object in the slide
objTable = presentation.Slides[slide.SlideIndex + newaddslidecounter].Shapes.AddTable(amountrowsshown, pptshape.Table.Columns.Count, topsize, leftsize, slide.Master.Width - widthsize, slide.Master.Height - heightsize).Table;
}
int incrementer = 1;
/// Run through the created new table and paste all the previous table values
for (int k = startmultiplicator; k <= pptshape.Table.Rows.Count; k++)
{
for (int l = 1; l <= pptshape.Table.Columns.Count; l++)
{
objTable.Cell(incrementer, l).Shape.TextFrame.TextRange.Text = pptshape.Table.Cell(k, l).Shape.TextFrame.TextRange.Text;
objTable.Cell(incrementer, l).Shape.TextFrame.TextRange.Font.Size = fontsize;
}
incrementer++;
}
objTable.Application.Top = topsize;
objTable.Application.Left = leftsize;
objTable.Application.Width = slide.Master.Width - widthsize;
objTable.Application.Height = slide.Master.Height - heightsize;
}
pptshape.Delete();
}
}
newaddslidecounter=0;
startmultiplicator=1;
}
** Отредактировано:.
исходный код для чтения данных из БД Reading values from SQL database in C#
using (SqlConnection connection = new SqlConnection(connectionString)
using (SqlCommand command = new SqlCommand("select * from Requests where Complete = 0", connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["Username"].ToString());
Console.WriteLine(reader["Item"].ToString());
Console.WriteLine(reader["Amount"].ToString());
Console.WriteLine(reader["Complete"].ToString());
}
}
}
Connexion к базе данных, например, можно найти здесь:
try
{
SqlConnection thisConnection = new SqlConnection(@"Network Library=DBMSSOCN;Data Source=192.168.0.100,1433;database=Northwind;User id=Paladine;Password=;");
thisConnection.Open();
SqlCommand thisCommand = thisConnection.CreateCommand();
thisCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers";
SqlDataReader thisReader = thisCommand.ExecuteReader();
while (thisReader.Read())
{
Console.WriteLine("\t{0}\t{1}", thisReader["CustomerID"], thisReader["CompanyName"]);
}
thisReader.Close();
thisConnection.Close();
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
Спасибо за общий доступ к коду, но есть много vaiables undefined. – Nitish
Я изменил свой код соответственно. Теперь вы должны увидеть больше информации о разных переменных. Причина, по которой я делал это, состояла в том, чтобы разрешить создание нескольких таблиц в презентации PowerPoint, означает, что если ваши строки из вашей базы данных равны 100, вы разделите их в разных таблицах в powerpoint, а также, если вы хотите ограничить количество столбцов должно быть видимым. Кроме того, я добавил информацию о подключении к базе данных и прочитал данные, а также выделил строки, которые вы хотите использовать, и создать таблицу со связанным размером столбца. – mike27015
Вы наконец нашли решение или отличный подход с кодом, который я представил? – mike27015
- 1. Создайте презентацию powerpoint с Rails
- 2. Создать презентацию PowerPoint из Excel
- 3. Показать презентацию Powerpoint в iOS
- 4. Как определить презентацию в PowerPoint?
- 5. Вставить презентацию PowerPoint в HTML
- 6. Как создать новую презентацию Powerpoint с Powershell
- 7. Как играть презентацию с объектной моделью Powerpoint
- 8. Создайте веб-презентацию с анимацией из файла PowerPoint
- 9. Вставьте слайдер Powerpoint в текущую презентацию
- 10. Показывать презентацию Powerpoint в кадре в WPF
- 11. Как открыть презентацию PowerPoint через python?
- 12. Создайте презентацию PowerPoint на лету, используя C#
- 13. Сохранить презентацию Powerpoint 2013 как веб-страницу
- 14. Как добавить xlsx-файл в презентацию PowerPoint?
- 15. Не удается открыть презентацию Powerpoint из Excel
- 16. Вводят Open XML в открытой презентацию PowerPoint
- 17. Как получить Telerik RadHtmlChart в презентацию PowerPoint
- 18. Экспорт всей книги Excel в презентацию PowerPoint
- 19. Исключение при попытке загрузить презентацию PowerPoint
- 20. Откройте презентацию PowerPoint и спрячьте окно
- 21. Удалить презентацию Powerpoint, если она существует
- 22. Задать поле выбора из базы данных с помощью MVC
- 23. Открыть презентацию в PowerPoint 2013 с помощью VBS скрипт
- 24. Открыть презентацию Powerpoint из веб-приложения ASP.NET с использованием localhost
- 25. Добавить изображение в презентацию PowerPoint с предварительным назначением
- 26. Показать презентацию PowerPoint на веб-странице с помощью html
- 27. Как добавить текстовое поле в презентацию PowerPoint с помощью vba
- 28. Откройте презентацию PowerPoint из Excel с помощью VBA, а затем установите эту презентацию в переменную
- 29. Использование VBA для копирования из Excel в открытую презентацию Powerpoint
- 30. Заполнение базы данных разработки с производственными значениями базы данных
Ссылка, которую вы указали, поможет вам создать таблицу, что вы ищете? Вам просто нужно вернуть значения DB и для каждой строки, создать новую таблицу в Powerpoint и заполнить ее. – mike27015