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


Version on this page:0.1.1
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.1@sha256:8a50fc57aab7cfe458d8b28abf5b91629a30969069a6561d03a30e61b111bb61,2938

Module documentation for 0.1.1

Haskell xls Parsing

Hackage Build Status Build status

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 sourceforge or github.

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 dependencies


  • Initial release