Skip to content

Commit

Permalink
Play around in playground
Browse files Browse the repository at this point in the history
  • Loading branch information
omaus committed Mar 6, 2023
1 parent 8710d88 commit ca54bf7
Showing 1 changed file with 159 additions and 25 deletions.
184 changes: 159 additions & 25 deletions playground.fsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,161 @@
#load "src/FsSpreadsheet/FsAddress.fs"
#load "src/FsSpreadsheet/Cells/FsCell.fs"
#load "src/FsSpreadsheet/Cells/FsCellsCollection.fs"
#load "src/FsSpreadsheet/Ranges/FsRangeAddress.fs"
#load "src/FsSpreadsheet/Ranges/FsRangeBase.fs"
#load "src/FsSpreadsheet/Ranges/FsRangeRow.fs"
#load "src/FsSpreadsheet/Ranges/FsRangeColumn.fs"
#load "src/FsSpreadsheet/Ranges/FsRange.fs"
#load "src/FsSpreadsheet/Tables/FsTableField.fs"
#load "src/FsSpreadsheet/Tables/FsTableRow.fs"
#load "src/FsSpreadsheet/Tables/FsTable.fs"
#load "src/FsSpreadsheet/FsRow.fs"
#load "src/FsSpreadsheet/FsWorksheet.fs"
#load "src/FsSpreadsheet/FsWorkbook.fs"
#r "nuget: DocumentFormat.OpenXml"
#load "src/FsSpreadsheet.ExcelIO/SharedStringTable.fs"
#load "src/FsSpreadsheet.ExcelIO/Cell.fs"
#load "src/FsSpreadsheet.ExcelIO/CellData.fs"
#load "src/FsSpreadsheet.ExcelIO/Row.fs"
#load "src/FsSpreadsheet.ExcelIO/SheetData.fs"
#load "src/FsSpreadsheet.ExcelIO/Sheet.fs"
#load "src/FsSpreadsheet.ExcelIO/Table.fs"
#load "src/FsSpreadsheet.ExcelIO/WorkSheet.fs"
#load "src/FsSpreadsheet.ExcelIO/Workbook.fs"
#load "src/FsSpreadsheet.ExcelIO/Spreadsheet.fs"
#load "src/FsSpreadsheet.ExcelIO/FsExtensions.fs"
//#load "src/FsSpreadsheet/FsAddress.fs"
//#load "src/FsSpreadsheet/Cells/FsCell.fs"
//#load "src/FsSpreadsheet/Cells/FsCellsCollection.fs"
//#load "src/FsSpreadsheet/Ranges/FsRangeAddress.fs"
//#load "src/FsSpreadsheet/Ranges/FsRangeBase.fs"
//#load "src/FsSpreadsheet/Ranges/FsRangeRow.fs"
//#load "src/FsSpreadsheet/Ranges/FsRangeColumn.fs"
//#load "src/FsSpreadsheet/Ranges/FsRange.fs"
//#load "src/FsSpreadsheet/Tables/FsTableField.fs"
//#load "src/FsSpreadsheet/Tables/FsTableRow.fs"
//#load "src/FsSpreadsheet/Tables/FsTable.fs"
//#load "src/FsSpreadsheet/FsRow.fs"
//#load "src/FsSpreadsheet/FsWorksheet.fs"
//#load "src/FsSpreadsheet/FsWorkbook.fs"
//#load "src/FsSpreadsheet/DSL/Expression.fs"
//#load "src/FsSpreadsheet/DSL/Types.fs"
//#load "src/FsSpreadsheet/DSL/CellBuilder.fs"
//#load "src/FsSpreadsheet/DSL/RowBuilder.fs"
//#load "src/FsSpreadsheet/DSL/ColumnBuilder.fs"
//#load "src/FsSpreadsheet/DSL/TableBuilder.fs"
//#load "src/FsSpreadsheet/DSL/SheetBuilder.fs"
//#load "src/FsSpreadsheet/DSL/WorkbookBuilder.fs"
//#load "src/FsSpreadsheet/DSL/DSL.fs"
//#load "src/FsSpreadsheet/DSL/Operators.fs"
//#load "src/FsSpreadsheet/DSL/Transform.fs"
//#load "src/FsSpreadsheet.CsvIO/FsExtension.fs"
//#load "src/FsSpreadsheet.ExcelIO/SharedStringTable.fs"
//#load "src/FsSpreadsheet.ExcelIO/Cell.fs"
//#load "src/FsSpreadsheet.ExcelIO/CellData.fs"
//#load "src/FsSpreadsheet.ExcelIO/Row.fs"
//#load "src/FsSpreadsheet.ExcelIO/SheetData.fs"
//#load "src/FsSpreadsheet.ExcelIO/Sheet.fs"
//#load "src/FsSpreadsheet.ExcelIO/Table.fs"
//#load "src/FsSpreadsheet.ExcelIO/WorkSheet.fs"
//#load "src/FsSpreadsheet.ExcelIO/Workbook.fs"
//#load "src/FsSpreadsheet.ExcelIO/Spreadsheet.fs"
//#load "src/FsSpreadsheet.ExcelIO/FsExtensions.fs"
#r "src/FsSpreadsheet/bin/Debug/netstandard2.0/FsSpreadsheet.dll"
#r "src/FsSpreadsheet.CsvIO/bin/Debug/netstandard2.0/FsSpreadsheet.CsvIO.dll"
#r "src/FsSpreadsheet.ExcelIO/bin/Debug/netstandard2.0/FsSpreadsheet.ExcelIO.dll"


open FsSpreadsheet
open FsSpreadsheet.ExcelIO
open FsSpreadsheet.DSL
open DocumentFormat.OpenXml


// ----------------------------------------------

let excelFilePath = @"C:\Users\olive\OneDrive\CSB-Stuff\testFiles\testExcel5.xlsx"

let dslTree =
workbook {
sheet "MySheet" {
row {
cell {1}
cell {2}
cell {3}
}
row {
4
5
6
}
}
}

let fsWorkbook = dslTree.Value.Parse()
fsWorkbook.ToFile(excelFilePath)

let doc = Spreadsheet.fromFile excelFilePath false
let sst = Spreadsheet.tryGetSharedStringTable doc
let wbp = Spreadsheet.getWorkbookPart doc
let wb = Workbook.get wbp
let shts = Sheet.Sheets.get wb
let shtsN = Sheet.Sheets.getSheets shts |> Array.ofSeq
shtsN.Length
shtsN[0].Id.Value
let wspN =
shtsN
|> Array.map (
fun s -> Worksheet.WorksheetPart.getByID s.Id.Value wbp
)
let tblNM = wspN |> Array.map (Worksheet.WorksheetPart.getTables >> Array.ofSeq)
let wsN = wspN |> Array.map Worksheet.get
let sdN = wsN |> Array.map Worksheet.getSheetData
let rNM = sdN |> Array.map (SheetData.getRows >> Array.ofSeq)
let cNMO =
rNM // Level 1: Worksheets (N)
|> Array.map ( // Level 2: Rows (M)
Array.map (Row.toCellSeq >> Array.ofSeq) // Level 3: Cells (O)
)
let testCell = cNMO[0].[0].[0]
let cv = Cell.getValue sst testCell
let dt = Cell.getType testCell |> Cell.cellValuesToDataType
let cr = Cell.getReference testCell
let fa = FsAddress cr
FsCell(cv, dt, fa)
let fswb = new FsWorkbook()
shtsN[0]
let name = Sheet.getName shtsN[0]
let tblN = tblNM[0]
let fsTblN = tblN |> Array.map FsTable.fromXlsxTable
let fsCcN = FsCellsCollection()
fsCcN.Add
let fswsN =
shtsN
|> Array.mapi (
fun i sht ->
let name = Sheet.getName sht
let tblN = tblNM[i]
let fsTblN = tblN |> Array.map FsTable.fromXlsxTable
let fsCcN
FsWorksheet(name, fsRs = , )
)

let xlsxWorksheet = 0

let toFsWorkbook spreadsheetDoc =
let sst = Spreadsheet.tryGetSharedStringTable spreadsheetDoc
let wbp = Spreadsheet.getWorkbookPart spreadsheetDoc
let wb = Workbook.get wbp
let shts = Sheet.Sheets.get wb
let shtsN = Sheet.Sheets.getSheets shts |> Array.ofSeq // N, M, O = multiples of the elements, e.g. here: multiple Sheet elements
let wspN =
shtsN
|> Array.map (
fun s -> Worksheet.WorksheetPart.getByID s.Id.Value wbp
)
let tblNM = wspN |> Array.map (Worksheet.WorksheetPart.getTables >> Array.ofSeq)
let wsN = wspN |> Array.map Worksheet.get
let sdN = wsN |> Array.map Worksheet.getSheetData
let rNM = sdN |> Array.map (SheetData.getRows >> Array.ofSeq)
let cNMO =
rNM // Level 1: Worksheets (N)
|> Array.map ( // Level 2: Rows (M)
Array.map (Row.toCellSeq >> Array.ofSeq) // Level 3: Cells (O)
)
let fswb = new FsWorkbook()
let fswsN =
shtsN
|> Array.mapi (
fun i sht ->
let name = Sheet.getName sht
let tblN = tblNM[i]
let fsTblN = tblN |> Array.map FsTable.fromXlsxTable
let fsCcN
FsWorksheet(name, fsRs = , )
)
0


let fromXlsxWorksheet xlsxWorksheet =
let sd = Worksheet.getSheetData xlsxWorksheet
xlsxWorksheet.SheetProperties.LocalName
FsWorksheet()
0

doc.Close()

0 comments on commit ca54bf7

Please sign in to comment.