Hello,
I'm trying to insert Excel data into a word document using the code from the guide
" How to Export Excel Data to Word Table Maintaining Formatting in C# ", but it does not reproduce merged cells.
Thanks,
Albin
static void Main(string[] args)
{
.......
//judge if sheet has merged cells
if (HasMergedCells(sheet) == true)
{
applyMerge(sheet, table);
}
......
}
public static bool HasMergedCells(Worksheet sheet)
{
CellRange[] mergedCellRange = sheet.MergedCells;
if (mergedCellRange == null)
{
return false;
}
else
return true;
}
private static void applyMerge(Worksheet sheet, Table table)
{
CellRange[] mergedCellRange = sheet.MergedCells;
for (int i = 0; i < mergedCellRange.Length; i++)
{
CellRange[] columns = mergedCellRange[i].Columns;
CellRange[] rows = mergedCellRange[i].Rows;
//has vertical merge
if (columns.Length == 1)
{
int startRowIndex = mergedCellRange[i].Row - 1;
int endRowIndex = startRowIndex + (mergedCellRange[i].RowCount) - 1;
int columnIndex = mergedCellRange[i].Column - 1;
//apply VerticalMerge for word table
table.ApplyVerticalMerge(columnIndex, startRowIndex, endRowIndex);
}
//has horizontal merge
if (rows.Length == 1)
{
int startCellIndex = mergedCellRange[i].Column - 1;
int endCellIndex = startCellIndex + (mergedCellRange[i].ColumnCount) - 1;
int rowIndex = mergedCellRange[i].Row - 1;
//apply HorizontalMerge for word table
table.ApplyHorizontalMerge(rowIndex, startCellIndex, endCellIndex);
}
}
}