[C#] Hướng dẫn xuất danh sách hình ảnh nhân viên ra file Excel
Xin chào các bạn, bài viết hôm nay mình sẻ tiếp tục hướng dẫn các bạn cách xuất hình ảnh ra file Excel sử dụng thư viện Epplus Winform C#.
[C#] Export Image to Excel using Epplus Winform
VD: Các bạn có một danh sách nhân viên, và các bạn muốn xuất thông tin kèm theo hình ảnh của nhân viên đó ra file Excel.
Như hình ảnh ở bên dưới đây.
Bao gồm hình thông tin nhân viên như: Họ tên, chức vụ, tuổi, địa chỉ, điện thoại...
Source code export image to excel C#:
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ExportImagetoExcel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnExport_Click(object sender, EventArgs e)
{
FileInfo newFile = new FileInfo(@"image.xlsx");
if (newFile.Exists)
{
newFile.Delete();
newFile = new FileInfo(@"image.xlsx");
}
ExcelPackage objExcelPackage = new ExcelPackage();
string[] filesindirectory = Directory.GetFiles("avatar");
int count = 1;
ExcelWorksheet ws = objExcelPackage.Workbook.Worksheets.Add("Worksheet" + count);
foreach (string img in filesindirectory)
{
Image myImage = Image.FromFile(img);
var newImageResize = ResizeImage(myImage, 110, 130);
var pic = ws.Drawings.AddPicture(count.ToString(), newImageResize);
pic.SetPosition(count, 0, 2, 0);
ws.Cells[count+1,5].Value = "Tên nhân viên";
ws.Cells[count+2,5].Value = "Tuổi 18";
ws.Cells[count+3,5].Value = "Chức vụ: Nhân viên";
ws.Cells[count+4,5].Value = "Địa chỉ: BRVT";
ws.Cells[count+5,5].Value = "Điện thoại: 0933.913.122";
count += 8;
}
ws.View.ShowGridLines = false;
objExcelPackage.SaveAs(newFile);
Process.Start(newFile.FullName);
}
public Bitmap ResizeImage(Image image, int width, int height)
{
var destRect = new Rectangle(0, 0, width, height);
var destImage = new Bitmap(width, height);
destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
using (var graphics = Graphics.FromImage(destImage))
{
graphics.CompositingMode = CompositingMode.SourceCopy;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
using (var wrapMode = new ImageAttributes())
{
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
}
}
return destImage;
}
}
}
Thanks for watching!