Допомога - Пошук - Користувачі - Календар
Редактирование текста в Wordе через C#
XJedi FORUM: Online lightsaber fighting game > Всяка всячина > Кантіна > Web, Hard & Soft
Asitaka
Всем доброго времени суток, столкнулся с проблемой по C#. У меня 2 задачи, одна дана для примера работы а 2-ая которую нужно самостоятельно клепать. Начну с которой для примера:

Пример надстройки уровня приложения

Форматирование текста с использованием надстройки уровня приложения
Следующий пример можно использовать в надстройке уровня приложения. В этом примере используется активный документ. Чтобы использовать этот код, выполните его из класса ThisAddIn проекта.

Вот исходник:

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 Microsoft.Office.Interop.Word;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
{

Word.Document document = this.Application.ActiveDocument;
Word.Range rng = document.Paragraphs[1].Range;

rng.Font.Size = 14;
rng.Font.Name = "Arial";
rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;

rng.Select();
MessageBox.Show("Formatted Range");

object numTimes3 = 3;
document.Undo(ref numTimes3);

rng.Select();
MessageBox.Show("Undo 3 actions");

object indentStyle = "Normal Indent";
rng.set_Style(ref indentStyle);

rng.Select();
MessageBox.Show("Normal Indent style applied");

object numTimes1 = 1;
document.Undo(ref numTimes1);

rng.Select();
MessageBox.Show("Undo 1 action");
}
}
}
}

Версия VS2010 у меня Английская и ошибка:

Error 2 'WindowsFormsApplication1.Form1' does not contain a definition for 'Application' and no extension method 'Application' accepting a first argument of type 'WindowsFormsApplication1.Form1' could be found (are you missing a using directive or an assembly reference?)

Если я не ошибаюсь то здесь написано, что не заданно определение для Application, но разве это не определение "Word.Document document = this.Application.ActiveDocument;"??

И выводит ошибку на Word:

Error 1 The type or namespace name 'Word' could not be found (are you missing a using directive or an assembly reference?)

using Microsoft.Office.Interop.Word; прописан как бы...

Со 2-ой задачей чуть позже напишу там другая проблема как-бы, надеюсь есть люди которые знают C#, сам уже 2-ой день пытаюсь разобрать, ищу по googl'у и не могу найти _a2.gif
Umka
Error 1
http://easyprog.ru/index.php?option=com_co...d=857&Itemid=54

Error 2
но разве это не определение "Word.Document document = this.Application.ActiveDocument;"??

Нет, это не определение. Ты нигде не определил Application и не импортируешь его, так что компилятор в недоумении.

2-ой день пытаюсь разобрать

Это печально.
Asitaka
Итак, на этот раз у меня другая проблема.

Суть задания заключается в том чтобы найти в Word'е слово (к примеру VS10Name1) и заменить его на текст или слово введенное в TextBox1

Но как всегда без ошибки не обошлось _a2.gif

Код:

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 Word = Microsoft.Office.Interop.Word;

namespace Test2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
//Вызов

Word.Application Word = new Word.Application();
Word.Documents.Open(@Application.StartupPath + @"D:\СВГ\T1.docx");
Word.Visible = true;

//Ввод текста и поиск "VS10Name1" для его замены на введенный текст в TextBox1

string a;
a = Convert.ToString(textBox1.Text);

Word.Selection.Find.Text = @"VS10Name1";
Word.Selection.Find.Replacement.ClearFormatting();
Word.Selection.Find.Replacement.Text = (a);
}
}
}

Ошибка: Word.Selection.Find.Text = @"VS10Name1" - Ссылка на объект не указывает на экземпляр объекта.

_______________________________________________________________________________

Переправил Word.Documents.Open(@Application.StartupPath + @"D:\СВГ\T1.docx"); на Word.Documents.Open(@"D:\СВГ\T1.docx");

Файл открылся, а вот замена не получается, может кто помочь? _a2.gif
Killer
Если нужно будет напиши открою, а так не актуально, закрыто.
.
Invision Power Board © 2001-2025 IPS , Inc.