ASP.NET - Рендеринг Gridview в формат HtmlTextWriter - XLS - Column
-
06-07-2019 - |
Вопрос
Я использую следующий код для отображения gridview в XLS-файл на ASPX-странице:
Private Sub ExportGridviewToExcel()
Dim attachment As String = "attachment; filename=ItemSizeExport.xls"
Response.ClearContent()
Response.AddHeader("content-disposition", attachment)
Response.ContentType = "application/ms-excel"
Dim sw As New StringWriter()
Dim htw As New HtmlTextWriter(sw)
GV_Item_Data.RenderControl(htw)
Response.Write(sw.ToString())
Response.End()
End Sub
Один из столбцов обычно равен нулю, но иногда содержит довольно длинное целое число, такое как 2342515123332222 ..это номер типа штрих-кода...так что никакой математики с ним никогда делать не нужно.
Короче говоря, XLS превращает это в значение с плавающей запятой, а это бесполезно для конечного пользователя.(~23432E18)
Есть ли какой-нибудь способ заставить этот столбец в XLS быть строкой?
Я не хочу генерировать XLS каким-либо другим методом...моим "отступлением" было бы написать символ "#" перед каждой непустой записью в этом столбце, надеясь, что это заставит интерпретировать столбец как текст, а не как число.Однако, к сожалению, это не идеальное решение.
Решение
Вместо символа # перед каждой непустой записью в этом столбце вы могли бы использовать апостроф.Это преобразует его в текст.Другой возможный подход - прикрепить макрос с информацией о формате столбца, но я не уверен, возможно ли это.