Вопрос

Я использую следующий код для отображения 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 каким-либо другим методом...моим "отступлением" было бы написать символ "#" перед каждой непустой записью в этом столбце, надеясь, что это заставит интерпретировать столбец как текст, а не как число.Однако, к сожалению, это не идеальное решение.

Это было полезно?

Решение

Вместо символа # перед каждой непустой записью в этом столбце вы могли бы использовать апостроф.Это преобразует его в текст.Другой возможный подход - прикрепить макрос с информацией о формате столбца, но я не уверен, возможно ли это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top