(急需求解)请问: C# winform 如何将指定路径的图片循环放到Excel表格的单元格中!??
2个回答
展开全部
方法如下
--------------------------------------
准备工作:下载一个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来取地址就行了,其它地方没有区别
--------------------------------------------------
敲了这么久,加点分吧,兄弟。。。
--------------------------------------
准备工作:下载一个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来取地址就行了,其它地方没有区别
--------------------------------------------------
敲了这么久,加点分吧,兄弟。。。
追问
前面的兄弟先给了答案,不好意思,我在提问个,你随便回答下,我给你分
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询