Стратегия экспорта в Excel с форматированием из ASP.NET? - PullRequest
0 голосов
/ 07 апреля 2010

Так что это еще один вопрос экспорта в Excel.

У меня есть страница с таблицей форматирования по таблице стилей. Когда я экспортирую страницу, задав ContentType для application / excel и Content-Disposition для вложения, я могу экспортировать таблицу в Excel (не CSV). Тем не менее, он теряет все форматирование. Я думаю, это потому, что Excel не загружает CSS, и я думаю, что это разумно.

Итак, в сценарии, где мне нужно показать таблицу в Интернете, а также экспортировать в Excel, с одинаковым (даже если не точным) форматированием, какой будет наилучший подход без использования чего-то вроде NPOI?

Я пытаюсь свести к минимуму работу и сохранить единый шаблон, если это возможно. Нужно ли мне создавать два отдельных шаблона: один со таблицей стилей, другой со встроенным стилем в самой таблице для Excel?

Наличие одного шаблона с условным форматированием внутри было бы очень грязно.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 27 мая 2010

Если вы еще не решили проблему, я рекомендую вам использовать Open XML SDK 2.0 для Microsoft Office (см. http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&displaylang=en).. Таким образом, вы сможете создать файл XLSX без установки Excel на сервер. XLSX-файл - это сжатый (как ZIP-файл) набор XML-файлов. Open XML SDK 2.0 помогает создавать и изменять XLSX-файлы как чистые XML-файлы. В первый раз, если вы посмотрите на Open XML SDK, многие вещи выглядят странно, но это только начало. Есть так называемый «Инструмент повышения производительности Open XML SDK 2.0» (часть Open XML SDK 2.0), который может генерировать много полезного кода для вас. Более того, вы можете создать хороший документ Excel, который вы можете использовать в качестве прототипа (шаблона) документа, который вы создадите. Таким образом, вы можете решить проблему сложного форматирования без написания большого количества кода.

Посмотрите http://msdn.microsoft.com/en-us/library/cc850837(v=office.14).aspx для некоторых примеров и http://openxmldeveloper.org/default.aspx. См. Также Создание документа Excel с OpenXml SDK 2.0 в качестве начального примера. На http://www.codeplex.com вы также найдете много полезных материалов об Open XML SDK

0 голосов
/ 08 апреля 2010

Вы можете создать отчет (файл rdlc), похожий на сетку.Затем вы можете выполнить действие, в котором вы создадите экземпляр LocalReport , передадите ему нужные данные и вызовете метод Render.Затем вы возвращаете байтовый массив, возвращенный методом Render.

0 голосов
/ 08 апреля 2010

Есть несколько подходов Вы можете создать экземпляр объекта Excel на своем сервере с помощью VSTO, а затем записать документ в память и записать в ответ исходный файл, но этот подход может быть немного дорогим, если вы создаете объект Excel для запроса, поэтому вы можете попытаться сделать одноэлементный объект, который оборачивает экземпляр объекта Excel

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