1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Word документ в C#

Тема в разделе ".NET", создана пользователем Balda, 1 дек 2008.

Статус темы:
Закрыта.
  1. Balda

    Balda Гость

    Пишу в MS VS .NET 2003.
    Есть метод, который перегоняет данные из dataSet в Word таблицу:
    Код (Text):
    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[i].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[i].Range.Text =
    this.dataSetII.Tables[0].Rows[j][i].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[i].Range.Text =
    this.dataSetII.Tables[0].Rows[j][i].ToString();                 else if((i==3)||(i==4))                          
    range.Tables[CurrTable].Rows[j+1].Cells[i].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[i].Range.Text =
    this.dataSetIII.Tables[0].Rows[j][i-7].ToString();
    }
    }

    #endregion
    }
    catch(Exception o)
    {
    MessageBox.Show(o.ToString());
    }
    }
    }
    Полученная таблица занимает чуть больше половины страницы.
    Вопрос: как создать в этом документе новую страницу?
    И как перевести на эту новую страницу курсор (range)?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей