小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 经验技巧
  4. 正文

c#中使用Aspose.Cells组件,将图片导出至Excel示例

2022年12月4日 2196点热度 0人点赞 0条评论

将文本数据导出至Excel有很多种办法,如果是用DevExpress的Grid控件展示数据,那么这个控件本身就提供ExportToExcel的方法,一句话就能搞定。如果是将DataTable或ListModel导出,也有很多组件支持,比如Aspose.Cells、NPIO、微软Office等,网上示例不少,这里不再描述。

使用aspose.cells导出excel

今天要分享的,是如何将图片导出至Excel。相当于将采购订单明细导出至Excel,里面要包含商品的图片、规格、数量、金额等。我们用的是Aspose.Cells组件,里面有个Aspose.Cells.Drawing.Picture对象。

完整代码如下

Workbook wb = new Workbook();
Worksheet ws = wb.Worksheets[0];
Cells cell = ws.Cells;

//表头样式
Style styHead = wb.Styles[wb.Styles.Add()];
styHead.HorizontalAlignment = TextAlignmentType.Center;       //文字居中
styHead.Font.Name = "宋体";
styHead.Font.IsBold = true;                                 //设置粗体
styHead.Font.Size = 12;                                     //设置字体大小

//内容样式
Style numberSty = wb.Styles[wb.Styles.Add()];
numberSty.HorizontalAlignment = TextAlignmentType.Center;
numberSty.Font.Size = 10;
numberSty.Custom = "0.00";

//内容样式
Style numberSty1 = wb.Styles[wb.Styles.Add()];
numberSty1.HorizontalAlignment = TextAlignmentType.Center;
numberSty1.Font.Size = 10;
numberSty1.Custom = "0";

//要货明细表头
putValue(cell, "picture", 0, 0, styHead);
putValue(cell, "price", 0, 1, styHead);
putValue(cell, "qty", 0, 2, styHead);
putValue(cell, "amount", 0, 3, styHead);
putValue(cell, "goodsCode", 0, 4, styHead);
putValue(cell, "seqno", 0, 5, styHead);
cell.SetColumnWidth(0, 20);

//写入要货明细数据
int row = 1;
foreach (var pModel in listDetailModel)
{
    string imageUrl = httpUrl + pModel.ItemImgUrl;
    var byteImage = FormUIHelper.DownloadData(imageUrl);
    MemoryStream ms = new MemoryStream(byteImage);

    int iIndex = ws.Pictures.Add(row, 0, ms);
    Aspose.Cells.Drawing.Picture pic = ws.Pictures[iIndex];
    pic.Placement = Aspose.Cells.Drawing.PlacementType.FreeFloating;
    pic.Height = 130;
    pic.Width = 100;

    putValue(cell, pModel.SalePrice, row, 1, numberSty);
    putValue(cell, pModel.SaleQty, row, 2, numberSty1);
    putValue(cell, pModel.SaleAmountCn, row, 3, numberSty);
    putValue(cell, pModel.GoodsCode, row, 4, styHead);
    putValue(cell, pModel.ChildNo, row, 5, styHead);
    cell.SetRowHeight(row, 100);
    row++;
}

wb.Save(xlsFiName);

代码比较简单,直接看就行了。有不懂的可以留言或加博主微信:xiyang1011

 

相关阅读

net中c#教程 如何创建、合并、下载、打印pdf文件?

c#中生成图片的另类方法,比gdi方式要简单很多

标签: Aspose.Cells c#教程 Excel net教程 导出图片 数据导出
最后更新:2022年12月5日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2