Проблема с форматированием длинной строки объекта с возможностью экспорта данных в лист Excel

#excel #asp.net-mvc #vb.net #datatable

#excel #asp.net-mvc #vb.net #datatable

Вопрос:

У меня возникают некоторые проблемы при экспорте DataTable в Excel, у меня есть ячейка, содержащая максимум. 20 символов в виде строки. Когда я получаю файл Excel, он отображается как научный формат, но я хочу показать все строковое значение внутри ячейки.

введите описание изображения здесь

Вот мой код, используемый для заполнения потоков данных и столбцов данных:

 Dim sheet As New System.Data.DataTable("teste")
        sheet.Columns.Add("DDebut")
        sheet.Columns.Add("Nbrecheance")
        Dim col As DataColumn = New DataColumn(" Reference ", GetType(String))
        col.MaxLength = 25
        sheet.Columns.Add(col)

sheet.Rows.Add(line.CCP_acct, line.ccp_cle, line.nom, line.prenom, line.mt_prelev, Param.ccp_abc, Param.key_abc, date_prelev, line.nbr_ech, Format(id_ref))
  

Затем код, используемый для экспорта объекта DataTable в Excel

 Dim sheet As New DataTable
        Dim export_data As New DataBaseManager
        sheet = export_data.Exportallertoexcel(id)
        Dim file_name As String = New String("reportprelevemntN°"   id.ToString()   ".xls")
        Dim grid As New GridView
        grid.DataSource = sheet
        grid.DataBind()

        Response.ClearContent()
        Response.Buffer = True
        Response.AddHeader("content-disposition", "attachment; filename="   file_name)
        Response.ContentType = "application/ms-excel"
        Response.Charset = ""
        Dim sw As New StringWriter
        Dim htw As New HtmlTextWriter(sw)

        grid.RenderControl(htw)

        Response.Output.Write(sw.ToString())
        Response.Flush()
        Response.End()
  

Моя проблема связана с последним столбцом Reference , я пытался использовать FormatNumber и добавлять стили в метод Format, такие как «#» и «0», без какого-либо результата.

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

Комментарии:

1. Это происходит потому, что Excel пытается определить тип из значения ячейки. Поскольку вы вводите двадцать цифровых цифр, предполагается, что вам нужен тип number. вы видите научное обозначение, потому что число такое длинное. Если вы расширите ячейку, вы должны увидеть исходное число. Вы можете принудительно преобразовать ячейку в текст, добавив к значению начальную ‘. Это сообщает Excel, что вы хотите, чтобы значение интерпретировалось как текст.

2. и как это сделать с объектом DataTable?