Главное Авторские колонки Вакансии Вопросы
68 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Использование C# для преобразования Excel в высококачественный JPG

Сегодня я покажу, как использовать библиотеку Spire.XLS вместе с кодом на C# для получения качественных изображений Excel → JPG.
Мнение автора может не совпадать с мнением редакции

В повседневной офисной работе часто возникает необходимость преобразовать таблицы Excel в изображения. Будь то создание предпросмотра отчётов, демонстрация данных или предотвращение путаницы в форматировании, преобразование Excel в JPG — это практичное решение. Сегодня я покажу, как использовать библиотеку Spire.XLS вместе с кодом на C# для получения качественных изображений Excel → JPG.

Почему нужна высококачественная конвертация

Обычные способы, например прямые скриншоты или стандартные конвертеры, часто приводят к размытости изображения и нечитаемости текста. Особенно при печати или увеличенном просмотре низкое разрешение просто не соответствует требованиям. Установка разрешения 300 DPI позволяет гарантировать, что итоговый JPG будет достаточно чётким для печатного качества.

Шаги реализации

Сначала нужно установить библиотеку Spire.XLS. Для этого в NuGet Package Manager найдите Spire.XLS и установите пакет.

Ключевой код состоит из трёх частей:

  1. Загрузка Excel-файла : с помощью класса Workbook загружается нужный лист
  2. Преобразование в поток EMF : экспорт заданной области в поток памяти в формате EMF
  3. Настройка разрешения и сохранение : через метод ResetResolution устанавливается разрешение 300 DPI, после чего результат сохраняется в JPG

Полный код

using Spire.Xls;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

namespaceConvert

{

classProgram

{

staticvoidMain(string[] args)

{

Workbook workbook = new Workbook();

workbook.LoadFromFile("Input.xlsx", ExcelVersion.Version2013);

Worksheet worksheet = workbook.Worksheets[0];

using (MemoryStream ms = new MemoryStream())

{

worksheet.ToEMFStream(ms, 1, 1, worksheet.LastRow, worksheet.LastColumn);

Image image = Image.FromStream(ms);

Bitmap images = ResetResolution(image as Metafile, 300);

images.Save("Result.jpg", ImageFormat.Jpeg);

}

}

privatestatic Bitmap ResetResolution(Metafile mf, float resolution)

{

int width = (int)(mf.Width * resolution / mf.HorizontalResolution);

int height = (int)(mf.Height * resolution / mf.VerticalResolution);

Bitmap bmp = new Bitmap(width, height);

bmp.SetResolution(resolution, resolution);

Graphics g = Graphics.FromImage(bmp);

g.DrawImage(mf, 0, 0);

g.Dispose();

return bmp;

}

}

}

Объяснение ключевых моментов кода

  1. Метод ToEMFStream может экспортировать заданный диапазон листа в формат EMF (enhanced metafile). Этот векторный формат помогает сохранять качество при масштабировании без искажений
  2. Метод ResetResolution принимает объект Metafile и целевое разрешение, возвращает скорректированный Bitmap
  3. Использование MemoryStream позволяет избежать создания временных файлов — преобразование выполняется прямо в памяти

Сценарии применения

  1. Системы отчётности : преобразование таблиц с данными в изображения для встраивания в Word, PPT или веб-страницы
  2. Демонстрация данных : чтобы пользователи могли просматривать данные, даже если у них нет установленного Excel
  3. Архивное резервное копирование : перевод важных таблиц в формат изображений для долгого хранения (данные меньше подвержены изменениям)

С помощью описанного подхода вы легко сможете преобразовать таблицы Excel в изображения JPG высокого качества, что удовлетворяет большинству офисных задач. Если нужно выполнить пакетную конвертацию, достаточно пройтись циклом по нескольким листам в рабочей книге.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем