Мы успешно экспортируем данные из системы 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;
Все идеи приветствуются.