private void ToWord()
{
try
{
#region WORD
object missing = Missing.Value;
object missing2 = Missing.Value;
object missing3 = Missing.Value;
object missing4 = Missing.Value;
object missing5 = Missing.Value;
object missing6 = Missing.Value;
object missing7 = Missing.Value;
object missing8 = Missing.Value;
object missing9 = Missing.Value;
object missing10 = Missing.Value;
object missing11 = Missing.Value;
object missing12 = Missing.Value;
object missing13 = Missing.Value;
int CurrTable = 0;
// Create a word object that we can manipulate
Word.Application Word_App = null;
Word.Document Word_doc = null;
try
{
Word_App = new Word.Application();
Word_doc = new Word.Document();
}
catch(Exception e1)
{
MessageBox.Show("Can't create a word document " + e1.ToString());
}
Word.Documents Docs = Word_App.Documents;
Word_App.Visible=true;
Word._Document my_Doc = (Word._Document)Word_doc;
Word_doc=Docs.Add(ref missing, ref missing, ref missing, ref missing);
object start = 0;
object end = 0;
Word.Range range = Word_doc.Range(ref missing, ref missing);
Word_doc.PageSetup.Orientation = Word.WdOrientation.wdOrientPortrait;
Word_doc.PageSetup.TopMargin = 91;
Word_doc.PageSetup.LeftMargin = 37;
Word_doc.Tables.Add(range,23,11,ref missing,ref missing);
CurrTable++;
range.Tables[CurrTable].Columns[1].Width = 43;
range.Tables[CurrTable].Columns[2].Width = 54;
range.Tables[CurrTable].Columns[3].Width = 66;
range.Tables[CurrTable].Columns[4].Width = 40;
range.Tables[CurrTable].Columns[5].Width = 54;
range.Tables[CurrTable].Columns[6].Width = 54;
range.Tables[CurrTable].Columns[7].Width = 40;
range.Tables[CurrTable].Columns[8].Width = 40;
range.Tables[CurrTable].Columns[9].Width = 43;
range.Tables[CurrTable].Columns[10].Width = 43;
range.Tables[CurrTable].Columns[11].Width = 57;
for(int i=1; i<24; i++)
range.Tables[CurrTable].Rows.Height = (float)19.4;
for(int i=1; i<7;i++)
range.Tables[CurrTable].Rows[21].Cells[4].Merge
(range.Tables[CurrTable].Rows[21].Cells[5]);
for(int i=1; i<10;i++)
{
range.Tables[CurrTable].Rows[22].Cells[1].Merge
(range.Tables[CurrTable].Rows[22].Cells[2]);
range.Tables[CurrTable].Rows[23].Cells[1].Merge
(range.Tables[CurrTable].Rows[23].Cells[2]);
}
range.Tables[CurrTable].Range.Font.Size =8;
range.Tables[CurrTable].Range.Font.Bold =0;
for(int i=1;i<this.dataSetII.Tables[0].Columns.Count+this.dataSetIII.Tables[0].Columns.Count;i++)
{
if(i<6)
{
if(this.cbII.Checked==true)
for(int j=rowII; j<this.dataSetII.Tables[0].Rows.Count; j++)
if((int)this.dataSetII.Tables[0].Rows[j]["DopOrNad"]==0)
range.Tables[CurrTable].Rows[j+1].Cells.Range.Text =
this.dataSetII.Tables[0].Rows[j].ToString(); else
{
if(i==2)
range.Tables[CurrTable].Rows[j+1].Cells[2].Merge
(range.Tables[CurrTable].Rows[j+1].Cells[3]);
if(i<=2)
range.Tables[CurrTable].Rows[j+1].Cells.Range.Text =
this.dataSetII.Tables[0].Rows[j].ToString(); else if((i==3)||(i==4))
range.Tables[CurrTable].Rows[j+1].Cells.Range.Text =
this.dataSetII.Tables[0].Rows[j][i+1].ToString();
}
}
if(i>=7)
{
if(this.cbIII.Checked==true)
for(int j=rowIII; j<this.dataSetIII.Tables[0].Rows.Count; j++)
range.Tables[CurrTable].Rows[j+1].Cells.Range.Text =
this.dataSetIII.Tables[0].Rows[j][i-7].ToString();
}
}
#endregion
}
catch(Exception o)
{
MessageBox.Show(o.ToString());
}
}
}
Word документ в C#
Есть метод, который перегоняет данные из dataSet в Word таблицу:
Код:
Полученная таблица занимает чуть больше половины страницы.
Вопрос: как создать в этом документе новую страницу?
И как перевести на эту новую страницу курсор (range)?