getRowStyle static method

String getRowStyle(
  1. MsSsRow row,
  2. List<SSStyle> spreadSheetStyles,
  3. List<SSColorSchemes> colorSchemes
)

Implementation

static String getRowStyle(MsSsRow row, List<SSStyle> spreadSheetStyles, List<SSColorSchemes> colorSchemes) {
  String styles = "";
  String stylesInner = "";
  if (row.style != null) {
    var rowStyle = spreadSheetStyles.firstWhereOrNull((style) {
      return style.id == row.style;
    });
    if (rowStyle != null) {
      if (rowStyle.alignmentHorizontal.isNotEmpty) {
        styles = "$styles align:'${rowStyle.alignmentHorizontal}';";
      }
      if (rowStyle.alignmentVer.isNotEmpty) {
        styles = "$styles vertical-align:'${rowStyle.alignmentVer}';";
      }
      if (rowStyle.alignmentWrapText.isNotEmpty && rowStyle.alignmentWrapText == "1") {
        styles = "$styles word-wrap: break-word;";
      }
      if (rowStyle.ssFont.id.isNotEmpty) {
        if (rowStyle.ssFont.size != 0) {
          stylesInner = "$stylesInner font-size: ${rowStyle.ssFont.size}px;";
        }
        if (rowStyle.ssFont.name.isNotEmpty) {
          stylesInner = "$stylesInner font-family: '${rowStyle.ssFont.name}';";
        }
      }
      if (rowStyle.ssFill.id.isNotEmpty) {
        if (rowStyle.ssFill.bgClrIndex.isNotEmpty) {
          String bgColor = "#a5c6fa";
          if (int.parse(rowStyle.ssFill.bgClrIndex) < 64) {
            bgColor = IndexedColor().colors[int.parse(rowStyle.ssFill.bgClrIndex)];
          } else if (rowStyle.ssFill.bgClrIndex == "64") {
            var clrScheme = colorSchemes.firstWhereOrNull((clrSch) {
              return clrSch.id == rowStyle.ssFill.fgClrTheme;
            });

            if (clrScheme != null) {
              if (clrScheme.sysClrLast.isNotEmpty) {
                bgColor = "#${clrScheme.sysClrLast}";
              } else if (clrScheme.srgbClr.isNotEmpty) {
                bgColor = "#${clrScheme.srgbClr}";
              }
            }
          }
          stylesInner = "$stylesInner background-color: $bgColor;";
        }
      }
      if (rowStyle.border.id.isNotEmpty) {
        if (rowStyle.border.bottomStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-bottom: 1px solid black;";
        }
        if (rowStyle.border.topStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-top: 1px solid black;";
        }
        if (rowStyle.border.leftStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-left: 1px solid black;";
        }
        if (rowStyle.border.rightStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-right: 1px solid black;";
        }
      }
    }
  }

  if (stylesInner.isNotEmpty) {
    stylesInner = "$stylesInner border-collapse: collapse;";
    styles = "$styles style=\"$stylesInner\"";
  }
  return styles;
}