diff --git a/ooxml/SS/Converter/ExcelToHtmlConverter.cs b/ooxml/SS/Converter/ExcelToHtmlConverter.cs index ec976aa03..73588f20c 100644 --- a/ooxml/SS/Converter/ExcelToHtmlConverter.cs +++ b/ooxml/SS/Converter/ExcelToHtmlConverter.cs @@ -168,12 +168,17 @@ protected void ProcessSheet(ISheet sheet) List emptyRowElements = new List(physicalNumberOfRows); int maxSheetColumns = 1; - for (int r = 0; r < physicalNumberOfRows; r++) + for (int r = 0; r < sheet.LastPhysicalRowNumber; r++) //just number of rows will skip bottom rows if there's empty rows in the middle { IRow row = sheet.GetRow(r); - if (row == null) - continue; + { + IRow newRow = sheet.CreateRow(r); //if row is null, create an empty row + if (newRow != null) + row = newRow; + else + continue; + } if (!OutputHiddenRows && row.ZeroHeight) continue; @@ -817,10 +822,13 @@ void BuildStyle_Font(IWorkbook workbook, StringBuilder style, { fontColor = st.GetTheme().GetThemeColor(font.Color); } - else + var cellSpecificFontColour = ((XSSFFont)font).GetXSSFColor(); + if (cellSpecificFontColour != null) { - fontColor = ((XSSFFont)font).GetXSSFColor(); + //themed colour is file-wide colour, cell-level colour should overwrite file-level theme colour + fontColor = cellSpecificFontColour; } + if (fontColor != null) hexstring = ExcelToHtmlUtils.GetColor(fontColor); }