LoginSignup
6
2

More than 3 years have passed since last update.

HaskellでExcelファイル(xlsx)を読み込む

Last updated at Posted at 2020-10-26

xlsxライブラリを使ってHaskellでExcelファイル(xlsx)を読み込む方法を記載します。

動作確認環境
 OS: Windows10 pro
 stack: 2.5.1
 Excel: Excel 2016

xlsxライブラリ
https://hackage.haskell.org/package/xlsx

下記サンプルプログラムを使用します。
https://hackage.haskell.org/package/xlsx-0.8.2/docs/Codec-Xlsx.html

stackで新しいプロジェクトを作成します。

stack new my-project
cd my-project

サンプルプログラムで使用するモジュールをdependenciesに追加します。

dependencies:
- base >= 4.7 && < 5
- xlsx  #追加
- bytestring  #追加
- lens  #追加

サンプルプログラムをMain.hsファイルにコピーします。

{-# LANGUAGE OverloadedStrings #-}
module Read where
import Codec.Xlsx
import qualified Data.ByteString.Lazy as L
import Control.Lens

main :: IO ()
main = do
  bs <- L.readFile "report.xlsx"
  let value = toXlsx bs ^? ixSheet "List1" .
              ixCell (3,2) . cellValue . _Just
  putStrLn $ "Cell B3 contains " ++ show value

module名をReadからMainに書き換えます。

module Main where

Excelファイルを作成します。
B3セルに表示したい文字を入れます。
sheet名を「List1」にします。
ファイル名を「report.xlsx」にしてプロジェクトフォルダ配下に保存します。
無題.png
コンパイルします。

stack build

実行します。

stack exec my-project-exe.exe

B3セルに記入した文字が表示されます。
無題2.png

本記事の全コード
https://github.com/ringo-apo/haskell_xlsx

以上

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2