我是新来的。请帮助我达到以下要求。Requirement:-我正在尝试创建一个应用程序,它可以处理excel文件,并且基于excel数据应用程序将生成一个输出文件( ppt扩展名)。
特殊指导:-请注意,我将提供ppt模板,该模板将有一个特定的占位符,其中的数据将插入从上传的excel。
正在进行中的工作:-我在我的项目中同时添加了Aspose.Cells和Aspose.Slides dll,并在PoC下面编写。
private void button1_Click(object sender, EventArgs e){
Workbook wb = new Workbook(@“C:\Users\Nilanjan\Desktop\Incident.xlsx”);
Worksheet ws = wb.Worksheets[0];
Cells cells = ws.Cells;
int col = CellsHelper.ColumnNameToIndex(“N”);
int last_row = ws.Cells.GetLastDataRow(col);
DataTable dt = wb.Worksheets[0].Cells.ExportDataTable(0, 0,
wb.Worksheets[0].Cells.MaxDataRow + 1, wb.Worksheets[0].Cells.MaxDataColumn + 1);
Presentation ps = new Presentation();
ISlide slide=ps.Slides[0];
slide=ps.Slides[1];
ps.Save(@“C:\Users\Nilanjan\Desktop\CocoonIncident1.pptx”,Aspose.Slides.Export.SaveFormat.Pptx );
}到目前为止,我已经尝试将excel上传到我的代码中,在处理它之后,我能够用excel数据填充DataTable,现在下一步是用该DataTable数据填充ppt-模板。请帮助我实现这一功能,或请建议一个适当的解决办法。如果需要ppt模板或excel文件,请告诉我。
发布于 2018-01-23 19:32:52
@Nilanjan
我已经注意到您对将DataTable添加到PowerPoint幻灯片的要求。在DataTable幻灯片中添加PowerPoint没有直接的方法。您需要访问DataTable中的每个单元格,并按照PowerPoint或Aspose.Slides支持的机制将其添加到PowerPoint幻灯片中。我建议您试着在您的端使用以下示例代码。
public static void DataTableToSlides()
{
String path = @"C:\Aspose Data\";
System.Data.DataTable table = new System.Data.DataTable();
table.Columns.Add("Term", typeof(string));
table.Columns.Add("Value", typeof(float));
table.Rows.Add(@"Term 16", 1.5);
table.Rows.Add(@"Term 15", 0.7);
table.Rows.Add(@"Term 14", 0.7);
table.Rows.Add(@"Term 13", 0.6);
table.Rows.Add(@"Term 12", 0.6);
Presentation pres = new Presentation();
ISlide slide = pres.Slides[0];
double[] colWidth = { 100, 100 };
double[] rowHeight = { 40};// 40, 40,40,40,40 };//1 row additional to hold the headers
ITable slidesTable = slide.Shapes.AddTable(100, 10, colWidth, rowHeight);
slidesTable[0, 0].TextFrame.Text = table.Columns[0].ColumnName;
slidesTable[1, 0].TextFrame.Text = table.Columns[1].ColumnName;
for (int i=0;i<table.Rows.Count;i++)
{
DataRow row = table.Rows[i];
slidesTable.Rows.AddClone(slidesTable.Rows[0], false);
slidesTable[0, i + 1].TextFrame.Text = row[0].ToString();
slidesTable[1, i + 1].TextFrame.Text = row[1].ToString();
}
pres.Save(path + "Saved.pptx",Aspose.Slides.Export.SaveFormat.Pptx);
}我在Aspose做支持开发人员/布道者。
非常感谢。
https://stackoverflow.com/questions/48397515
复制相似问题