getCellStyle static method

String getCellStyle(
  1. MsSsCell cell,
  2. List<SSStyle> spreadSheetStyles,
  3. List<SSColorSchemes> colorSchemes,
  4. List<MsSsCol> colDetails,
)

Implementation

static String getCellStyle(MsSsCell cell, List<SSStyle> spreadSheetStyles, List<SSColorSchemes> colorSchemes, List<MsSsCol> colDetails) {
  String styles = "";
  String stylesInner = "";
  if (cell.style != null) {
    var cellStyle = spreadSheetStyles.firstWhereOrNull((style) {
      return style.id == cell.style;
    });
    if (cellStyle != null) {
      if (cellStyle.alignmentHorizontal.isNotEmpty) {
        styles = "$styles align:'${cellStyle.alignmentHorizontal}';";
      }
      if (cellStyle.alignmentVer.isNotEmpty) {
        styles = "$styles vertical-align:'${cellStyle.alignmentVer}';";
      }
      if (cellStyle.alignmentWrapText.isNotEmpty && cellStyle.alignmentWrapText == "1") {
        styles = "$styles word-wrap: break-word;";
      }
      if (cellStyle.ssFont.id.isNotEmpty) {
        if (cellStyle.ssFont.size != 0) {
          stylesInner = "$stylesInner font-size: ${cellStyle.ssFont.size}px;";
        }
        if (cellStyle.ssFont.name.isNotEmpty) {
          stylesInner = "$stylesInner font-family: '${cellStyle.ssFont.name}';";
        }
      }
      if (cellStyle.ssFill.id.isNotEmpty) {
        if (cellStyle.ssFill.bgClrIndex.isNotEmpty) {
          String bgColor = "#a5c6fa";
          if (int.parse(cellStyle.ssFill.bgClrIndex) < 64) {
            bgColor = IndexedColor().colors[int.parse(cellStyle.ssFill.bgClrIndex)];
          } else if (cellStyle.ssFill.bgClrIndex == "64") {
            var clrScheme = colorSchemes.firstWhereOrNull((clrSch) {
              return clrSch.id == cellStyle.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 (cellStyle.border.id.isNotEmpty) {
        if (cellStyle.border.bottomStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-bottom: 1px solid black;";
        }
        if (cellStyle.border.topStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-top: 1px solid black;";
        }
        if (cellStyle.border.leftStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-left: 1px solid black;";
        }
        if (cellStyle.border.rightStyle.isNotEmpty) {
          stylesInner = "$stylesInner border-right: 1px solid black;";
        }
      }
    }
  }
  if (colDetails.isNotEmpty) {
    var colDet = colDetails.firstWhereOrNull((col) {
      return col.min <= cell.colNo && col.max >= cell.colNo;
    });
    if (colDet != null) {
      stylesInner = "$stylesInner width:${colDet.width.toInt() * 16}px;";
    }
  }
  if (stylesInner.isNotEmpty) {
    stylesInner = "$stylesInner border-collapse: collapse;";
    styles = "$styles style=\"$stylesInner\"";
  }
  return styles;
}