
BFI_DOPMAT / Вывод таблицы средствами MS Word
.pdf//Программа вывода таблицы средствами MS Word: запускается
//программа, пользователь наблюдает, как запускается редактор
//MS Word и автоматически происходит построение таблицы
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
//В меню Project укажем команду Add Reference и на
//появившейся вкладке COM дважды щелкнем по ссылке на
//библиотеку Microsoft Word 12.0 Object Library
button1->Text = "Пуск"; this->Text = "Поcтроение таблицы";
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{ // Инициализируем два строковых массива:
array<String^> ^ Imena = {"Андрей - раб", "Света-X", "ЖЭК", "Справка по тел", "Александр Степанович",
"Мама - дом", "Карапузова Таня", "Погода сегодня", "Театр Браво"};
array<String^> ^ Tel = {"274-88-17", "+38(067)7030356", "22-345-72", "009", "223-67-67 доп 32-67",
"570-38-76", "201-72-23-прямой моб", "001", "216-40-22"};
// Создаем новый экземпляр класса Word::_Application: auto Ворд1 =
gcnew Microsoft::Office::Interop::Word::Application(); Ворд1->Visible = true;
//Перменная с "пустым" значением: auto t = Type::Missing;
//Открываем новый документ MS Word:
auto Документ = Ворд1->Documents->Add(t, t, t, t);
//Вводим текст в документ MS WORD с текущей позиции:
Ворд1->Selection->TypeText("ТАБЛИЦА ТЕЛЕФОНОВ");
//Параметр, указывающий, показывать ли границы ячеек: System::Object ^ t1 = Microsoft::Office::Interop::
Word::WdDefaultTableBehavior::wdWord9TableBehavior;
//Параметр, указывающий будет ли приложение Word автоматически
//изменять размер ячеек в таблице для подгонки содержимого: System::Object ^ t2 = Microsoft::Office::Interop::
Word::WdAutoFitBehavior::wdAutoFitContent; // Создаем таблицу из 9 строк и 2 столбцов:
Ворд1->ActiveDocument->Tables->Add(Ворд1->Selection->Range, 9, 2, t1, t2);
// Заполнять ячейки таблицы можно так: for (int i = 1; i <= 9; i++)
{
Ворд1->ActiveDocument->Tables[1]->Cell(i, 1)-> default->InsertAfter(Imena[i - 1]);
Ворд1->ActiveDocument->Tables[1]->Cell(i, 2)-> default->InsertAfter(Tel[i - 1]);
//Программируя на C#, мы написали бы:
//Ворд1.ActiveDocument.Tables[1].Cell(i, 2).
// |
Range.InsertAfter(Tel[i - 1]); |
} |
|
//Назначаем единицы измерения в документе приложения MS Word: Object ^ t3 = Microsoft::Office::Interop::Word::WdUnits::wdLine;
//Параметр, указывающий на девятую строку в документе MS Word: Object ^ строка9 = 9;
//Перевести текущую позицию (Selection) за пределы таблицы,
//(в девятую строку), чтобы здесь вывести какой-либо текст:
Ворд1->Selection->MoveDown(t3, строка9, t); // И здесь печатаем следующий текст:
Ворд1->Selection->TypeText("Какой-либо текст после таблицы");
//Сохранять документ нет смысла, но это решит пользователь:
//Object ^ ИмяФайла = "C:\\a.doc";
//Ворд1->ActiveDocument->SaveAs(ИмяФайла, t, t, t, t, t,
// |
t, t, t, t, t, t, t, t, t, t); |
} }; |
|
} |
|
