View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Matt Giedt Matt Giedt is offline
external usenet poster
 
Posts: 1
Default Iterating through workbook capturing text

Hello all.

I'm trying to write a simple C# interop class that, when given a valid
path to an Excel file, returns the textual contents of that file.

(Assume that the info parameter refers to a valid XLS file.)

public string parse( FileInfo info )
{
StringBuilder sb = new StringBuilder();
Excel.Application app = new Excel.Application();
app.Visible = false;

Excel.Workbook wb = ,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing );

wb.Activate();

//
// Attempt # 1:
//

try
{
Excel.Range range = app.get_Range( "Sheets", Type.Missing );
sb.Append( range.Text );
}
catch( Exception e )
{
Console.WriteLine( "Error parsing excel document." );
Console.WriteLine( e.Message );
Console.WriteLine( e.StackTrace );
}

//
// Prints the exception:
//
// Error parsing excel document.
// Exception from HRESULT: 0x800A03EC.
// at Excel.ApplicationClass.get_Range(Object Cell1, Object Cell2)
//

//
// Attempt # 2:
//

try
{
foreach( Excel._Worksheet sheet in wb.Worksheets )
{
foreach( Excel.Range cell in sheet.Cells )
{
sb.Append( cell.Text );
}
}
}
catch( Exception e )
{
Console.WriteLine( "Error parsing excel document." );
Console.WriteLine( e.Message );
Console.WriteLine( e.StackTrace );
}

//
// Prints the exception:
//
// Error parsing excel document.
// Member not found.
// at System.RuntimeType.ForwardCallToInvokeMember
// (String memberName, BindingFlags flags,
// Object target, Int32[] aWrapperTypes,
// MessageData& msgData)
// at Excel.Range.GetEnumerator()
//

wb.Close(false, Type.Missing, Type.Missing);
app.Quit();
return sb.ToString();
}

Any help would be greatly appreciated.
TIA,
-Matt