這是我的情況。 我做了一個應用程序Windows窗體,它根據用戶在做什麼(按鈕/切換/文本框/等等)來編輯Excel工作表。如何將剪貼板中的圖像粘貼到Outlook電子郵件正文?
完成編輯後,會生成新的Excel文件。
我的程序然後選擇一個單元格範圍,並複製它。 它去剪貼板。
我已經做了多個測試(如果(){}其他{} /保存到一個.jpg /等),並且一切都被檢查爲真。
我不想附加我的圖片。 我不想保存它,即使是暫時的,然後通過保存的.jpg文件將其粘貼到主體中。 我「只是」想將Ctrl + V放入我的Outlook電子郵件正文中。
以下是我從我的剪貼板中獲取圖像(「消息體」在頂部作爲公共字符串聲明,這樣我可以把它通過不同的地區):
public void ReadData()
{
Excel excel = new Excel(@"E:\c#\Project#XX\Resources\TEST.xlsx", 1);
excel.CopyRange(0, 0, 32, 12);
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Bitmap))
{
Bitmap MessageBody = (iData.GetData(DataFormats.Bitmap, true) as Bitmap);
//pbx.Image = Image;
//image.Save(@"E:\c#\Project#XX\Resources\bitmap1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
//MessageBody = image;
}
excel.Close();
excel.Quit();
}
這裏是我的消息大樓的代碼:
private void flatCustButton013_Click(object sender, EventArgs e)
{
ReadData();
string MessageSubject = $"SomeSubject";
Outlook.MailItem newMail = (Outlook.MailItem)application.CreateItem(Outlook.OlItemType.olMailItem);
newMail.Subject = MessageSubject;
newMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
MessageHTMLBody = "<html><body>SomeText.<img src="cid:MessageBody"</img></body></html>";
newMail.HTMLBody = MessageHTMLBody;
//newMail.Body = System.Windows.Input.ApplicationCommands.Paste;
//newMail.Display(false);
//newMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; ;
//newMail.HTMLBody = System.Windows.Input.ApplicationCommands.Paste;
//newMail.Body = MessageBody;
newMail.To = ToAddress;
newMail.SentOnBehalfOfName = FromAddress;
newMail.CC = CcAddress;
newMail.BCC = BccAddress;
//System.Windows.Input.ApplicationCommands.Paste;
//wrdEdit = application._Inspector.WordEditor
newMail.Send();
}
在以前的版本中,人們不得不打開一個Excel文件,手動更改單元格,然後單擊一個按鈕(在VB宏)。 它會打開一個Outlook電子郵件項目(顯示:真的)與圖片已經粘貼,然後只需點擊「發送」,它是好的。
我的2.0版本旨在通過點擊「發送//生成的Excel表//」按鈕來自動完成此操作。
這裏的宏代碼在VB:
Sub SendMail()
Dim Messager As New Outlook.Application
Dim Mail As Outlook.MailItem
Dim WrdEdit
Range("my_range").CopyPicture
Set Messager = New Outlook.Application
Set Mail = Messager.CreateItem(olMailItem)
With Mail
.To = "some folks"
.CC = "some folks"
'.BCC = ""
.Subject = "SomeSubject"
.Display
.HTMLBody = Mess + .HTMLBody
End With
Set WrdEdit = Messager.ActiveInspector.WordEditor
WrdEdit.Application.Selection.Paste
Set WrdEdit = Nothing
Set Messager = Nothing
Set Mail = Nothing
ActiveWorkbook.Close SaveChanges:=False
End Sub
但我不知道爲什麼我會通過檢查(這我不知道的知識),如果我在獲取剪貼板中的圖像正在取得成功。
我試圖用這個: '| newMail.Attachments.Add(@「E:\ C#\#項目XX \資源\ bitmap1.jpg,Outlook.OlAttachmentType.olEmbeddeditem,1, Type.Missing);' 和消息發送空的身體,用附加的文件,而它是在MSDN來源指定它把附着於機身頂部 我不明白這一點。 。 –