Как вставить улучшенное изображение метафайла в лист? - PullRequest
1 голос
/ 18 июня 2019

Мне нужно вставить улучшенное изображение метафайла (.emf) в мой лист.Изображение должно масштабироваться без потери разрешения, поэтому я использую формат emf.

Я попытался вставить изображение из потока памяти и прочитать из файла, но где-то во время этого процесса преобразовывается вjpg и больше не масштабируется, так как таблица просматривается / печатается в разных размерах.

Обратите внимание, когда я использую Interop.Excel, изображение вставляется в виде файла ЭДС и масштабируется соответствующим образом.Когда я использую EPPlus, у меня возникает проблема.Я действительно хочу отойти от Interop.Excel, поэтому я использую EPPlus.

// This works as expected, but I don't want to use the interop lib.
using Excel = Microsoft.Office.Interop.Excel;
myXlWorkBook.ActiveSheet.shapes.AddPicture(emfImageFileName, ....);

// This does not. The picture appears in the worksheet but does not scale.
using OfficeOpenXml;
using OfficeOpenXml.Drawing;
ExcelPicture pic = myXlWorkSheet.Drawings.AddPicture("Picture Name", new FileInfo(emfImageFileName)); 

// This doesn't work either.
Image img = Image.FromStream(myEmfImageStream);
ExcelPicture pic = myXlWorkSheet.Drawings.AddPicture("Picture Name", img);

Мой ожидаемый результат должен быть лист Excel с моим изображением в нем, которое масштабируется должным образом при просмотре / печати вразличные размеры.

1 Ответ

0 голосов
/ 20 июня 2019

Убедитесь, что вы задали его размеры, иначе все будет равно нулю:

pic.From.Row = 0;
pic.From.Column = 0;
pic.To.Row = 30;
pic.To.Column = 23;

Что касается хранения в формате JPG, это звучит очень странно, оно не должно преобразовываться случайным образом. Вы можете подтвердить это или нет, открыв файл XLSX в 7-zip или переименовав в .ZIP и открыв. Вы должны увидеть файл, хранящийся в папке мультимедиа.

Кроме того, следите за пробелами в имени файла emf, так как я видел, как отключение EPPlus.

UPDATE

Для тех, кто может столкнуться с этим, это ошибка в Epplus. Я представил пиар "

https://github.com/JanKallman/EPPlus/issues/496

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...