defmodule BookTest do use ExUnit.Case doctest ElixirLibxl test "book" do xls_file = Application.app_dir(:elixir_libxl, "priv/test") <> "/insert.xls" out_xls_file = Application.app_dir(:elixir_libxl, "priv/test") <> "/out.xls" tmp_file = Application.app_dir(:elixir_libxl, "priv/test") <> "/tmp" # ElixirLibxl.xlCreateBook() |> ElixirLibxl.xlBookRelease() ElixirLibxl.xlCreateXMLBook() |> ElixirLibxl.xlBookRelease() handle = ElixirLibxl.xlCreateBook() assert ElixirLibxl.xlBookLoad(handle, xls_file) == 1 ElixirLibxl.xlBookRelease(handle) # handle = ElixirLibxl.xlCreateBook() assert ElixirLibxl.xlBookLoad(handle, xls_file) == 1 assert ElixirLibxl.xlBookSave(handle, out_xls_file) == 1 ElixirLibxl.xlBookRelease(handle) # handle = ElixirLibxl.xlCreateBook() assert ElixirLibxl.xlBookLoadUsingTempFile(handle, xls_file, tmp_file) == 1 assert ElixirLibxl.xlBookLoadPartially(handle, xls_file, 0, 0, 0) == 1 assert ElixirLibxl.xlBookLoadPartiallyUsingTempFile(handle, xls_file, 0, 0, 0, tmp_file) == 1 assert ElixirLibxl.xlBookLoadWithoutEmptyCells(handle, xls_file) == 1 assert ElixirLibxl.xlBookLoadInfo(handle, xls_file) == 1 assert ElixirLibxl.xlBookSaveUsingTempFile(handle, out_xls_file, 1) == 1 ElixirLibxl.xlBookRelease(handle) # handle = ElixirLibxl.xlCreateBook() assert ElixirLibxl.xlBookLoad(handle, xls_file) == 1 #assert ElixirLibxl.xlBookSetLocale(handle, "ja_JP.UTF-8") == 1 ElixirLibxl.xlBookSetTemplate(handle, 1) assert ElixirLibxl.xlBookIsTemplate(handle) == 1 ElixirLibxl.xlBookSetDate1904(handle, 0) assert ElixirLibxl.xlBookIsDate1904(handle) == 0 assert ElixirLibxl.xlBookBiffVersion(handle) == 1536 assert ElixirLibxl.xlBookVersion(handle) > 0 ElixirLibxl.xlBookSetCalcMode(handle, 1) assert ElixirLibxl.xlBookCalcMode(handle) == 1 ElixirLibxl.xlBookSetRgbMode(handle, 1) assert ElixirLibxl.xlBookRgbMode(handle) == 1 ElixirLibxl.xlBookSetRefR1C1(handle, 1) assert ElixirLibxl.xlBookRefR1C1(handle) == 1 ElixirLibxl.xlBookSetDefaultFont(handle, "test", 1) ElixirLibxl.xlBookSetActiveSheet(handle, 0) font_handle = ElixirLibxl.xlBookFont(handle, 0) _font_handle = ElixirLibxl.xlBookAddFont(handle, font_handle) assert ElixirLibxl.xlBookFontSize(handle) == 25 assert ElixirLibxl.xlBookDefaultFont(handle) == ["test", 1] format_handle = ElixirLibxl.xlBookFormat(handle, 0) _format_handle = ElixirLibxl.xlBookAddFormat(handle, format_handle) assert ElixirLibxl.xlBookAddCustomNumFormat(handle, "####.#") == 164 assert ElixirLibxl.xlBookCustomNumFormat(handle, 1) == nil assert ElixirLibxl.xlBookFormatSize(handle) == 64 ElixirLibxl.xlBookSetKey(handle, "test", "test") assert ElixirLibxl.xlBookAddPicture(handle, Application.app_dir(:elixir_libxl, "priv/test") <> "/logo.png") == 0 data = File.stream!(Application.app_dir(:elixir_libxl, "priv/test") <> "/logo.png") |> Enum.join(<<>>) size = Application.app_dir(:elixir_libxl, "priv/test") <> "/logo.png" |> File.stat!() |> Map.get(:size) assert ElixirLibxl.xlBookAddPicture2(handle, data, size) == 1 assert ElixirLibxl.xlBookAddPictureAsLink(handle, Application.app_dir(:elixir_libxl, "priv/test") <> "/logo.png", 0) == -1 assert ElixirLibxl.xlBookPictureSize(handle) == 2 ElixirLibxl.xlBookGetPicture(handle, 0) color = ElixirLibxl.xlBookColorPack(handle, 255, 255, 255) assert color == 9 assert ElixirLibxl.xlBookColorUnpack(handle, color) date = ElixirLibxl.xlBookDatePack(handle, 2022, 1, 1, 1, 1, 1, 1) assert date == 44562.042372696764 assert ElixirLibxl.xlBookDateUnpack(handle, date) == [1, 2022, 1, 1, 1, 1, 1, 1] assert ElixirLibxl.xlBookSaveRaw(handle) |> Enum.at(0) == 1 ElixirLibxl.xlBookAddRichString(handle) sheet_handle = ElixirLibxl.xlBookGetSheet(handle, 0) ElixirLibxl.xlBookAddSheet(handle, "test", sheet_handle) ElixirLibxl.xlBookInsertSheet(handle, 0, "test", sheet_handle) assert ElixirLibxl.xlBookGetSheetName(handle, 0) == "Sheet1" assert ElixirLibxl.xlBookSheetType(handle, 0) == 0 assert ElixirLibxl.xlBookMoveSheet(handle, 0, 1) == 0 assert ElixirLibxl.xlBookSheetCount(handle) == 2 assert ElixirLibxl.xlBookActiveSheet(handle) == 0 assert ElixirLibxl.xlBookDelSheet(handle, 0) == 1 assert ElixirLibxl.xlBookErrorMessage(handle) == "ok" ElixirLibxl.xlBookRelease(handle) end end