defmodule SheetTest do use ExUnit.Case doctest ElixirLibxl test "sheet" do book_handle = ElixirLibxl.xlCreateXMLBook() sheet_handle = ElixirLibxl.xlBookAddSheet(book_handle, "test sheet", nil) format_handle = ElixirLibxl.xlSheetCellFormat(sheet_handle, 0, 0) rich_string_handle = ElixirLibxl.xlBookAddRichString(book_handle) assert ElixirLibxl.xlSheetCellType(sheet_handle, 0, 0) == 0 assert ElixirLibxl.xlSheetIsFormula(sheet_handle, 0, 0) == 0 ElixirLibxl.xlSheetWriteFormula(sheet_handle, 0, 0, "test", format_handle) ElixirLibxl.xlSheetWriteFormulaNum(sheet_handle, 0, 0, "test", 1.0, format_handle) ElixirLibxl.xlSheetWriteFormulaStr(sheet_handle, 0, 0, "test", "test", format_handle) ElixirLibxl.xlSheetWriteFormulaBool(sheet_handle, 0, 0, "test", 1, format_handle) assert ElixirLibxl.xlSheetReadFormula(sheet_handle, 0, 0) |> hd() == "test" ElixirLibxl.xlSheetSetCellFormat(sheet_handle, 0, 0, format_handle) assert ElixirLibxl.xlSheetCellFormat(sheet_handle, 0, 0) != nil assert ElixirLibxl.xlSheetWriteStr(sheet_handle, 0, 0, "test", format_handle) == 1 assert ElixirLibxl.xlSheetWriteStr(sheet_handle, 0, 1, "test", nil) == 1 assert ElixirLibxl.xlSheetWriteStr(sheet_handle, 0, 2, "てすと", nil) == 1 assert ElixirLibxl.xlSheetReadStr(sheet_handle, 0, 0) |> Enum.at(0) == "test" assert ElixirLibxl.xlSheetReadStr(sheet_handle, 0, 1) |> Enum.at(0) == "test" assert ElixirLibxl.xlSheetReadStr(sheet_handle, 0, 2) |> Enum.at(0) == "てすと" ElixirLibxl.xlSheetWriteStrAsNum(sheet_handle, 0, 0, "test", format_handle) ElixirLibxl.xlSheetWriteRichStr(sheet_handle, 0, 0, rich_string_handle, format_handle) assert ElixirLibxl.xlSheetReadStr(sheet_handle, 0, 0) |> hd() == "" assert ElixirLibxl.xlSheetReadRichStr(sheet_handle, 0, 0) != nil ElixirLibxl.xlSheetWriteNum(sheet_handle, 0, 0, 1.0, format_handle) assert ElixirLibxl.xlSheetReadNum(sheet_handle, 0, 0) |> hd() == 1.0 ElixirLibxl.xlSheetWriteBool(sheet_handle, 0, 0, 1, format_handle) assert ElixirLibxl.xlSheetReadBool(sheet_handle, 0, 0) |> hd() == 1 ElixirLibxl.xlSheetWriteBlank(sheet_handle, 0, 0, format_handle) assert ElixirLibxl.xlSheetReadBlank(sheet_handle, 0, 0) |> hd() == 1 ElixirLibxl.xlSheetWriteComment(sheet_handle, 0, 0, "value", "author", 10, 20) ElixirLibxl.xlSheetReadComment(sheet_handle, 0, 0) ElixirLibxl.xlSheetRemoveComment(sheet_handle, 0, 0) assert ElixirLibxl.xlSheetIsDate(sheet_handle, 0, 0) == 0 assert ElixirLibxl.xlSheetIsRichStr(sheet_handle, 0, 0) == 0 assert ElixirLibxl.xlSheetIsAutoFilter(sheet_handle) == 0 ElixirLibxl.xlSheetWriteError(sheet_handle, 0, 0, 1, format_handle) assert ElixirLibxl.xlSheetReadError(sheet_handle, 0, 0) == 255 assert ElixirLibxl.xlSheetColWidth(sheet_handle, 0) == 8.43 assert ElixirLibxl.xlSheetColWidthPx(sheet_handle, 0) == 64 assert ElixirLibxl.xlSheetColHidden(sheet_handle, 0) == 0 assert ElixirLibxl.xlSheetRowHeight(sheet_handle, 0) == 15.0 assert ElixirLibxl.xlSheetRowHeightPx(sheet_handle, 0) == 20 assert ElixirLibxl.xlSheetRowHidden(sheet_handle, 0) == 0 ElixirLibxl.xlSheetSetCol(sheet_handle, 0, 0, 1.0, format_handle, 1) ElixirLibxl.xlSheetSetRow(sheet_handle, 0, 1, format_handle, 1) ElixirLibxl.xlSheetSetRowHidden(sheet_handle, 0, 1) ElixirLibxl.xlSheetSetColHidden(sheet_handle, 0, 1) ElixirLibxl.xlSheetSetMerge(sheet_handle, 0, 0, 0, 0) assert ElixirLibxl.xlSheetGetMerge(sheet_handle, 0, 0) == [1, 0, 0, 0, 0] assert ElixirLibxl.xlSheetDelMerge(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetMergeSize(sheet_handle) == 0 ElixirLibxl.xlSheetSetMerge(sheet_handle, 0, 0, 0, 0) assert ElixirLibxl.xlSheetMerge(sheet_handle, 0) == [1, 0, 0, 0, 0] assert ElixirLibxl.xlSheetDelMergeByIndex(sheet_handle, 0) == 1 assert ElixirLibxl.xlBookAddPicture(book_handle, Application.app_dir(:elixir_libxl, "priv/test") <> "/logo.png") == 0 ElixirLibxl.xlSheetSetPicture(sheet_handle, 0, 0, 0, 1.0, 0, 0, 0) ElixirLibxl.xlSheetSetPicture2(sheet_handle, 0, 0, 0, 0, 0, 0, 0, 0) assert ElixirLibxl.xlSheetPictureSize(sheet_handle) == 1 assert ElixirLibxl.xlSheetGetPicture(sheet_handle, 0) == [0, 0, 0, 3, 1, 50, 50, 0, 0] assert ElixirLibxl.xlSheetRemovePictureByIndex(sheet_handle, 0) == 1 assert ElixirLibxl.xlSheetRemovePicture(sheet_handle, 0, 0) == 0 ElixirLibxl.xlSheetSetHorPageBreak(sheet_handle, 0, 1) ElixirLibxl.xlSheetSetVerPageBreak(sheet_handle, 0, 1) assert ElixirLibxl.xlSheetGetHorPageBreak(sheet_handle, 0) == 0 assert ElixirLibxl.xlSheetGetHorPageBreakSize(sheet_handle) == 1 assert ElixirLibxl.xlSheetGetVerPageBreak(sheet_handle, 0) == 0 assert ElixirLibxl.xlSheetGetVerPageBreakSize(sheet_handle) == 1 ElixirLibxl.xlSheetSplit(sheet_handle, 0, 0) assert ElixirLibxl.xlSheetSplitInfo(sheet_handle) == [1, 0, 0] ElixirLibxl.xlSheetSetGroupSummaryBelow(sheet_handle, 1) ElixirLibxl.xlSheetSetGroupSummaryRight(sheet_handle, 1) assert ElixirLibxl.xlSheetGroupRows(sheet_handle, 0, 0, 1) == 1 assert ElixirLibxl.xlSheetGroupCols(sheet_handle, 0, 0, 1) == 1 assert ElixirLibxl.xlSheetGroupSummaryBelow(sheet_handle) == 1 assert ElixirLibxl.xlSheetGroupSummaryRight(sheet_handle) == 1 assert ElixirLibxl.xlSheetClear(sheet_handle, 0, 0, 0, 0) == 1 assert ElixirLibxl.xlSheetInsertCol(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetInsertRow(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetRemoveCol(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetRemoveRow(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetInsertColAndKeepRanges(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetInsertRowAndKeepRanges(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetRemoveColAndKeepRanges(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetRemoveRowAndKeepRanges(sheet_handle, 0, 0) == 1 assert ElixirLibxl.xlSheetCopyCell(sheet_handle, 0, 0, 0, 0) == 1 assert ElixirLibxl.xlSheetFirstRow(sheet_handle) == 0 ElixirLibxl.xlSheetLastRow(sheet_handle) assert ElixirLibxl.xlSheetFirstCol(sheet_handle) == 0 ElixirLibxl.xlSheetLastCol(sheet_handle) assert ElixirLibxl.xlSheetFirstFilledRow(sheet_handle) == 0 assert ElixirLibxl.xlSheetLastFilledRow(sheet_handle) == 1 assert ElixirLibxl.xlSheetFirstFilledCol(sheet_handle) == 1 assert ElixirLibxl.xlSheetLastFilledCol(sheet_handle) == 3 assert ElixirLibxl.xlSheetDisplayGridlines(sheet_handle) == 1 ElixirLibxl.xlSheetSetDisplayGridlines(sheet_handle, 1) assert ElixirLibxl.xlSheetPrintGridlines(sheet_handle) == 0 ElixirLibxl.xlSheetSetPrintGridlines(sheet_handle, 1) ElixirLibxl.xlSheetSetZoom(sheet_handle, 1) ElixirLibxl.xlSheetSetPrintZoom(sheet_handle, 1) assert ElixirLibxl.xlSheetZoom(sheet_handle) == 1 assert ElixirLibxl.xlSheetPrintZoom(sheet_handle) == 1 ElixirLibxl.xlSheetSetPrintFit(sheet_handle, 1, 1) assert ElixirLibxl.xlSheetGetPrintFit(sheet_handle) == [1, 1, 1] ElixirLibxl.xlSheetSetLandscape(sheet_handle, 1) assert ElixirLibxl.xlSheetLandscape(sheet_handle) == 1 ElixirLibxl.xlSheetSetPaper(sheet_handle, 1) assert ElixirLibxl.xlSheetPaper(sheet_handle) == 1 ElixirLibxl.xlSheetSetHeader(sheet_handle, "header", 1.0) assert ElixirLibxl.xlSheetHeader(sheet_handle) == "header" assert ElixirLibxl.xlSheetHeaderMargin(sheet_handle) == 1.0 ElixirLibxl.xlSheetSetFooter(sheet_handle, "footer", 1.0) assert ElixirLibxl.xlSheetFooter(sheet_handle) == "footer" assert ElixirLibxl.xlSheetFooterMargin(sheet_handle) == 1.0 ElixirLibxl.xlSheetSetHCenter(sheet_handle, 1) ElixirLibxl.xlSheetSetVCenter(sheet_handle, 1) assert ElixirLibxl.xlSheetHCenter(sheet_handle) == 1 assert ElixirLibxl.xlSheetVCenter(sheet_handle) == 1 ElixirLibxl.xlSheetSetMarginLeft(sheet_handle, 1.0) ElixirLibxl.xlSheetSetMarginRight(sheet_handle, 1.0) ElixirLibxl.xlSheetSetMarginTop(sheet_handle, 1.0) ElixirLibxl.xlSheetSetMarginBottom(sheet_handle, 1.0) assert ElixirLibxl.xlSheetMarginLeft(sheet_handle) == 1.0 assert ElixirLibxl.xlSheetMarginRight(sheet_handle) == 1.0 assert ElixirLibxl.xlSheetMarginTop(sheet_handle) == 1.0 assert ElixirLibxl.xlSheetMarginBottom(sheet_handle) == 1.0 ElixirLibxl.xlSheetSetPrintRowCol(sheet_handle, 1) ElixirLibxl.xlSheetSetPrintRepeatRows(sheet_handle, 0, 0) ElixirLibxl.xlSheetSetPrintRepeatCols(sheet_handle, 0, 0) ElixirLibxl.xlSheetSetPrintArea(sheet_handle, 0, 0, 0, 0) assert ElixirLibxl.xlSheetPrintRowCol(sheet_handle) == 1 assert ElixirLibxl.xlSheetPrintRepeatRows(sheet_handle) == [1, 0, 0] assert ElixirLibxl.xlSheetPrintRepeatCols(sheet_handle) == [1, 0, 0] assert ElixirLibxl.xlSheetPrintArea(sheet_handle) == [1, 0, 0, 0, 0] ElixirLibxl.xlSheetClearPrintRepeats(sheet_handle) ElixirLibxl.xlSheetClearPrintArea(sheet_handle) ElixirLibxl.xlSheetSetNamedRange(sheet_handle, "name", 0, 0, 0, 0, 0) assert ElixirLibxl.xlSheetNamedRangeSize(sheet_handle) == 1 assert ElixirLibxl.xlSheetNamedRange(sheet_handle, 0) == ["name", 0, 0, 0, 0, 32512] tmp = ElixirLibxl.xlSheetGetNamedRange(sheet_handle, "name", 0) assert Enum.at(tmp, 0) == 1 assert Enum.at(tmp, 1) == 0 assert Enum.at(tmp, 2) == 0 assert Enum.at(tmp, 3) == 0 assert Enum.at(tmp, 4) == 0 assert Enum.at(tmp, 5) == 0 assert ElixirLibxl.xlSheetDelNamedRange(sheet_handle, "name", 0) == 1 assert ElixirLibxl.xlSheetTableSize(sheet_handle) == 0 assert ElixirLibxl.xlSheetTable(sheet_handle, 0) == :error ElixirLibxl.xlSheetAddHyperlink(sheet_handle, "test", 0, 0, 0, 0) assert ElixirLibxl.xlSheetHyperlinkSize(sheet_handle) == 1 assert ElixirLibxl.xlSheetHyperlink(sheet_handle, 0) == ["test", 0, 0, 0, 0] assert ElixirLibxl.xlSheetDelHyperlink(sheet_handle, 0) == 1 ElixirLibxl.xlSheetAutoFilter(sheet_handle) ElixirLibxl.xlSheetApplyFilter(sheet_handle) ElixirLibxl.xlSheetRemoveFilter(sheet_handle) ElixirLibxl.xlSheetSetName(sheet_handle, "test") assert ElixirLibxl.xlSheetName(sheet_handle) == "test" ElixirLibxl.xlSheetSetProtect(sheet_handle, 1) ElixirLibxl.xlSheetSetProtectEx(sheet_handle, 1, "password", 1) assert ElixirLibxl.xlSheetProtect(sheet_handle) == 1 ElixirLibxl.xlSheetSetHidden(sheet_handle, 0) assert ElixirLibxl.xlSheetHidden(sheet_handle) == 0 ElixirLibxl.xlSheetSetTopLeftView(sheet_handle, 0, 0) ElixirLibxl.xlSheetSetRightToLeft(sheet_handle, 0) ElixirLibxl.xlSheetSetAutoFitArea(sheet_handle, 0, 0, 0, 0) assert ElixirLibxl.xlSheetGetTopLeftView(sheet_handle) == [0, 0] assert ElixirLibxl.xlSheetRightToLeft(sheet_handle) == 0 assert ElixirLibxl.xlSheetAddrToRowCol(sheet_handle, "$A$1") == [0, 0, 0, 0] assert ElixirLibxl.xlSheetRowColToAddr(sheet_handle, 0, 0, 0, 0) == "$A$1" ElixirLibxl.xlSheetSetTabColor(sheet_handle, 1) ElixirLibxl.xlSheetSetTabRgbColor(sheet_handle, 1, 1, 1) assert ElixirLibxl.xlSheetAddIgnoredError(sheet_handle, 0, 0, 0, 0, 0) == 1 ElixirLibxl.xlSheetAddDataValidation(sheet_handle, 0, 0, 0, 0, 0, 0, "", "") ElixirLibxl.xlSheetAddDataValidationEx(sheet_handle, 0, 0, 0, 0, 0, 0, "value1", "value2", 0, 0, 0, 0, "promptTitle", "prompt", "errorTitle", "error", 0) ElixirLibxl.xlSheetAddDataValidationDouble(sheet_handle, 0, 0, 0, 0, 0, 0, 1.0, 1.0) ElixirLibxl.xlSheetAddDataValidationDoubleEx(sheet_handle, 0, 0, 0, 0, 0, 0, 1.0, 1.0, 0, 0, 0, 0, "promptTitle", "prompt", "errorTitle", "error", 0) ElixirLibxl.xlSheetRemoveDataValidations(sheet_handle) ElixirLibxl.xlSheetFormControlSize(sheet_handle) ElixirLibxl.xlSheetFormControl(sheet_handle, 0) ElixirLibxl.xlBookRelease(book_handle) end end