(急需求解)请问: C# winform 如何将指定路径的图片循环放到Excel表格的单元格中!??

2024-12-02 05:18:17
推荐回答(2个)
回答1:

方法如下
--------------------------------------
准备工作:下载一个SpreadsheetGear.dll(这是一个专门针对Excel操作设计的类库)
-----------------------------------------
备注:因为就算是在excel中,也没有能够在单元格里面这种情况(而是插入图片后调整大小,放到相同大小的单元格上),所以这段代码的思想是根据excel模板里面你要填充的单元格大小,来循环覆盖到指定位置。
------------------------------------------
代码:
//先引入命名空间
using SpreadsheetGear;

protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
PrintExcel();
}
}

private void PrintExcel()
{
string img1=Server.MapPath(@"images\img1.jpg");
string img2=Server.MapPath(@"images\img2.jpg");
//你的excel模板(可以是空模板,但是需要设置你要填充图片的单元格大小)
//本示例假设你要填充的单元格大小为width:50;height:80 图片大小也为width:50;height:80
//图片竖向排列
string filePath = Server.MapPath(@"file\test.xls");
if (File.Exists(filePath))
{
IWorkbook workbook = Factory.GetWorkbook(filePath);
IWorksheet worksheet = workbook.Worksheets[0];

//AddPicture方法说明:4个参数分别为图片路径,到worksheet左边距离,到worksheet
//上边距离,图片宽度,图片高度
worksheet.Shapes.AddPicture(img1, 0, 0, 50, 80);
worksheet.Shapes.AddPicture(img2, 0, 80, 50, 80);
//这里的思想即为累加到worksheep上边距的大小。根据图片高度80每次增加80的距离
//当然,如果你要实现统一图片的竖向循环显示用for循环就ok了,你应该知道怎么写
workbook.SaveAs(Server.MapPath(@"file\result.xls"),FileFormat.XLS97);
}
}
------------------------------------------------
说明:因为这是一个b/s的范例,你要改成c/s的只需要将部分取文件地址的方法改为c/s来取地址就行了,其它地方没有区别
--------------------------------------------------
敲了这么久,加点分吧,兄弟。。。

回答2:

写入进去啊,我前段时间遇到的是 将文字和图片一起写入excel,最后完美解决了!
在写入文字和图片的excel操作对象必须是同一个!
等下给你找找代码
我这里有一个写好的cs类文件,代码不想贴了,需要的话我发给你!