2008-11-14 2 views
1

У меня есть контент, который я должен отображать как файл excel в браузере. Я смог отобразить содержимое сетки, чтобы преуспеть с приведенным ниже кодом.Рендеринг Excel из браузера

Response.Clear(); 
    Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); 
    Response.Charset = ""; 
    Response.ContentType = "application/vnd.xls"; 
    System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter htmlWrite = 
    new HtmlTextWriter(stringWrite); 
    GridView1.RenderControl(htmlWrite); 
    htmlWrite.Write(stringWrite); 
    Response.Write(stringWrite.ToString()); 
    Response.End(); 

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

Я имею в виду, когда пользователь открывает предел, он должен иметь возможность видеть изображение в нем.

Можно ли преобразовать изображение в формат base64sting и поместить его в excel?

Пожалуйста, дайте мне знать, если у вас есть идея, подобная этому.

Благодаря Винод Т.

ответ

2

Я использовал тот же самый вид хаков, чтобы получить данные сетки (HTML маркированный) в Excel.

Если это HTML данные, которые вы пишете там, просто добавьте < IMG SRC = "MYFILENAME.JPG> в HTML-текст, где вы хотите изображения.

Что произойдет, то, что Excel спросит сервер (asp.net приложение) для этого файла

Вы, возможно, придется добавить полный путь к изображению < IMG SRC = "HTTP:. //myserver/subpath/MYFILENAME.JPG >

Использование пакета сниффер, я подтвердил, что Excel на деле попросит файл IMG, поэтому просто сделайте su вы поместили изображение в готовность к загрузке. (либо как поток asp.net), либо физически.

Мой тестовый HTML.
< HTML>
< стол>
< тр> < тд> Тест </TD> < TD> тест </тд < тд> Тест </TD> </TR>
< тр> < тд> тест </тд> < тд> тест </TD> < TD> тест </TD> </TR>
< тр> < тд> тест </TD> < тд> тест </тд> < тд> < IMG SRC = "HTTP: //myserver/LALLAALLAA.jpg"> </TD> </тр>
</стол>
</html>

Если ТОЛЬКО изображение, это то же самое, что и без табличных меток. Просто HTML и IMG тег.

+0

спасибо вам большое ... это работает ... моя следующая задача состоит в том, чтобы сделать многостраничный файл первенствовать ... Вы можете, пожалуйста, дайте мне знать некоторые идеи, если вы уже пробовали что-то подобное раньше? – Vinodtiru 2008-11-14 15:34:57

0

Ох. Еще одним сложным способом было бы создать файл .MHT-файла (webarchive). Они содержат как HTML, так и изображения, встроенные в один и тот же файл. Таким образом у вас будет только один поток. Но я не знаю, узнает ли Excel контент MHT и покажет его.

0

Документы Office 2007 (Word, PowerPoint и Excel) основаны на форматах OpenXML. Это всего лишь файлы zip с кучей XML и двоичных частей (например, изображений) внутри. Вы можете создать их с любым из классов XML в Framework, а затем поместить их вместе с API упаковки (System.IO.Packaging в WindowsBase.dll).

За дополнительной информацией обратитесь к OpenXMLDeveloper.org.

Смежные вопросы