2010-07-20 78 views
0

我試圖用純文本在電子郵件內打印表格。 我有以下代碼:在C中格式化純文本電子郵件#

string body = string.Format("{0,-30}{1,-30}{2,-50}{3,-40}", 
            "Col1", "Col2", "Col2", 「Col4」); 

body += string.Format("{0,-30}{1,-30}{2,-50}{3,-40}", 
           value1, value2, value3, value4); 

Microsoft.Office.Interop.Outlook.ApplicationClass myOutlookApplication = null; 
myOutlookApplication = new Microsoft.Office.Interop.Outlook.ApplicationClass(); 
Microsoft.Office.Interop.Outlook.MailItem myNewMail = 
    (Microsoft.Office.Interop.Outlook.MailItem)myOutlookApplication.CreateItem( 
     Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);    

myNewMail.To = recipient; 
myNewMail.Subject = subject; 
myNewMail.Body = body; 
myNewMail.BodyFormat = OlBodyFormat.olFormatPlain;    

myNewMail.Send(); 

我的問題是,對於正文文本不排隊。它似乎也包裝了郵件內的文字。誰能告訴我我在這裏可能會做錯什麼?

回答

1

創建(或實際上模仿的行爲)以純文本的表僅效果很好,當:

  1. 值在你的表是完全一樣的寬度列的widht。這是你(程序員)應該處理的事情,當文本太短時用空格跟隨文本,或者如果太長,則文本被刪減。

  2. 正在接收文本的用戶正在使用等寬字體(http://en.wikipedia.org/wiki/Monospaced_font)來查看錶格。如果您發送電子郵件中的表格,那很不幸,這是您無法控制的......

0

這是由於字體。如果你想要它排隊,你需要使用固定寬度的字體,就像你的代碼編輯器希望做的那樣。

否則你可以嘗試使用TAB的東西。但這可能會很棘手。

+0

那麼如何更改字體? – 2010-07-20 08:36:33

相關問題