Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Xlsx = Xlsx {}
- newtype Styles = Styles {}
- newtype DefinedNames = DefinedNames [(Text, Maybe Text, Text)]
- data ColumnsWidth = ColumnsWidth {}
- data PageSetup = PageSetup {
- _pageSetupBlackAndWhite :: Maybe Bool
- _pageSetupCellComments :: Maybe CellComments
- _pageSetupCopies :: Maybe Int
- _pageSetupDraft :: Maybe Bool
- _pageSetupErrors :: Maybe PrintErrors
- _pageSetupFirstPageNumber :: Maybe Int
- _pageSetupFitToHeight :: Maybe Int
- _pageSetupFitToWidth :: Maybe Int
- _pageSetupHorizontalDpi :: Maybe Int
- _pageSetupId :: Maybe Text
- _pageSetupOrientation :: Maybe Orientation
- _pageSetupPageOrder :: Maybe PageOrder
- _pageSetupPaperHeight :: Maybe Text
- _pageSetupPaperSize :: Maybe PaperSize
- _pageSetupPaperWidth :: Maybe Text
- _pageSetupScale :: Maybe Int
- _pageSetupUseFirstPageNumber :: Maybe Bool
- _pageSetupUsePrinterDefaults :: Maybe Bool
- _pageSetupVerticalDpi :: Maybe Int
- data Worksheet = Worksheet {}
- type CellMap = Map (Int, Int) Cell
- data CellValue
- data CellFormula = NormalCellFormula {}
- data Cell = Cell {}
- data RowProperties = RowProps {}
- type Range = Text
- xlSheets :: Lens' Xlsx [(Text, Worksheet)]
- xlStyles :: Lens' Xlsx Styles
- xlDefinedNames :: Lens' Xlsx DefinedNames
- xlCustomProperties :: Lens' Xlsx (Map Text Variant)
- wsColumns :: Lens' Worksheet [ColumnsWidth]
- wsRowPropertiesMap :: Lens' Worksheet (Map Int RowProperties)
- wsCells :: Lens' Worksheet CellMap
- wsDrawing :: Lens' Worksheet (Maybe Drawing)
- wsMerges :: Lens' Worksheet [Range]
- wsSheetViews :: Lens' Worksheet (Maybe [SheetView])
- wsPageSetup :: Lens' Worksheet (Maybe PageSetup)
- wsConditionalFormattings :: Lens' Worksheet (Map SqRef ConditionalFormatting)
- cellValue :: Lens' Cell (Maybe CellValue)
- cellStyle :: Lens' Cell (Maybe Int)
- cellComment :: Lens' Cell (Maybe Comment)
- cellFormula :: Lens' Cell (Maybe CellFormula)
- emptyStyles :: Styles
- renderStyleSheet :: StyleSheet -> Styles
- parseStyleSheet :: Styles -> Either SomeException StyleSheet
- simpleCellFormula :: Text -> CellFormula
- def :: Default a => a
- mkRange :: (Int, Int) -> (Int, Int) -> Range
- fromRange :: Range -> ((Int, Int), (Int, Int))
- toRows :: CellMap -> [(Int, [(Int, Cell)])]
- fromRows :: [(Int, [(Int, Cell)])] -> CellMap
The main types
Structured representation of Xlsx file (currently a subset of its contents)
Xlsx | |
|
newtype DefinedNames Source #
Defined names
Each defined name consists of a name, an optional local sheet ID, and a value.
This element defines the collection of defined names for this workbook. Defined names are descriptive names to represent cells, ranges of cells, formulas, or constant values. Defined names can be used to represent a range on any worksheet.
Excel also defines a number of reserved names with a special interpretation:
_xlnm.Print_Area
specifies the workbook's print area. Example value:SheetName!$A:$A,SheetName!$1:$4
_xlnm.Print_Titles
specifies the row(s) or column(s) to repeat at the top of each printed page._xlnm.Sheet_Title
:refers to a sheet title.
and others. See Section 18.2.6, "definedNames (Defined Names)" (p. 1728) of the spec (second edition).
NOTE: Right now this is only a minimal implementation of defined names.
DefinedNames [(Text, Maybe Text, Text)] |
data ColumnsWidth Source #
Column range (from cwMin to cwMax) width
PageSetup | |
|
Xlsx worksheet
Worksheet | |
|
type CellMap = Map (Int, Int) Cell Source #
Map containing cell values which are indexed by row and column
if you need to use more traditional (x,y) indexing please you could
use corresponding accessors from 'Lens'
Cell values include text, numbers and booleans, standard includes date format also but actually dates are represented by numbers with a date format assigned to a cell containing it
data CellFormula Source #
Formula for the cell.
TODO: array. dataTable and shared formula types support
See 18.3.1.40 "f (Formula)" (p. 1636)
NormalCellFormula | |
|
Currently cell details include only cell values and style ids
(e.g. formulas from <f>
and inline strings from <is>
subelements are ignored)
data RowProperties Source #
Lenses
Workbook
Worksheet
Cells
cellFormula :: Lens' Cell (Maybe CellFormula) Source #
Style helpers
emptyStyles :: Styles Source #
renderStyleSheet :: StyleSheet -> Styles Source #
Render StyleSheet
This is used to render a structured StyleSheet
into a raw XML Styles
document. Actually replacing Styles
with StyleSheet
would mean we
would need to write a parser for StyleSheet
as well (and would moreover
require that we support the full style sheet specification, which is still
quite a bit of work).
parseStyleSheet :: Styles -> Either SomeException StyleSheet Source #
Parse StyleSheet
This is used to parse raw Styles
into structured StyleSheet
currently not all of the style sheet specification is supported
so parser (and the data model) is to be completed
Misc
simpleCellFormula :: Text -> CellFormula Source #
fromRange :: Range -> ((Int, Int), (Int, Int)) Source #
reverse to mkRange
Warning: the function isn't total and will throw an error if incorrect value will get passed