У меня возникли проблемы с доставкой моего диапазона в файл emf. Он копируется в буфер обмена, потому что я могу вставить его после того, как исключение:Экспорт диапазона excel в файл EMF в указанном месте
Исключение типа «System.NullReferenceException» произошло в N1Narrator.dll, но не был обработан в коде пользователя Дополнительная информация : В экземпляре объекта не задана ссылка на объект. < --referencing 'IMG'
Вот мой код:
if (intersectRange != null && name.RefersToRange.Cells.Count > 1)
{
name.RefersToRange.CopyPicture(Excel.XlPictureAppearance.xlScreen, Excel.XlCopyPictureFormat.xlPicture);
const int CF_ETAFILE = 14;
IntPtr intptr;
System.Drawing.Imaging.Metafile myMetaFile = null;
if (ClipboardFunctions.OpenClipboard(IntPtr.Zero))
{
if (ClipboardFunctions.IsClipboardFormatAvailable(CF_ETAFILE) != 0)
{
intptr = ClipboardFunctions.GetClipboardData(CF_ETAFILE);
myMetaFile = new Metafile(intptr, true);
ClipboardFunctions.CloseClipboard();
myMetaFile.Save(@"C:\Users\Nick\AppData\Local\Temp\Narrative1\N1Appraisal\ExcelTables\testtable.emf", ImageFormat.Emf);
}
}
}
Я посмотрел в DataObject(), а также для буфера обмена, но безрезультатно. Я не хочу использовать метод Chart, это будет слишком медленно.
Какой буфер обмена вы используете? System.Windows или System.Windows.Forms? – ShipOfTheseus
System.Windows.Forms – Drew2127
О, боже, это сработало, я был идиотом и забыл сменить XLBitmap на XLPicture. Большое вам спасибо. – Drew2127