Excel is a spreadsheet written by '''The Evil Empire''' [http://www.microsoft.com/]. It is a part of their MS Office suite of software--a hazardously flawed [http://www.burns-stat.com/pages/Tutor/spreadsheet_addiction.html#excel] part, incidentally. ---- Ways to get to .xls data: [DDE]; [COM], especially [tcom]; [CSV]; [ODBC] (there are rumors of faults in the drivers, though); [Victor Wagner]'s xls2csv [http://www.ice.ru/~vitus/catdoc]; xhHtml [http://chicago.sourceforge.net/xlhtml] is a command-line utility that can create XML output; Spreadsheet::ParseExcel [] and related [Perl]-coded modules available through [CPAN]; Christoph Bauer's tclexcel [http://www.rhrk.uni-kl.de/~bauerc/tclexcel.html]; http://www.greytrout.com; [SYLK]; the [Python]-based http://sourceforge.net/projects/pyxlwriter/ ; ... The name of the native Excel file format apparently is BIFF. At some point, it'll be valuable to document the location of [Microsoft] references on BIFF, as well as whether the Perl and Python modules write formatted plaintext, or BIFF. There is a freely-available Excel viewer from Microsoft (MS Windows only) [http://office.microsoft.com/downloads/2000/xlviewer.aspx]; For Linux/Unix, Gnumeric [http://www.gnome.org/projects/gnumeric/] and StarOffice [http://www.staroffice.com/] can import Excel files; ---- I have written a tcl wrapper [Using Perl to get Excel] to make the writing of excel files using perl's Spreadsheet:WriteExcel very managable - [JBR]. ---- More information is available through http://www.wotsit.org/ [[find more precise URL]]. http://www.wotsit.org/download.asp?f=xls Links directly to the fileformat are not allowed anymore on wotsit. So you have to go to "Spreadsheet/Database" and look for "XLS". ---- [["If you tab delimit the data and name it myfile.xls, current versions of excel will 'do the right thing'."]] [CL] has recently had success with "pipe-delimiting"; that is, writing tabular data as simply as possible, with '|' separating fields. Office workers seem to accept this as "spreadsheet format". Later, in fall 2004, CL's finding abundant headaches with [CSV] and tab- and pipe-delimitation, but is happy with results from [HTML] formatting into a . [Benny Riefenstahl]: I have also have had success in opening simple HTML tables with Excel directly. This has the advantage of having a well-defined character encoding and makes it possible to use long multi-line text in cells. ---- The class library "Jakarta POI - HSSF - Java APIs with XML manipulate MS-Excel" (http://jakarta.apache.org/poi/hssf/) can be used in combination with [TclJava]. ---- Example fragment of COM-based access (read) of Excel spreadsheet: set cellVal [[$cells Item $msgNum $column] -get Value] ---- If you view a CSV file in Excel, columns are labeled A..Z, AA..AZ, BA.. To convert these column labels to numeric indexes (0..), so as to access the data with [lindex], here's a little helper: proc excel'col2int col { set abc {- A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} set int 0 foreach char [split $col ""] { set int [expr {$int*26 + [lsearch $abc $char]}] } incr int -1 ;# one-letter columns start from A } ;# RS See [Mapping words to integers] for a more general take. ---- It amuses the archaeologically inclined that, as [KBK] observes, "The kernel of the Excel solver is the singular-value decomposition from Wilkinson [[presumably '''Handbook for Automatic Computation Volume II - Linear Algebra''']]. That's essentially 1971-vintage [Algol], rewritten first in [Fortran] and then in [C]." ---- The VBA Object Browser (OB) provides access to "the procedures, objects, ... available for use in the active workbook ..." To reach the OB, select "Tools/Macro/Visual Basic Editor". Once VB comes up, you should see a funny illustrated square icon near the right side of VB's standard toolbar; that's the OB, as its [tooltip] promises. ---- "[How to launch a Tcl program from Excel]" ---- [Category Application]