С помощью программирования можно научить Excel преобразовывать изображения и импортировать их на лист в виде ячеек с заливкой.
Вот как выглядит готовая программа с таким функционалом.
Программа представляет собой надстройку, написанную с помощью VSTO (Visual Studio Tools for Office). Можно было написать ее и на VBA, однако это потребовало подключения дополнительных библиотек. Вы можете скачать установщик этой программы по кнопке в начале статьи.
Сама программа достаточно проста, она просит выбрать файл с изображением. Далее в цикле проходит по каждому пикселю выбранного изображения и закрашивает соответствующим цветом ячейки Excel.
private void Import(object sender, RibbonControlEventArgs e) { Excel.Worksheet worksheet = Globals.ThisAddIn.Application.ActiveSheet; Image image; using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png"; if (openFileDialog.ShowDialog() != DialogResult.OK) return; image = Image.FromFile(openFileDialog.FileName); } Bitmap bitmap = new Bitmap(image); for (int y = 0; y < bitmap.Height - 1; y++) { for (int x = 0; x < bitmap.Width - 1; x++) { Color color = bitmap.GetPixel(x, y); if (color.A != 0) worksheet.Cells[y + 1, x + 1].Interior.Color = color; } } }
Код надстройки открыт. Вы можете посмотреть его или использовать в своих решениях https://github.com/AlexeyZheltov/ImgToExcel