C#使用Aspose.Words将Spread表格插入到Word中
注:Word中每个表格只有一行,固定第一行为表头,先复制表头N行追加到表格后,保证每行的格式与表头一致。
封装方法:
private void SheetToTable(FarPoint.Win.Spread.SheetView sheet, Document doc, Table table, int beginRow)
{
//先复制出所有行,保证每行的格式都是一致的
for (int i = beginRow; i < sheet.RowCount; i++)
{
Row oneRow = (Row)table.Rows[table.Rows.Count - 1].Clone(true);
table.Rows.Insert(table.Rows.Count, oneRow);
}
//从第二行开始进行数据填充
for (int i = beginRow; i < table.Rows.Count; i++)
{
//先统一设置一下行高,后续给单元格赋值时会自动撑开
table.Rows[i].RowFormat.Height = 20;
for (int j = 0; j < sheet.ColumnCount; j++)
{
table.Rows[i].Cells[j].ChildNodes.Clear();
Paragraph p = new Paragraph(doc);
p.AppendChild(new Run(doc, sheet.Cells[i, j].Text));
table.Rows[i].Cells[j].AppendChild(p);
}
}
}
/// <summary>
/// 设置指定单元格的文本
/// </summary>
/// <param name="doc"></param>
/// <param name="cell"></param>
/// <param name="text"></param>
public static void SetCellText(Document doc,Cell cell,string text)
{
cell.RemoveAllChildren();
cell.Paragraphs.Add(new Paragraph(doc));
Run run = new Run(doc, text);
run.Font.Name = "宋体";
run.Font.Size = 8;
cell.LastParagraph.Runs.Add(run);
}

浙公网安备 33010602011771号