Программа
Doc-filler
Заполнять шаблоны Word из Excel в несколько кликов.
Подробнее...
Заказать макрос
Разрабатываем макросы на заказ. Любой сложности. Быстро и качественно.
Подробнее...
Возможности Excel » Макросы » Преобразовать изображение в Excel

Преобразование изображения в ячейки Excel

Использование Excel в качестве графического редактора, конечно, не самая лучшая идея. Но с другой стороны почему бы и нет, ведь ячейки листа могут хранить не только числа и текст, но и цвет пикселей.

С помощью программирования можно научить 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
 

Скачать

Комментарии:

comments powered by Disqus