最近用到Aspose这个控件,是商业控件,有限制的版本用着还是不爽的..所以我找了个破解版的...
下面是几句常用到的操作EXCEL和PPT的,目前还是刚会用,慢慢研究先...
操作EXCEL的
Workbook workbook = new Workbook();
workbook.Open(path); //打开EXCEL
Cells cells;
cells = workbook.Worksheets[0].Cells;
操作PPT的
Aspose.Slides.Shape shape = slide.Shapes.AddRectangle(0, 0, 500, 500);
Aspose.Slides.TextFrame frame = shape.AddTextFrame("text"); //添加文字
Word转换成PDF文件
最近正好在使用aspose的控件,于是想看看Aspose.PDF能不能将word文件转换成PDF文件。于是去aspose的官网上查了下文档,Aspose.PDF无法直接转换word文档,需要先有个中间步骤。就是先把word转换成XML格式的文件,再使用Aspose.PDF绑定这个XML,再保存为PDF格式。如果word文档中有图片,则生成XML的时候会在临时文件夹中生成图片。
代码如下:
程序代码
Aspose.Words.Document doc = new Aspose.Words.Document("test2.docx");
//将文件保存为Aspose.Pdf.Xml格式
doc.Save("MyDocument.xml", SaveFormat.AsposePdf);
Aspose.Pdf.Pdf pdf = new Aspose.Pdf.Pdf();
//绑定XML
pdf.BindXML("MyDocument.xml", null);
//是否删除生成的临时图片文件
pdf.IsImagesInXmlDeleteNeeded = true;
pdf.Save("MyDocument.pdf");
如果文件比较大,转换的时间会有点长,帮助文档上写在Save之前加入如下两句就可以加速转换过程
程序代码
pdf.IsTruetypeFontMapCached = true;
pdf.TruetypeFontMapPath = System.IO.Path.GetTempPath();
不过我测试之后发现,加入这两句之后竟然比原来还慢。。不知道是什么原因
用Aspose控件读取Excel
Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入、导出数据非常方便。虽然是收费的,不过可以用破解的嘛~~
其中Aspose.Cells就是用来操作Excel的,功能有很多。我所用的是最基本的功能,读取Excel的数据并导入到Dataset或数据库中。读取Excel表格数据的代码如下:
首先要引入命名空间
程序代码
using Aspose.Cells;
打开并读取
程序代码
Cells cells;
Workbook workbook = new Workbook();
workbook.Open("C:\\test.xlsx");
cells = workbook.Worksheets[0].Cells;
for (int i = 0; i < cells.MaxDataRow + 1; i++)
{
for (int j = 0; j < cells.MaxDataColumn + 1; j++)
{
string s = cells[i, j].StringValue.Trim();
//一行行的读取数据,插入数据库的代码也可以在这里写
}
}
主要的代码就是这些,数据已经读取出来了,剩下的怎么操作就看你自己扩展了。Aspose控件的使用还是比较简单的,想要更深入的了解就得多练练。。
用Aspose.Slides向PPT中插入Excel文件
今天又使用了ASPOSE,项目中有一个功能是生成PPT,然后在这个PPT中还要嵌入EXCEL文件.对ASPOSE这个控件还是不太熟悉,在网上找了好久一直没找到,最后还是去官网找到了代码.这个控件好强大的,得好好研究才行...
下面是嵌入EXCEL文件的代码:
Presentation pres = new Presentation("C:\\demo.ppt");
//取第二张幻灯片
Slide slide = pres.GetSlideByPosition(2);
//读取EXCEL表格并存为字节数组
FileStream fstro = new FileStream("C:\\excel1.xls", FileMode.Open,FileAccess.Read);
byte[] b = new byte[fstro.Length];
fstro.Read(b, 0, (int)fstro.Length);
//以OleObjectFrame形式插入幻灯片
Aspose.Slides.OleObjectFrame oof = slide.Shapes.AddOleObjectFrame(0,0,pres.SlideSize.Width,
pres.SlideSize.Height,"Excel.Sheet.8", b);
//写入PPT
pres.Write("C:\\modified.ppt");