c# - Excel exception HRESULT: 0x800A03EC from ChartArea.Copy() -


i'm working on c# application thats interacts excel instance using excel interop.dll v11.0. i'm using following code copy chart excel worksheet clipboard:

public image readchart(chart chartaccess) {     try {         microsoft.office.interop.excel.worksheet sheet = workbook.sheets[chartaccess.sheet.name];         microsoft.office.interop.excel.chartobject chart = sheet.chartobjects(chartaccess.name);         chart.chart.chartarea.copy();  // exception gets thrown here          return system.windows.forms.clipboard.getimage();     } catch (comexception) {         // display error dialog etc...     } 

this worked fine excel 2007. since switching excel 2013 function chartarea.copy() results in following comexceptions being thrown:

message:      "dimension not valid chart type" stack trace:  system.runtimetype.forwardcalltoinvokemember(string membername, bindingflags flags, object target, int32[] awrappertypes, messagedata& msgdata)               microsoft.office.interop.excel.chartarea.copy()  message:      "hresult: 0x800a03ec" stack trace:  system.runtimetype.forwardcalltoinvokemember(string membername, bindingflags flags, object target, int32[] awrappertypes, messagedata& msgdata)               microsoft.office.interop.excel.chartarea.copy() 

this happens excel sheets of old .xls format, xlsm / xlsx files work fine. using newer versions of interop.dll (v14.0 , v15.0) didn't help.

any appreciated!

edit:

i resolved problem using following workaround:

// ... chart.chart.activate(); chart.chart.export(filename, "png", false); using (stream reader = file.openread(filename)) {     image = image.fromstream(stream); } return image; 

the documentation copy shows there difference between versions 2003 , 2010.

2003:

void copy(     [in, optional] object before,      [in, optional] object after ); 

2010:

void copy(     object before,     object after ) 

as can see, arguments optional in 2003, , mandatory in later version.


Comments

Popular posts from this blog

javascript - AngularJS custom datepicker directive -

javascript - jQuery date picker - Disable dates after the selection from the first date picker -