/// <summary> /// 把圖片保存到excel中 /// </summary> /// <param name="excelFilePath">目標Excel</param> /// <param name="imageFilePath">保存的圖片</param> /// <param name="width">保存時圖片寬度</param> /// <param name="height">保存時圖片高度</param> /// <param name="col">Excel第幾列開始放</param> /// <param name="row">Excel第幾行開始放</param> public static void InsertImgToExcel(string excelFilePath, string imageFilePath,int width,int height,int col,int row) { try { FileStream fs = new FileStream(excelFilePath, FileMode.Open, FileAccess.ReadWrite); HSSFWorkbook hssfworkbook = new HSSFWorkbook(fs); ISheet sheet1 = hssfworkbook.GetSheetAt(0); //map the path to the img folder string imagesPath = imageFilePath; //create an image from the path System.Drawing.Image image = System.Drawing.Image.FromFile(imagesPath); MemoryStream ms = new MemoryStream(); //pull the memory stream from the image (I need this for the byte array later) image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); //the drawing patriarch will hold the anchor and the master information IDrawing patriarch = sheet1.CreateDrawingPatriarch(); //store the coordinates of which cell and where in the cell the image goes HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 100, 100, col, row, col+3, row+3); //types are 0, 2, and 3. 0 resizes within the cell, 2 doesn't anchor.AnchorType = 2; //add the byte array and encode it for the excel file int index = hssfworkbook.AddPicture(ms.ToArray(), PictureType.JPEG); IPicture pict = patriarch.CreatePicture(anchor, LoadImage(imagesPath, hssfworkbook)); pict.Resize();//原圖大小 FileStream fs3 = new FileStream(excelFilePath, FileMode.OpenOrCreate); hssfworkbook.Write(fs3); fs3.Close(); fs.Close(); }
生成二維碼
/// <summary> /// 生成二維碼圖片 /// </summary> /// <param name="codeNumber">要生成二維碼的字符串</param> /// <param name="size">大小尺寸</param> /// <returns>二維碼圖片</returns> public Bitmap Create_ImgCode(string codeNumber, int size) { //創建二維碼生成類 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); //設置編碼模式 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //設置編碼測量度 qrCodeEncoder.QRCodeScale = size; //設置編碼版本 qrCodeEncoder.QRCodeVersion = 0; //設置編碼錯誤糾正 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //生成二維碼圖片 System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber); return image; }