Alex2 101 Ответов: 1

Как решить проблему значения при экспорте из набора данных в excel с помощью datagrid?


У меня возникла проблема с банковским идентификатором (скажем, 019,024 и т. д.), приходящим как 19,24 при экспорте данных в excel из набора данных. Также экспоненциальный формат 1.23457 E+15 подходит для больших целых чисел.Я использую datagrid.

Что я уже пробовал:

dt = ds.Tables[0];

                   grdExport.DataSource = dt;
                   grdExport.DataBind();
                   Response.Clear();
                   Response.AddHeader("content-disposition", "attachment;   filename=" + strReportName + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");

                   Response.Charset = "";
                   Response.ContentType = "application/vnd.xls";

                   System.IO.StringWriter stringWrite = new System.IO.StringWriter();

                   System.Web.UI.HtmlTextWriter htmlWrite =
                   new HtmlTextWriter(stringWrite);

                   grdExport.RenderControl(htmlWrite);

                   string strHead = strReportName;
                   StringBuilder strbn = new StringBuilder();
                   strbn.Append("<div style='text-align:center;font-weight:bold;background-color:White; width:100%;font-size:large'> " + strHead + "</div>");
                   strbn.Append(stringWrite.ToString());

                   Response.Write(strbn);
                   Response.Flush();
                   Response.Close();

1 Ответов

Рейтинг:
1

Jochen Arndt

Это связано с тем, что Excel использует автоматическое определение типов ячеек, а ваши данные интерпретируются как числа.

В зависимости от метода экспорта могут быть найдены решения вашей проблемы.

Но вы создаете не файл Excel, а HTML-файл. Excel может читать HTML-файлы с таблицами (сетка будет преобразована в HTML-таблицу) и преобразовывать таблицу в лист. Поэтому вы должны использовать расширение файла и тип MIME не для файлов Excel, а для HTML-файлов.

При импорте HTML таблиц с помощью Excel существует решение указать что определенные столбцы содержат текстовые данные: Форматировать ячейку таблицы HTML так, чтобы Excel форматировался как текст? - переполнение стека[^].

Это требует реализации собственного HTML-экспорта для добавления необходимого стиля в ячейки таблицы. Но это не должно быть проблемой, чтобы сделать это, повторяя ваши наборы записей.