
Gondoltam egyet, és összedobtam egy programot C# -ban, ami összefűz tetszőleges számú és formátumú word dokumentumot. Nem rég szükségem is lett volna egy ilyenre, de ehelyett egyenként tallóztam be egy új dokumentumból a beillesztendő fájlokat. Lehet, lett volna más megoldás, de már mindegy. A program futtatható exe fájlja és a forráskódja is letölthető a következő linken:
Forráskód és EXE fájl
A program fő része gyakorlatilag a következő:
-
using System;
-
using System.Windows.Forms;
-
using Word = Microsoft.Office.Interop.Word;
-
-
namespace MergeDoc
-
{
-
public partial class Form1 : Form
-
{
-
OpenFileDialog ofd
= new OpenFileDialog
();
-
public Form1()
-
{
-
InitializeComponent();
-
-
}
-
-
private void browseBtn_Click(object sender, EventArgs e)
-
{
-
ofd.Multiselect = true;
-
ofd.Title = "Jelöld ki az összefűzendő dokumentumokat";
-
String filter = "Word 93-2007 (*.doc,*.docx)|*.doc; *.docx|Word 97-2003 (*.doc)|*.doc|Word 2007 (*.docx)|*.docx";
-
ofd.Filter = filter;
-
-
if (ofd.ShowDialog() == DialogResult.OK)
-
{
-
openedDocs.Items.Clear();
-
foreach (String filename in ofd.FileNames)
-
{
-
openedDocs.Items.Add(filename);
-
}
-
}
-
}
-
-
private void saveBtn_Click(object sender, EventArgs e)
-
{
-
Word
.ApplicationClass wordApp
= new Word
.ApplicationClass();
-
object visible = false;
-
object doctype = Word.WdNewDocumentType.wdNewBlankDocument;
-
object docformat = Word.WdOriginalFormat.wdOriginalDocumentFormat;
-
object missing = System.Reflection.Missing.Value;
-
-
Word.Document outdoc = wordApp.Documents.Add(missing, missing, doctype, visible);
-
foreach (String filename in openedDocs.Items)
-
{
-
object file = filename;
-
try
-
{
-
outdoc.ActiveWindow.Selection.InsertFile(filename);
-
}
-
catch (System.Runtime.InteropServices.COMException ex)
-
{
-
MessageBox.Show(ex.Message);
-
}
-
}
-
try
-
{
-
wordApp.Documents.Close();
-
}
-
catch (System.Runtime.InteropServices.COMException)
-
{
-
-
}
-
finally
-
{
-
wordApp.Quit();
-
}
-
}
-
-
}
-
}
Én nem állítom, hogy tökéletes, de a célnak megfelelt. Egy nap majd talán írok jobbat. Addig is akit érdekel, használja kedvére.
Tesztelve Microsoft Office 2007 mellett lett Windows 7 rendszerben.
A project Visual Studio 2010 -ben készült de .NET 3.5 verzióra állítva.