我需要使用 C# 代码将表格打印到 Word 文档。我面临单元格中文本对齐的问题。
我的代码如下:
private void CreateTableInDoc()
{
object oMissing = System.Reflection.Missing.Value;
object oEndOfDoc = "\\endofdoc";
Microsoft.Office.Interop.Word._Application objWord;
Microsoft.Office.Interop.Word._Document objDoc;
objWord = new Microsoft.Office.Interop.Word.Application();
objWord.Visible = true;
objDoc = objWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
int i = 0;
int j = 0;
Microsoft.Office.Interop.Word.Table objTable;
Microsoft.Office.Interop.Word.Range wrdRng = objDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
string strText;
objTable = objDoc.Tables.Add(wrdRng, 1, 1, ref oMissing, ref oMissing);
objTable.Range.ParagraphFormat.SpaceAfter = 7;
strText = "ABC Company";
objTable.Rows[1].Range.Text = strText;
strText = "";
objTable.Rows[1].Range.Font.Bold = 1;
objTable.Rows[1].Range.Font.Size = 24;
objTable.Rows[1].Range.Font.Position = 1;
objTable.Rows[1].Range.Font.Name = "Times New Roman";
Microsoft.Office.Interop.Word.Table objNewTable;
objNewTable = objDoc.Tables.Add(wrdRng, 3, 2, ref oMissing, ref oMissing);
objNewTable.Rows[1].Range.Font.Name = "Times New Roman";
objNewTable.Rows[1].Range.Font.Bold = 1;
objNewTable.Rows[1].Range.Font.Italic = 1;
objNewTable.Rows[1].Range.Font.Size = 14;
objNewTable.Cell(1, 1).Range.Text = "Item Name";
objNewTable.Cell(1, 2).Range.Text = "Price";
for (i = 2; i <= 3; i++)
{
objNewTable.Rows[i].Range.Font.Name = "Times New Roman";
objNewTable.Rows[i].Range.Font.Bold = 0;
objNewTable.Rows[i].Range.Font.Italic = 0;
objNewTable.Rows[i].Range.Font.Size = 12;
for (j = 1; j <= 2; j++)
{
if (j == 1)
objNewTable.Cell(i, j).Range.Text = "Item " + (i-1);
else
objNewTable.Cell(i, j).Range.Text = "Price of " + (i-1);
}
}
try
{
objTable.Borders.Shadow = true;
objNewTable.Borders.Shadow = true;
}
catch
{
}
this.Close();
}
我得到的输出如下:
我的预期输出如下: