2
データセット表をWordにエクスポートする必要があります。 Interop 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());
}
}
ループからブックマークを使用して初期位置を取得し、ループ内にテーブルを挿入します。ところで、あなたの質問を修正していただきありがとうございます(このコードで得られた出力は何ですか?予想される動作とどのように違うのですか?例外がスローされますか、それとも1つのテーブルで動作しますか?) –
エラーは発生しません。すべてのテーブルは単一のテーブルにバインドされています。それが問題です。私がこれを解決するのを助けてください.. – Ethiraj
各テーブルの後ろに段落を挿入してください(Wordアプリケーションでコードを実行してみてください。別のテーブルの後にテーブルを挿入する問題が見つかります)。 –