使用Aspose.Cells导出EXCEL且导入图片可自动缩小

下面我们先导出一个可以自动缩小图片的EXCEL代码如下:

1.先引用Aspose.Cells参考,下载地址:http://download.csdn.net/detail/wubing1111/7268739

2.引用命名空间:using Aspose.Cells;
        using System.Drawing;
        using System.IO;

  public void ImportNoTemp()
        {
            Workbook workbook = new Workbook();

            Worksheet sheet = (Worksheet)workbook.Worksheets[0];
            Cells cells = sheet.Cells;//单元格
            for (int i = 1; i < 4; i++)
            {

                sheet.Cells["A" + i.ToString()].PutValue("TEST");

                sheet.Cells["B" + i.ToString()].PutValue("日期");
                byte[] bytes = null;
                if (i == 1)
                {
                    bytes = SmallImageDatabytes(@"D:\PIC\t1.jpg", 60, 40);//自動縮小圖片後轉換為二進制流
                }
                else if (i == 2)
                {
                    bytes = SmallImageDatabytes(@"D:\PIC\t2.jpg", 60, 40);//自動縮小圖片後轉換為二進制流
                }
                else if (i == 3)
                {
                    bytes = SmallImageDatabytes(@"D:\PIC\t3.jpg", 60, 40);//自動縮小圖片後轉換為二進制流
                }
                MemoryStream ms = new MemoryStream(bytes);

                System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
                cells.SetRowHeight(i - 1, returnImage.Height); //設定為圖片高度
                sheet.Pictures.Add(i - 1, 3, ms);//導入圖片到EXCEL
                //


            }
            string filename = string.Format("{0}{1}.xls", "saleranklist", Convert.ToDateTime(DateTime.Now).ToString("yyyyMMdd")); //文件默认命名方式,可以自定义
            //寫法一

            Response.ContentType = "application/ms-excel;charset=utf-8";
            Response.AddHeader("content-disposition", "attachment; filename=" + filename);
            MemoryStream memStream = workbook.SaveToStream();
            Response.BinaryWrite(memStream.ToArray());
            Response.End();

            //寫法二
            //Response.Clear();
            //Response.Buffer = true;
            //Response.Charset = "utf-8";
            //Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
            //Response.ContentEncoding = System.Text.Encoding.UTF8;
            //Response.ContentType = "application/ms-excel";
            //Response.BinaryWrite(workbook.SaveToStream().ToArray());
            //Response.End(); 
        }

/// <summary>
        /// 按給寬與長自動縮小圖片後轉換為二進制流
        /// </summary>
        /// <param name="FilePath"></param>
        /// <param name="intWidth"></param>
        /// <param name="intHeight"></param>
        /// <returns></returns>
        public static byte[] SmallImageDatabytes(string FilePath, int intWidth, int intHeight)
        {
            if (!File.Exists(FilePath))
                return null;

            Bitmap objPic = new System.Drawing.Bitmap(FilePath);

            Bitmap myBitmap = new System.Drawing.Bitmap(objPic, intWidth, intHeight);

            using (MemoryStream curImageStream = new MemoryStream())
            {
                myBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Png);
                curImageStream.Flush();

                byte[] bmpBytes = curImageStream.ToArray();
                //如果转字符串的话
                //string BmpStr = Convert.ToBase64String(bmpBytes);
                return bmpBytes;
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Aspose.Cells是一个用于处理Excel文件的.NET组件。在使用Aspose.Cells导出Excel文件时,可以使用以下代码示例: ```csharp System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response; workbook.Save(Response, HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) + ".xlsx", Aspose.Cells.ContentDisposition.Attachment, new Aspose.Cells.XlsSaveOptions(Aspose.Cells.SaveFormat.Xlsx)); ``` 这段代码将Excel文件保存到HttpResponse中,以便将其作为附件下载。其中,`workbook`是你创建的Excel工作簿对象,`filename`是你想要保存的文件名。 在生成Excel文件时,你还可以设置标题行和列头行的样式,例如: ```csharp // 生成标题行 cells.Merge(0, 0, 1, header.Keys.Count); // 合并单元格,标题行有几列就合并几列 cells\[0, 0\].PutValue(filename); // 填写内容 cells\[0, 0\].SetStyle(styleTitle); // 使用标题样式 cells.SetRowHeight(0, 50); // 第0行,50px高 // 生成列头行 int headerNum = 0; // 当前表头所在列 foreach (string item in header.Keys) { cells\[1, headerNum\].PutValue(item); cells\[1, headerNum\].SetStyle(styleHeader); cells.SetColumnWidthPixel(headerNum, 200); // 设置单元格200宽度 cells.SetRowHeight(1, 30); // 第一行,30px高 headerNum++; } ``` 这段代码示例展示了如何设置标题行和列头行的样式,其中`cells`是你创建的Worksheet对象,`header`是一个包含列头信息的字典,`styleTitle`和`styleHeader`是你定义的样式对象。 希望这些代码示例能帮助到你导出Excel文件使用Aspose.Cells。 #### 引用[.reference_title] - *1* *2* *3* [使用Aspose.Cells导出excel](https://blog.csdn.net/rxbtalent/article/details/99818241)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值