Я пытаюсь выбрать путь, затем я хочу прочитать каталоги.В каждом каталоге есть несколько файлов Word, я хочу открыть каждый файл Word, скопировать его содержимое и вставить его в новый документ Word.
Пример, если в каталоге 6 файлов Word, я хочу открытьновый документ Word, затем откройте первый документ в каталоге, скопируйте его содержимое и вставьте его в новый документ и выполняйте циклы до тех пор, пока все документы не будут прочитаны.
Пока я могу перебирать документы, но только что созданный файл слов получает только последний открытый документ.Ниже мой код.
namespace combiner
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// For optional parameters create a missing object
object missing = System.Reflection.Missing.Value;
// Create an object of application class
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();
// add a document in the Application
Document adoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
// declare variables for setting the position within the document
object start = 0;
object end = 0;
// create a range object which starts at 0
Range rng = adoc.Range(ref start, ref missing);
string path = @"C:\demo";
string[] files = Directory.GetDirectories(path);
for (int i = 0; i < files.Length; i++)
{
string[] ora = Directory.GetFiles(files[i], "*.docx", SearchOption.AllDirectories);
foreach (string f in ora)
{
MessageBox.Show(f);
textBox1.Text = f.ToString();
// insert a file
rng.InsertFile(textBox1.Text, ref missing, ref missing, ref missing, ref missing);
// now make start to point to the end of the content of the first document
start = WordApp.ActiveDocument.Content.End - 1;
// create another range object with the new value for start
Range rng1 = adoc.Range(ref start, ref missing);
// insert the another document
rng1.InsertFile(textBox1.Text, ref missing, ref missing, ref missing, ref missing);
// now make start to point to the end of the content of the first document
start = WordApp.ActiveDocument.Content.End - 1;
}
// make the word appliction visible
WordApp.Visible = true;
adoc.SaveAs2(@"D:\fulltest.docx");
}
}
}
}