Возникли проблемы при отправке документа Excel (преобразованного в HTML / PHP) в электронную почту с помощью функции mail () - PullRequest
0 голосов
/ 31 июля 2011

Я конвертировал электронную таблицу Excel в PHP (используя save as HTML для преобразования .xls в «туда-обратно» HTML), чтобы можно было заполнять электронную таблицу данными, которые были заполнены с использованием формы HTML и сохранены в базе данных.Эта часть проекта работает нормально (хотя все еще нуждается в улучшении).

К сожалению, я столкнулся с двумя проблемами (но они связаны друг с другом).Во-первых, когда я преобразовал документ в HTML, он создал много CSS-кода, который необходим для того, чтобы документ HTML выглядел идентично оригинальному документу Excel при просмотре или печати.Проблема в том, что CSS ужасно раздувает код.Так есть ли способ переместить весь этот CSS во внешнюю таблицу стилей и при этом ссылаться на него, когда я отправляю код через функцию mail ()?Это подводит меня ко второму вопросу.

Вот ссылка на код в jsfiddle:

http://jsfiddle.net/tyleryoungblood/KzzWR/

И вот как это выглядит ((Примечание: ни один изданные заполняются, потому что они не могут подключиться к базе данных, и даже если это возможно, код PHP не отображается в jsfiddle):

http://jsfiddle.net/tyleryoungblood/KzzWR/embedded/result/

Как отправить всеэтот код по электронной почте, чтобы получатель письма получил код в виде прикрепленного документа?Предпочтительно документ будет преобразован обратно в рабочий документ Excel, но я понимаю, что это может быть натяжкой.Таким образом, прикрепленная страница HTML или PHP (которая выглядит точно так же, как исходный документ Excel), которая может быть просмотрена и распечатана, также будет приемлемым окончательным форматом.Я бы предпочел, чтобы HTML-код был включен в качестве прикрепленного документа, а не отображался непосредственно внутри электронного письма.

Цель состоит в том, чтобы преобразовать устаревшую систему бухгалтерского учета из бумажной системы в электронную систему.В настоящее время сотрудники должны заполнить таблицу Excel с указанием своего пробега и расходов, распечатать ее и отправить по почте в бухгалтерию.Я пытаюсь обновить этот процесс, чтобы сотрудник оплачивал свои расходы на веб-странице, а затем отправлял форму в электронном виде, нажимая кнопку «отправить в бухгалтерию».Обычно я просто отправляю значения формы в электронном письме (как вы делаете с контактной формой), но бухгалтерия не хочет менять свою систему учета.Они хотят, чтобы данные выглядели идентично тому, как они всегда выглядят - как печатные таблицы Excel.Вот почему я создал PHP-версию страницы Excel, которая автоматически заполняется (через базу данных, которая была заполнена через форму HTML).Теперь мне просто нужно выяснить, как это можно по электронной почте напрямую в бухгалтерию.

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 31 июля 2011

Технически вложение электронной почты - это только часть данных электронной почты, которая отделена от остальных границей содержимого MIME и имеет собственные заголовки.Я уверен, что есть некоторая библиотека php, которая поможет со всем этим (к сожалению, я не знаю ни одной сразу, но она должна существовать).

Вы можете проверить структуру электронного письма в своем почтовом клиенте - обычно есть опция «просмотреть исходный код» или что-то подобное.Обычно вы видите собственное содержание письма в виде html и обычного текста (первые 2 раздела MIME), и если есть какие-либо вложения, они будут в следующих разделах.

В любом случае, еслиЕсли вы хотите отправить отчет, который не предназначен для редактирования, и выглядит как печатный документ, тогда я бы сказал, что вместо этого вам следует использовать файл PDF.В конце концов, для этого и нужен PDF.В качестве альтернативы вы можете использовать HTML с внешним CSS-файлом в качестве содержимого самого письма.Тогда бухгалтерия просто увидит лист прямо в своем почтовом клиенте, без необходимости открывать вложение в Excel.

Если вы действительно хотите вложение, и оно должно открываться в Excel, я бы вместо этого использовал XMLHTML.Excel может экспортировать в XML, так как это просто представление данных, в то время как HTML включает в себя все, что нужно, чтобы включить все в HTML.Кроме того, я не знаю, сможет ли Excel определить, открывать ли HTML-файл с помощью внешнего CSS-файла.

Если вы хотите пойти по пути XML, вы можете сделать это: сохранить файл Excel в формате XML ивзгляните на содержимое файла.Там все еще будет много дополнительных данных, но большая их часть не имеет смысла, поэтому посмотрите, сколько вы можете избавиться, пока Excel больше не откроет их правильно.Тогда у вас есть хороший шаблон для работы.Нетрудно понять, как все это сочетается.В конце концов, вы должны получить файл, который можно легко прочитать в Excel, а не что-то, что нужно конвертировать из HTML.

Я знаю, что это не совсем ответ, но, возможно, он может дать вамнекоторые идеи

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