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

Ваш аккаунт

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

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

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

Word и reflection С#

48K
27 мая 2010 года
dox07
15 / / 02.09.2009
Приветствую. Необходимо работать с MS Word-ом через COM. Пробую через рефлексию работать. Существует следующий код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;


namespace GridDataWord
{
public partial class Form1 : Form
{

public void createTable(DataGridView gridView)
{

try
{

//получение информации о типе приложения Word
Type typeForRootApplicationWord = Type.GetTypeFromProgID("Word.Application");
//создание объекта приложения word
object objectApplicationWord =
Activator.CreateInstance(typeForRootApplicationWord);


PropertyInfo visiblePropertyInfo = objectApplicationWord.GetType().GetProperty("Visible");
visiblePropertyInfo.SetValue(objectApplicationWord, (object)true, null);

PropertyInfo docsPropertyInfo = objectApplicationWord.GetType().GetProperty("Documents");
object documentsInWordApplication = docsPropertyInfo.GetValue(objectApplicationWord, null);

}
catch (Exception theException)
{
String errorMessage;
errorMessage = "Error: ";
errorMessage = String.Concat(errorMessage, theException.Message);
errorMessage = String.Concat(errorMessage, "Line: ");
errorMessage = String.Concat(errorMessage, theException.Source);
MessageBox.Show(errorMessage, "Error");
}


// typeForRootApplicationWord.InvokeMember();
}


public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
createTable(this.dataGridView1);
}
}
}

При дэбаге просмотрев объект documentsInWordApplication вижу что там null. Хотя если вместо "Documents" поставить например "Caption", то сохраняется строка в объекте documentsInWordApplication.
Вопрос в следующем: почему свойство Documents объекта Application недоступно. Свойсто Documents хочу использовать чтобы добавить новый документ и уже с документом работать. Однако никак не могу получить объект Documents.
5
27 мая 2010 года
hardcase
4.5K / / 09.08.2005
Что мешает использовать Microsoft.Office.Interop?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог