RosettaCodeData/Task/Calendar/Mathematica/calendar-3.math

24 lines
922 B
Plaintext

HeadedGrid[
finalSpacings:{_Integer,_Integer},
finalBorderWidths:{{_Integer,_Integer},{_Integer,_Integer}},
finalOptions_Association,
headerCellGridder_Function,
rawHeaders:{__String},
dataCellGridder_Function,
rawData:{__String}]:=
With[
{finalDims={Ceiling[(Length@rawData+Length@rawHeaders)/Length@rawHeaders],Length@rawHeaders},
headerCells=headerCellGridder/@List/@List/@Characters[rawHeaders],
dataCells=dataCellGridder/@List/@List/@Characters[rawData]},
DataGrid[finalDims,finalSpacings,finalBorderWidths,finalOptions,Join[headerCells,dataCells]]];
(*An example with a few decorations:*)
HeadedGrid[
{1,1},
{{1,1},{1,1}},
<|"dividers"->{"-","|","+"},"border"->"*"|>,
DataGrid[{3},{6},{0,0},{{0,0},{0,0}},<|"background"->"-"|>,#]&,
{"Su","Mo","Tu","We","Th","Fr","Sa"},
DataGrid[{3},{4},{0,0},{{0,0},{0,0}},<|"alignment"->{-1,1}|>,#]&,
ToString/@Range[31]]//AsString