ASP.net 将Excel转换成图片 并裁剪指定大小

一、将当前Excel文件装换为图片

1.需要引用Spire.Xls dll,可以去网上下载;


2.对应方法

public class XLS
    {
        /// <summary>
        /// Excel转图片
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <param name="saveFileName">保存文件名</param>
        /// <param name="imageFormat">保存文件格式</param>
        /// <returns></returns>
        public static bool ExcelToPicture(string filePath, string saveFileName, ImageFormat imageFormat)
        {
            bool result = false;
            try
            {
                Workbook workbook = new Workbook();
                workbook.LoadFromFile(filePath);
                Worksheet sheet = workbook.Worksheets[0];
                //文件保存路径 C:\Program Files (x86)\IIS Express
                sheet.SaveToImage(saveFileName + "." + imageFormat.ToString());
                result = true;
            }
            catch (Exception ee)
            {
            }
            return result;
        }
        /// <summary>
        /// Excel转图片
        /// </summary>
        /// <param name="firstRow">首行</param>
        /// <param name="firstColumn">首列</param>
        /// <param name="lastRow">尾行</param>
        /// <param name="lastColumn">尾列</param>
        /// <param name="filePath">文件路径</param>
        /// <param name="saveFileName">保存文件名</param>
        /// <param name="imageFormat">保存文件格式</param>
        /// <returns></returns>
        public static bool ExcelToPicture(int firstRow, int firstColumn, int lastRow, int lastColumn, string filePath, string saveFileName, ImageFormat imageFormat)
        {
            bool result = false;
            try
            {
                Workbook workbook = new Workbook();
                workbook.LoadFromFile(filePath);
                Worksheet sheet = workbook.Worksheets[0];
                //文件保存路径 C:\Program Files (x86)\IIS Express
                sheet.SaveToImage(firstRow, firstColumn, lastRow, lastColumn).Save(saveFileName, ImageFormat.Jpeg);
                result = true;
            }
            catch (Exception ee)
            {
            }
            return result;
        }
        /// <summary>
        /// 图片剪切
        /// </summary>
        /// <param name="filepath">源文件路径</param>
        /// <param name="CutHight">需要裁剪上下边框高度</param>
        /// <param name="CutWidth">裁剪宽度</param>
        /// <param name="thumbnailPath">图片输出路径</param>
        /// <param name="imageFormatIn">图片输入格式</param>
        /// <param name="imageFormatOut">图片输出格式</param>
        /// <returns></returns>
        public static bool CutImage(string filepath, int CutHight, int CutWidth, string thumbnailPath, ImageFormat imageFormatIn, ImageFormat imageFormatOut)
        {
            bool result = false;
            try
            {
                System.Drawing.Image originalImage = System.Drawing.Image.FromFile(filepath);
                int allW = originalImage.Width;
                int allH = originalImage.Height;
                // int oW = allW;
                //int oH = allH;
                int towidth = allW - CutHight;
                int toheight = allH - CutWidth;
                //新建一个bmp图片
                System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
                //新建一个画板
                Graphics g = System.Drawing.Graphics.FromImage(bitmap);
                //设置高质量插值法
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
                //设置高质量,低速度呈现平滑程度
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                //清空画布并以透明背景色填充
                g.Clear(Color.Transparent);
                //在指定位置并且按指定大小绘制原图片的指定部分
                g.DrawImage(originalImage, new Rectangle(0, 0, allW, allH), new Rectangle(CutHight, CutHight, towidth, toheight), GraphicsUnit.Pixel);
                //以jpg格式保存缩略图
                string path = thumbnailPath + Path.GetFileNameWithoutExtension(filepath) + "." + imageFormatOut.ToString();
                bitmap.Save(thumbnailPath, imageFormatOut);
                g.Dispose();
                bitmap.Dispose();
                result = true;
            }
            catch (Exception ee)
            {
            }
            return result;
        }
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值