Parse Microsoft Excel xls files (BIFF/Excel 97-2004)


Version on this page:0.1.2
LTS Haskell 16.31:0.1.3
Stackage Nightly 2020-12-14:0.1.3
Latest on Hackage:0.1.3

See all snapshots xls appears in

BSD-3-Clause licensed by Harendra Kumar
Maintained by [email protected]
This version can be pinned in stack with:xls-0.1.2@sha256:0c5c1374e5dfe5377eeeeca7f2e44a91c338d3bcfbe0dc9e720bcb79cdd5f501,2958

Module documentation for 0.1.2

Haskell xls Parsing

xls is a Haskell library to parse Microsoft Excel spreadsheet files. It parses the xls file format (extension .xls) more specifically known as BIFF/Excel 97-2004.

It can be useful for mining data from old Microsoft Excel spreadsheets.


Use decodeXls to get a streaming Conduit. For example to convert an xls file to comma separated csv:

xlsToCSV :: String -> IO ()
xlsToCSV file =
    $ decodeXls file
    $$ CL.mapM_ (liftIO . putStrLn . intercalate ",")

An xls2csv utility is shipped with the package. See the haddock documentation for API details.

Under the hood

The library is based on the C library libxls.

See Also

  • xlsior: Streaming Excel (xslx) file generation and parsing
  • xlsx: Excel xslx file parser/writer


Welcome! If you would like to have something changed or added go ahead, raise an issue or send a pull request.



  • Upgrade libxls upstream package version from 1.4.0 to 1.5.1


  • Upgrade dependencies


  • Initial release