Экспорт данных со страницы SQL asp. net в Excel обрезает данные для символа < - PullRequest
0 голосов
/ 26 мая 2020

Мы успешно экспортируем данные из системы asp. net в файл Excel. Однако мы столкнулись с одной проблемой. Если в тексте экспортируемых данных есть оператор «<» (меньше), excel обрезает текст под этим знаком. </p>

Например, , без одинарных кавычек '' вокруг меньше знака (нужно было поместить их сюда, чтобы отобразить знак):

Если текст, который мы экспортируем, читался как « Стоимость проекта составляла '<' 5000 долларов США, а выгода намного превышала затраты </strong> «

, единственная часть, которая будет импортирована в Excel, будет:« Стоимость проекта составляла »

Однако, когда мы просматриваем точно такое же поле которые мы экспортируем в самой системе asp. net, мы видим всю строку текста « Стоимость проекта составляла« <'5000 долларов США, а выгода намного превышала затраты </strong> »

Есть ли у кого-нибудь идеи о том, как экспортировать всю строку текста (ie: иметь возможность отображать специальные символы) без усечения текста в Excel?

Отложенный код для настройки файла Excel

                Response.Buffer = true;
                Response.ContentType = "application/vnd.ms-excel ";
                Response.AddHeader("content-Disposition", "attachment;filename=" +
                    SessionInfo.CurrentComplete + RepType + ".xls");
                Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">");
                Response.Charset = "UTF-8";

Код для настройки e Поля xcel

                        switch (defrow["DataType"].ToString())
                        {
                            case "image":
                                System.Web.UI.WebControls.Image imgPS = new System.Web.UI.WebControls.Image();
                                imgPS.ImageUrl = datarow[defrow["ColumnName"].ToString()].ToString();
                                imgPS.Height = 15;
                                imgPS.Width = 15;
                                tCell.Controls.Add(imgPS);
                                tCell.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;
                                break;
                            case "date":
                                convertedDate = Convert.ToDateTime(datarow[defrow["ColumnName"].ToString()].ToString());
                                tCell.Text = convertedDate.ToString("d MMM yyyy");
                                break;
                            case "comment":
                                tCell.Text = datarow[defrow["ColumnName"].ToString()].ToString();
                                tCell.Width = 300;
                                break;
                            case "longtext":
                                tCell.Text = RemoveHtmlTag(datarow[defrow["ColumnName"].ToString()].ToString()); 
                                tCell.Width = 500;
                                break;
                            case "shorttext":
                                tCell.Text = datarow[defrow["ColumnName"].ToString()].ToString();
                                tCell.Width = 250;
                                break;
                            default:
                                tCell.Text = datarow[defrow["ColumnName"].ToString()].ToString();
                                break;
                        }

SQL Запрос, используемый для получения данных для отображения информации в основной таблице, используемой в самой системе asp. net, а также для основного экспорта, показанного здесь.

        string sql = "SELECT * " + rights +
                     "from table_information " + condition + sortorder;

Все идеи приветствуются.

1 Ответ

0 голосов
/ 26 мая 2020
  1. Если ваш текст содержит одинарные / двойные кавычки, вам нужно заключить каждую кавычку в двойные кавычки. Тогда он также сохранит двойные кавычки.

Попробуйте изменить текст с

"The cost of the project was '<'$5,000 and the benefit far outweighed the cost"

на

"The cost of the project was "'<"'$5,000 and the benefit far outweighed the cost"
Также нет необходимости в одинарных кавычках как таковых. Не могли бы вы также попробовать заменить с помощью своего кода текст с -
"The cost of the project was '<'$5,000 and the benefit far outweighed the cost"

на

"The cost of the project was &lt;$5,000 and the benefit far outweighed the cost"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...