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);
}