我正在尝试制作一个程序,该程序可以创建菜单,然后从菜单中制作图片。这是我第一次使用这些“互操作性”,到目前为止,我设法使它们起作用。我已经尝试过各种解决方案,但是没有一个对我有用。
这是我到目前为止所拥有的:
Range re = worksheet.Range["A1:U37"];
re.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
IDataObject data = Clipboard.GetDataObject();
Image image = (Image)data.GetData(DataFormats.Bitmap, true);
image.Save("image.bmp", ImageFormat.Bmp);
据我所知,这应该是将excel中选定的范围复制到剪贴板,然后从那里检索它。但是对我来说,它总是在保存部分抛出一个异常,说“ System.NullReferenceException,图像为空”
编辑:文件打开和图像制作代码
string path = Path.GetFullPath("just_an_excel.xlsx");
Excel.Application excel = new Excel.Application();
Workbook wb = excel.Workbooks.Open(path, false, true);
Worksheet worksheet = (Worksheet)wb.Worksheets.get_Item(1);
worksheet.Copy();
worksheet = excel.Workbooks[2].Sheets[1];
excel.Workbooks[1].Close();
excel.Visible = true;
Range re = worksheet.Range["A1:A7"];
re.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
IDataObject data = Clipboard.GetDataObject();
Image image = (Image)data.GetData(DataFormats.Bitmap, true);
image.Save("image.bmp", ImageFormat.Bmp);