Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Iterating through workbook capturing text
Why don't you just use interop to save the file as an XML Spreadsheet, then use an XSLT transform
Otherwise, you probably want to replace sheet.Cells with sheet.UsedRange, and I think cell.Text should be cell.Value in your second attempt -- Jeff |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Iterating through workbook capturing text
|
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Capturing a word sequence as part of a text in a spreadsheet cell | Excel Worksheet Functions | |||
Iterating files in folder | Excel Worksheet Functions | |||
iterating checkboxes | Excel Discussion (Misc queries) | |||
Capturing Shape Name/Text from OnAction property | Excel Discussion (Misc queries) | |||
Capturing the directory when a workbook is opened from Explorer | Excel Programming |