HExcel-0.1.0.1: src/Main.hs
{-# LANGUAGE TypeApplications #-}
module Main where
import Control.Monad.Trans.State (execStateT)
import Control.Monad (forM_)
import Control.Monad.IO.Class
import Data.Time (getZonedTime)
import HExcel
-- #!/usr/bin/env stack
-- stack script --resolver lts-14.9 --package=HExcel
-- import HExcel
main = do
wb <- workbookNew "buggy-dates.xls"
let props = mkDocProperties
{ docPropertiesTitle = "Buggy Dates"
, docPropertiesCompany = ""
}
workbookSetProperties wb props
ws <- workbookAddWorksheet wb "Buggy Dates"
df <- workbookAddFormat wb
formatSetNumFormat df "mm/dd/yy hh:mm AM/PM"
sequence_ [
writeDateTime
ws
(Just df)
(fromIntegral (day - 1) * 24 + fromIntegral hour)
0
(DateTime 2019 11 day hour 0 0)
| day <- [1..30], hour <- [0..23]
]
workbookClose wb
-- main :: IO ()
-- main = do
-- wb <- workbookNew "test.xlsx"
-- let props = mkDocProperties
-- { docPropertiesTitle = "Test Workbook"
-- , docPropertiesCompany = "HExcel"
-- }
-- workbookSetProperties wb props
-- ws <- workbookAddWorksheet wb "First Sheet"
-- df <- workbookAddFormat wb
-- formatSetNumFormat df "mmm d yyyy hh:mm AM/PM"
-- now <- getZonedTime
-- writeDateTime ws (Just df) n 5 (zonedTimeToDateTime now)
-- -- You can create HExcelState which is convenient api for writing to cells
-- let initState = HExcelState Nothing ws 4 1 0 1 0
-- _ <- flip execStateT initState $ do
-- writeCell "David"
-- writeCell "Dimitrije"
-- liftIO $ writeDateTime ws (Just df) 1 5 (zonedTimeToDateTime now)
-- liftIO $ writeDateTime ws (Just df) 2 6 (zonedTimeToDateTime now)
-- liftIO $ writeDateTime ws (Just df) 3 7 (zonedTimeToDateTime now)
-- liftIO $ writeDateTime ws (Just df) 4 8 (zonedTimeToDateTime now)
-- liftIO $ writeDateTime ws (Just df) 5 9 (zonedTimeToDateTime now)
-- liftIO $ writeDateTime ws (Just df) 6 10 (zonedTimeToDateTime now)
-- -- we can skip some rows
-- skipRows 1
-- writeCell "Jovana"
-- -- skip some columns
-- skipCols 1
-- writeCell (zonedTimeToDateTime now)
-- writeCell @Double 42.5
-- -- or use functions that run in plain IO
-- -- forM_ [5 .. 8] $ \n -> do
-- -- writeString ws Nothing n 3 "xxx"
-- -- writeNumber ws Nothing n 4 1234.56
-- -- writeDateTime ws (Just df) n 5 (zonedTimeToDateTime now)
-- workbookClose wb