Word dokumentumok összefűzése C# -ban
Beküldte Rimelek - 2010, május 20 - 22:50Gondoltam 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:
A program fő része gyakorlatilag a következő:
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.