#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?