C#

C# programok és leírások

Word dokumentumok összefűzése C# -ban

MergeDoc

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ő:

  1. using System;
  2. using System.Windows.Forms;
  3. using Word = Microsoft.Office.Interop.Word;
  4.  
  5. namespace MergeDoc
  6. {
  7.     public partial class Form1 : Form
  8.     {
  9.         OpenFileDialog ofd = new OpenFileDialog();
  10.         public Form1()
  11.         {
  12.             InitializeComponent();
  13.  
  14.         }
  15.  
  16.         private void browseBtn_Click(object sender, EventArgs e)
  17.         {
  18.             ofd.Multiselect = true;
  19.             ofd.Title = "Jelöld ki az összefűzendő dokumentumokat";
  20.             String filter = "Word 93-2007 (*.doc,*.docx)|*.doc; *.docx|Word 97-2003 (*.doc)|*.doc|Word 2007 (*.docx)|*.docx";
  21.             ofd.Filter = filter;
  22.          
  23.             if (ofd.ShowDialog() == DialogResult.OK)
  24.             {
  25.                 openedDocs.Items.Clear();
  26.                 foreach (String filename in ofd.FileNames)
  27.                 {
  28.                     openedDocs.Items.Add(filename);
  29.                 }
  30.             }
  31.         }
  32.  
  33.         private void saveBtn_Click(object sender, EventArgs e)
  34.         {
  35.             Word.ApplicationClass wordApp = new Word.ApplicationClass();
  36.             object visible = false;
  37.             object doctype = Word.WdNewDocumentType.wdNewBlankDocument;
  38.             object docformat = Word.WdOriginalFormat.wdOriginalDocumentFormat;
  39.             object missing = System.Reflection.Missing.Value;
  40.  
  41.             Word.Document outdoc = wordApp.Documents.Add(missing, missing, doctype, visible);
  42.             foreach (String filename in openedDocs.Items)
  43.             {
  44.                 object file = filename;
  45.                 try
  46.                 {
  47.                     outdoc.ActiveWindow.Selection.InsertFile(filename);
  48.                 }
  49.                 catch (System.Runtime.InteropServices.COMException ex)
  50.                 {
  51.                     MessageBox.Show(ex.Message);
  52.                 }
  53.             }
  54.             try
  55.             {
  56.                 wordApp.Documents.Close();
  57.             }
  58.             catch (System.Runtime.InteropServices.COMException)
  59.             {
  60.  
  61.             }
  62.             finally
  63.             {
  64.                 wordApp.Quit();
  65.             }
  66.         }
  67.  
  68.     }
  69. }

É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.

Megosztás/Mentés