#asp.net #devexpress #export-to-excel #aspxgridview
#asp.net #devexpress #экспорт в Excel #aspxgridview
Вопрос:
Можно ли экспортировать ASPxGridView со столбцом, содержащим многострочный текст, в Excel с помощью ASPxGridViewExporter?
У меня есть ASPxGridView со столбцом, который содержит многострочный текст. Когда я экспортирую данные сетки с помощью ASPxGridViewExporter, многострочный текст отображается как одна строка (без разрывов строк).
Я пробовал как <br/>, так и «n» (перевод строки) в качестве разделителей строк.
кстати, значение свойства PropertiesTextEdit-EncodeHtml для этого столбца равно false.
Спасибо
Ответ №1:
Есть 2 способа достичь того, что вы ищете:
-
Укажите тип экспорта WYSIWYG в XlsxExportOptionsEx:
XlsxExportOptionsEx options = new XlsxExportOptionsEx() { ExportType = DevExpress.Export.ExportType.WYSIWYG }; ASPxGridView1.ExportToXlsx("Test.xlsx", options);
-
Сообщите экспортеру, что вы хотите экспортировать данные, и обработайте событие CustomizeCell, чтобы установить для переноса ячеек значение true:
XlsxExportOptionsEx options = new XlsxExportOptionsEx() { ExportType = DevExpress.Export.ExportType.DataAware }; options.CustomizeCell = options_CustomizeCell; void options_CustomizeCell(DevExpress.Export.CustomizeCellEventArgs e) { e.Formatting.Alignment = new XlCellAlignment() { WrapText = true }; e.Handled = true; }
Затем используйте объект customized options для экспорта.
Смотрите: https://www.devexpress.com/Support/Center/Question/Details/T381176
Существует также событие RenderBrick, которое иногда может быть полезным. Вы можете обработать это следующим образом:
gveExporter.RenderBrick = gveExporter_RenderBrick;
void gveExporter_RenderBrick(object sender, DevExpress.Web.ASPxGridViewExportRenderingEventArgs e)
{
...
StringFormat sFormat = new StringFormat(StringFormatFlags.NoWrap);
BrickStringFormat brickSFormat = new BrickStringFormat(sFormat);
e.BrickStyle.StringFormat = brickSFormat;
...
}
Но я не нашел, как на самом деле принудительно перенести туда ячейку, потому что StringFormatFlags имеет только NoWrap среди подходящих элементов. По моему опыту, в экспортированном документе Excel у меня был длинный текст, переносящий ячейки, поэтому я использовал RenderBrick, чтобы отключить этот перенос.
Надеюсь, это поможет.
Комментарии:
1. Работает для меня. Спасибо.