Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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

6.0K
01 декабря 2008 года
Balda
79 / / 12.05.2008
Пишу в MS VS .NET 2003.
Есть метод, который перегоняет данные из dataSet в Word таблицу:
Код:
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());
}
}
}


Полученная таблица занимает чуть больше половины страницы.
Вопрос: как создать в этом документе новую страницу?
И как перевести на эту новую страницу курсор (range)?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог