|
1 | 1 | module App.Xlsx (newXlsx) where
|
2 | 2 |
|
| 3 | +import Codec.Xlsx |
| 4 | +import qualified Data.ByteString.Lazy as BL |
3 | 5 | import Functora.Miso.Prelude
|
4 |
| -import Text.XML.SpreadsheetML.Builder |
5 |
| -import Text.XML.SpreadsheetML.Types |
6 |
| -import Text.XML.SpreadsheetML.Writer (showSpreadsheet) |
| 6 | +import Lens.Micro |
| 7 | + |
| 8 | +-- import qualified Data.ByteString.Lazy as L |
| 9 | +-- import Text.XML.SpreadsheetML.Builder |
| 10 | +-- import Text.XML.SpreadsheetML.Types |
| 11 | +-- import Text.XML.SpreadsheetML.Writer (showSpreadsheet) |
7 | 12 |
|
8 | 13 | newXlsx :: ByteString
|
9 | 14 | newXlsx =
|
10 |
| - encodeUtf8 $ showSpreadsheet workbook |
| 15 | + from @BL.ByteString @ByteString |
| 16 | + . fromXlsx 0 |
| 17 | + $ def |
| 18 | + & atSheet "List1" ?~ sheet |
11 | 19 | where
|
12 |
| - cells1 :: [[Cell]] |
13 |
| - cells1 = |
14 |
| - [ [string "Quantity \174", string "Multiplier \8480", string "Product"], |
15 |
| - [number 1, number 0.9, formula "=RC[-2]*RC[-1]"], |
16 |
| - [number 10, number 1.1, formula "=RC[-2]*RC[-1]"], |
17 |
| - [number 12, number 0.2, formula "=RC[-2]*RC[-1]"] |
18 |
| - ] |
19 |
| - worksheet1 = mkWorksheet (Name "Quantity Product Sheet") (tableFromCells cells1) |
20 |
| - cells2 :: [[Cell]] |
21 |
| - cells2 = |
22 |
| - [ [string "Quantity1", string "Quantity2", string "Sum"], |
23 |
| - [number 1, number 100, formula "=RC[-2]+RC[-1]"], |
24 |
| - [number 10, number 201, formula "=RC[-2]+RC[-1]"], |
25 |
| - [number 12, number 45, formula "=RC[-2]+RC[-1]"] |
26 |
| - ] |
27 |
| - worksheet2 = mkWorksheet (Name "Quantity Sum Sheet") (tableFromCells cells2) |
28 |
| - workbook = mkWorkbook [worksheet1, worksheet2] |
| 20 | + sheet = |
| 21 | + def |
| 22 | + & cellValueAt (1, 2) ?~ CellDouble 42.0 |
| 23 | + & cellValueAt (3, 2) ?~ CellText "foo" |
| 24 | + |
| 25 | +-- newXlsx :: ByteString |
| 26 | +-- newXlsx = |
| 27 | +-- encodeUtf8 $ showSpreadsheet workbook |
| 28 | +-- where |
| 29 | +-- cells1 :: [[Cell]] |
| 30 | +-- cells1 = |
| 31 | +-- [ [string "Quantity \174", string "Multiplier \8480", string "Product"], |
| 32 | +-- [number 1, number 0.9, formula "=RC[-2]*RC[-1]"], |
| 33 | +-- [number 10, number 1.1, formula "=RC[-2]*RC[-1]"], |
| 34 | +-- [number 12, number 0.2, formula "=RC[-2]*RC[-1]"] |
| 35 | +-- ] |
| 36 | +-- worksheet1 = mkWorksheet (Name "Quantity Product Sheet") (tableFromCells cells1) |
| 37 | +-- cells2 :: [[Cell]] |
| 38 | +-- cells2 = |
| 39 | +-- [ [string "Quantity1", string "Quantity2", string "Sum"], |
| 40 | +-- [number 1, number 100, formula "=RC[-2]+RC[-1]"], |
| 41 | +-- [number 10, number 201, formula "=RC[-2]+RC[-1]"], |
| 42 | +-- [number 12, number 45, formula "=RC[-2]+RC[-1]"] |
| 43 | +-- ] |
| 44 | +-- worksheet2 = mkWorksheet (Name "Quantity Sum Sheet") (tableFromCells cells2) |
| 45 | +-- workbook = mkWorkbook [worksheet1, worksheet2] |
0 commit comments