我需要将数据集表导出到Word。我尝试过使用Interop Word的解决方案。我在这里面临一个问题,
我需要将表格放在word文档中,并带有一系列空格,我的问题是我无法在数据集上的每个表格中创建一个新表格。
这是我的代码,
private void Exporttoword_Click(object sender, EventArgs e)
{
try
{
DataSet Ds = objMB.ExeQueryStrRetDsBL("SP_PreviewSeries" + cbMatches.SelectedValue, 1);
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);
for (var w = 0; w < Ds.Tables.Count; w++)
{
Microsoft.Office.Interop.Word.Table objTable;
Microsoft.Office.Interop.Word.Range wrdRng = objDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
objTable = objDoc.Tables.Add(wrdRng, Convert.ToInt32(Ds.Tables[w].Rows.Count), Convert.ToInt32(Ds.Tables[w].Columns.Count), ref oMissing, ref oMissing);
objTable.Range.ParagraphFormat.SpaceAfter = 3;
for (var i = 0; i < Ds.Tables[w].Rows.Count; i++)
for (var j = 0; j < Ds.Tables[w].Columns.Count; j++)
{
objTable.Cell(i + 1, j + 1).Range.Text = Ds.Tables[w].Rows[i][j].ToString();
objTable.Cell(i + 1, j + 1).Range.Borders.Enable = 1;
}
objTable.Rows[1].Range.Font.Bold = 1;
objTable.Rows[1].Range.Font.Italic = 1;
}
this.Close();
string fp = @"D:\Practice\test.docx";
objDoc.SaveAs2(fp);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
答案 0 :(得分:0)
您需要在for循环中声明一个类似Word的段落。
Microsoft.Office.Interop.Word.Paragraph paragraph;
并在for循环结束时
paragraph = objDoc.Paragraphs.Add();
此解决方案适用于我。试试这个。