Как встроить содержимое листа Excel в электронное письмо в C #? - PullRequest
1 голос
/ 23 мая 2009

У меня есть код C #, который отправляет электронное письмо. В теле письма я хочу отправить содержимое листа Excel.

Один из способов сделать это - создать HTML-таблицу со строками HTML для каждой записи в файле Excel и вставить этот HTML-код в тело письма.

Есть ли более простой способ сделать это? Что-то, где я могу просто указать путь к листу Excel, и таблица будет скопирована непосредственно в тело письма?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 23 мая 2009

Самым простым является использование метода Workbook.SendMail ().

Пример кода:

Excel.Workbook myWorkbook = xlApp.Workbooks["Book1.xls"];

string recipients = "johndoe@email.com";
string subject = "Proposal for Review";
bool returnReceipt = false;

myWorkbook.SendMail(recipients, subject, returnReceipt);

Обратите внимание, что параметр recipients на самом деле имеет тип System.Object, поэтому переданный аргумент может быть string[], если у вас несколько получателей.

Источники:

(1) http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.sendmail(VS.80).aspx

(2) http://msdn.microsoft.com/en-us/library/bb178034.aspx

Возможно, вы также захотите взглянуть на отправки Рона де Брейна с помощью подхода CDO , но метод Workbook.SendMail () действительно самый простой.

Надеюсь, это поможет ...

Mike

0 голосов
/ 23 мая 2009

он не встроен, но вы можете попробовать класс вложения: http://msdn.microsoft.com/en-us/library/system.net.mail.attachment.aspx

альтернативы - использовать сторонний элемент управления Excel, чтобы открыть его, скопировать данные и вставить его в сообщение.

0 голосов
/ 23 мая 2009

Полагаю, вы хотите сделать это изначально в c #.

Я думаю, что вам лучше всего использовать Office Automation в C #, чтобы сохранить электронную таблицу в формате HTML. Затем вы можете открыть этот файл с помощью объекта StreamReader и вставить текст в текст вашего сообщения.

В Microsoft есть статья по автоматизации Excel с примерами кода, с которых можно начать:

Как автоматизировать Microsoft Excel из Microsoft Visual C # .NET http://support.microsoft.com/kb/302084

0 голосов
/ 23 мая 2009

Вы можете попробовать сделать это через соединение ADODB с таблицей Excel. http://support.microsoft.com/kb/306023

  1. Открыть набор записей на листе Excel
  2. Вызовите recordset.GetString (http://www.devguru.com/technologies/ado/quickref/recordset_getstring.html).). Это выгрузит содержимое листа в строку.

Это может быть короче (по длине) кода, который вы запланировали, что, вероятно, связано с автоматизацией Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...