C # Excel 2007 Ошибка - PullRequest
       3

C # Excel 2007 Ошибка

0 голосов
/ 22 декабря 2010

У меня есть простой код, подобный этому. Этот код просто экспортирует gridwiev в файл Excel ..

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=cat5.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254");
//Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.Charset = "windows-1254";
//Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.ContentType = "application/vnd.ms-excel";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

Но в нашей компании некоторые пользователи используют Excel 2003, некоторые используют Excel 2007. Когда я запускаю этот код, Excel 2003 не вызывает проблем. Но в Excel 2007 есть некоторые проблемы, подобные этим рисункам.

alt text alt text

Как я могу решить эту проблему? У кого-нибудь есть идеи?

С наилучшими пожеланиями, Soner.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Я считаю, что это сделано специально (в Excel 2007): см. http://blogs.msdn.com/b/vsofficedeveloper/archive/2008/03/11/excel-2007-extension-warning.aspx

Возможный обходной путь: создание файла CSV на сервере (но при этом форматирование будет потеряно) или создание файла Excel.(с использованием автоматизации Excel или стороннего инструмента).

0 голосов
/ 14 марта 2014

попробуйте удалить эту строку:

Response.ContentEncoding = System.Text.Encoding.GetEncoding ("windows-1254");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...