ÊÖ»úÕ¾
ÍøÍ¨·ÖÕ¾
µçÐÅÖ÷Õ¾
ÃÜ¡¡Âë:
Óû§Ãû£º
µ±Ç°Î»Öà : Ö÷Ò³>³ÌÐòÉè¼Æ>C/C++>Áбí

c# ʵÏÖwordÁª½ÓexcelµÄmailmerge¹¦ÄÜ_c#Ó¦ÓÃ

À´Ô´£º»¥ÁªÍø ×÷Õߣºwest263.com ʱ¼ä£º2008-02-23
Î÷²¿ÊýÂë-È«¹úÐéÄâÖ÷»ú10Ç¿£¡40ÓàÏîÐéÄâÖ÷»ú¹ÜÀí¹¦ÄÜ,È«¹úÁìÏÈ!Ë«Ïß¶àÏßÐéÄâÖ÷»úÄϱ±·ÃÎʳ©Í¨ÎÞ×è!Ãâ·ÑÔùËÍÆóÒµÓʾÖ,.CNÓòÃû,×ÔÖú½¨Õ¾480ÔªÆð,Ãâ·ÑÊÔÓÃ7Ìì,ÂúÒâÔÙ¸¶¿î! P4Ö÷»ú×âÓÃ799Ôª/ÔÂ.Ô¸¶Ãâѹ½ð!

Ä¿±ê£ºÊ¹ÓÃwordµÄMailMerge¹¦ÄÜ£¬Êý¾ÝÔ´ÊÇExcelÖеÄÊý¾Ý¡£ÕâЩ×ÊÁÏÔÚÍøÉϺÜÉÙ£¬Ö»ÄÜ×Ô¼ºÂýÂý²âÊÔÁË¡£

¹ØÓÚWordµÄMailMerge¹¦ÄÜ£º

wordÌṩÓʼþµÄÄ£°å£¬Äܹ»Ñ¡Ôñ¸÷ÖÖÊý¾ÝÔ´£¬±ÈÈçÊý¾Ý¿â£¬excelµÈ£¬È»ºóȺ·¢£¨»ò´òÓ¡¡¢Áí´æÎĵµ£©Óʼþ¡£

ΪÁËʵÏÖÕâ¸ö¹¦ÄÜ£¬ÎҵijÌʽҪÄÜ×öµÄÊÇ

1£º´ò¿ªwordÎĵµ¶ÔÏó

2£ºÅäÖÃMailMergeÊý¾ÝÔ´£ºÖ¸¶¨Excel£¬Ö¸¶¨²éѯÓï¾ä£¬Ö¸¶¨Áª½ÓµÄÁÐs

3£º¹Ø±Õ±£´æ

¹ØÓÚÒýÓãº

using Word = Microsoft.Office.Interop.Word;

using System.Reflection;

using System.Diagnostics;

using System.IO;

¹ØÓÚ±äÁ¿£ºwordµÄcom¶ÔÏóÐèÒª´«ÈëµÄ²ÎÊý¶¨Òå

Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();

object missing = System.Reflection.Missing.Value;

object falseValue = false;

object trueValue = true;

¹ØÓÚ´¦Àí

ÐèҪעÒâµÄÊÇ

1£º´ò¿ªwordµÄ·½Ê½

2£ºqueryµÄд·¨¡£ÀàËÆÓÚsqlÒ»°ã£¬±È½ÏºÃÍæ¡£

3£ºÅäÖÃÁУ¬¡£ÅäÖÃÖ®ºó£¬ÔÚwordÖÐÄܹ»¿´¼ûÕâЩÁС£

4£º¹Ø±ÕwordÖ®ºó£¬»¹µÃÔÙcopyÒ»´Îexcel¡£Ö±½ÓÉú³ÉÖ®ºóµÄexcelÎĵµsize±©ÕÇ£¬Îĵµ»¹´ò²»¿ª£¬ËùÒÔ¸²¸ÇÒ»±éÁËÖ®¡£Ô­Òò²»Ïê¡£

private void button1_Click(object sender, EventArgs e)

{

object fileName = CopyTemplateDoc();//copy doc in

Word.Document doc = WordApp.Documents.Open(ref fileName, ref missing, ref falseValue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref trueValue, ref missing, ref missing, ref missing);

object linkTo = CopyExcelData();//copy excel data

object query = "SELECT * FROM `Sheet1$`";//data from sheet1

object header = "Name,Category,Address,Content";//filed list

try

{

doc.MailMerge.CreateDataSource(ref linkTo, ref missing, ref missing, ref header, ref falseValue, ref query, ref missing, ref missing, ref trueValue);

doc.MailMerge.Fields.Add(WordApp.Selection.Range, "Name");//add one filed to test

MessageBox.Show("success");

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

doc.Save();//save word

CloseApp();//close word app

CopyExcelData();//copy data again,*******************

}

}

¹ØÓڹرÕword¶ÔÏó

public void CloseApp()
{
WordApp.Documents.Close(ref trueValue, ref missing, ref missing);
WordApp.Quit(ref trueValue, ref missing, ref missing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(WordApp);
GC.Collect();

//this.KillExcelProcess();
}

¸üÓÐÁ½¸ö¹¤¾ßº¯Êý²»ÔÙ׸Êö£¬ÓÃÀ´copyÎĵµ²¢ÇÒ·µ»ØÎĵµÃûprivate string CopyExcelData()£»ºÍprivate string CopyTemplateDoc()¡£

²âÊÔ£¬¸ã¶¨


ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!