C# Automation problem

J

Jamie Oglethorpe

I don't have VS 2005 Tools for MS Office, so I am trying to do this the old
fashioned way with automation.

I have created the Excel application, and am trying to set the document
properties, such as Title and Author. To that end I have a reference to
Microsoft.Office.Core and am trying to assign
workbook.BuiltinDocumentProperties to a DocumentProperties object (with the
appropriate casting).

I get this exception:

System.InvalidCastException : Unable to cast COM object of type
'System.__ComObject' to interface type
'Microsoft.Office.Core.DocumentProperties'. This operation failed because the
QueryInterface call on the COM component for the interface with IID
'{2DF8D04D-5BFA-101B-BDE5-00AA0044DE52}' failed due to the following error:
No such interface supported (Exception from HRESULT: 0x80004002
(E_NOINTERFACE)).

Help!
 
J

Jim Cone

In Excel the workbook must be open to access its document properties.
The syntax would be something like this using Automation...

Dim strAuthor as String
strAuthor = AppXL.Workbooks("Important").BuiltinDocumentProperties(3)

However, or also, MS supplies a .dll (Dsofile.dll) that allows one to read
and to edit document properties that are associated with Microsoft
Office files. I've used it and it works, but I have found no need for it.
Find it here...
http://support.microsoft.com/kb/224351/en-us
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Jamie Oglethorpe"
<[email protected]>
wrote in message .
I don't have VS 2005 Tools for MS Office, so I am trying to do this the old
fashioned way with automation.
I have created the Excel application, and am trying to set the document
properties, such as Title and Author. To that end I have a reference to
Microsoft.Office.Core and am trying to assign
workbook.BuiltinDocumentProperties to a DocumentProperties object (with the
appropriate casting).
I get this exception:

System.InvalidCastException : Unable to cast COM object of type
'System.__ComObject' to interface type
'Microsoft.Office.Core.DocumentProperties'. This operation failed because the
QueryInterface call on the COM component for the interface with IID
'{2DF8D04D-5BFA-101B-BDE5-00AA0044DE52}' failed due to the following error:
No such interface supported (Exception from HRESULT: 0x80004002
(E_NOINTERFACE)).

Help!
 
J

Jamie Oglethorpe

Hi Jim,

I have a feeling I may have to do this in VB. I am translating Delphi code I
did about 5 years ago. Unfortunately the translation is not exact. Here is a
cut down versionof what I am doing. The app writes the contents of a data set
with several tables to a new Excel document. The Excel code is wrapped in a
base class that takes care of all the messy low level details. I am excluding
stuff like the application property and methods here.

....
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
....
private Application excel = new Application();
....
string s = Excel.DefaultFilePath;
if (File.Exists(FileName))
File.Delete(FileName);
else if (File.Exists(s + "\\" + FileName))
File.Delete(s + "\\" + FileName);
Excel.SheetsInNewWorkbook = 1;
Book = Excel.Workbooks.Add(Type.Missing);
Sheet = (Worksheet)Book.Worksheets[1];
DocumentProperties prop =
(DocumentProperties)Book.BuiltinDocumentProperties;
// this is the line that crashes
prop["Title"].Value = Title;
....
 
J

Jim Cone

No help available from here.

Jim Cone
http://www.officeletter.com/blink/specialsort.html


"Jamie Oglethorpe"
wrote in message
Hi Jim,
I have a feeling I may have to do this in VB. I am translating Delphi code I
did about 5 years ago. Unfortunately the translation is not exact. Here is a
cut down versionof what I am doing. The app writes the contents of a data set
with several tables to a new Excel document. The Excel code is wrapped in a
base class that takes care of all the messy low level details. I am excluding
stuff like the application property and methods here....
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;...
private Application excel = new Application();...
string s = Excel.DefaultFilePath;
if (File.Exists(FileName))
File.Delete(FileName);
else if (File.Exists(s + "\\" + FileName))
File.Delete(s + "\\" + FileName);
Excel.SheetsInNewWorkbook = 1;
Book = Excel.Workbooks.Add(Type.Missing);
Sheet = (Worksheet)Book.Worksheets[1];
DocumentProperties prop =
(DocumentProperties)Book.BuiltinDocumentProperties;
// this is the line that crashes
prop["Title"].Value = Title;
 
J

Jamie Oglethorpe

Thanks anyway.

Jim Cone said:
No help available from here.

Jim Cone
http://www.officeletter.com/blink/specialsort.html


"Jamie Oglethorpe"
wrote in message
Hi Jim,
I have a feeling I may have to do this in VB. I am translating Delphi code I
did about 5 years ago. Unfortunately the translation is not exact. Here is a
cut down versionof what I am doing. The app writes the contents of a data set
with several tables to a new Excel document. The Excel code is wrapped in a
base class that takes care of all the messy low level details. I am excluding
stuff like the application property and methods here....
using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;...
private Application excel = new Application();...
string s = Excel.DefaultFilePath;
if (File.Exists(FileName))
File.Delete(FileName);
else if (File.Exists(s + "\\" + FileName))
File.Delete(s + "\\" + FileName);
Excel.SheetsInNewWorkbook = 1;
Book = Excel.Workbooks.Add(Type.Missing);
Sheet = (Worksheet)Book.Worksheets[1];
DocumentProperties prop =
(DocumentProperties)Book.BuiltinDocumentProperties;
// this is the line that crashes
prop["Title"].Value = Title;



Jim Cone said:
In Excel the workbook must be open to access its document properties.
The syntax would be something like this using Automation...>
Dim strAuthor as String
strAuthor = AppXL.Workbooks("Important").BuiltinDocumentProperties(3)>
However, or also, MS supplies a .dll (Dsofile.dll) that allows one to read
and to edit document properties that are associated with Microsoft
Office files. I've used it and it works, but I have found no need for it.
Find it here...
http://support.microsoft.com/kb/224351/en-us-
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Jamie Oglethorpe"
<[email protected]>
wrote in message .
I don't have VS 2005 Tools for MS Office, so I am trying to do this the old
fashioned way with automation.
I have created the Excel application, and am trying to set the document
properties, such as Title and Author. To that end I have a reference to
Microsoft.Office.Core and am trying to assign
workbook.BuiltinDocumentProperties to a DocumentProperties object (with the
appropriate casting).
I get this exception:>
System.InvalidCastException : Unable to cast COM object of type
'System.__ComObject' to interface type
'Microsoft.Office.Core.DocumentProperties'. This operation failed because the
QueryInterface call on the COM component for the interface with IID
'{2DF8D04D-5BFA-101B-BDE5-00AA0044DE52}' failed due to the following error:
No such interface supported (Exception from HRESULT: 0x80004002
(E_NOINTERFACE)).>
Help!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top