<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Дмитрий Цой: жизненно</title>
	<atom:link href="http://dimants.ru/feed" rel="self" type="application/rss+xml" />
	<link>http://dimants.ru</link>
	<description>о жизни, вебе, друзьях, семье и многом другом...</description>
	<pubDate>Wed, 16 Sep 2009 15:13:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Без темы</title>
		<link>http://dimants.ru/archives/283</link>
		<comments>http://dimants.ru/archives/283#comments</comments>
		<pubDate>Wed, 16 Sep 2009 15:12:57 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://dimants.ru/?p=283</guid>
		<description><![CDATA[Я, конечно, презираю Отечество мое с головы до ног – но мне досадно, если иностранец разделяет со мной это чувство.
А.С. Пушкин
]]></description>
			<content:encoded><![CDATA[<p>Я, конечно, презираю Отечество мое с головы до ног – но мне досадно, если иностранец разделяет со мной это чувство.</p>
<p><i>А.С. Пушкин</i></p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/283/feed</wfw:commentRss>
		</item>
		<item>
		<title>Чебурашка и Гена на японском</title>
		<link>http://dimants.ru/archives/282</link>
		<comments>http://dimants.ru/archives/282#comments</comments>
		<pubDate>Thu, 23 Jul 2009 11:34:43 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://dimants.ru/archives/282</guid>
		<description><![CDATA[Аригато, Чебурашка!

Очень смешно смотреть знакомые с детства мультики в таком переводе  
Кстати, ни у кого нет английской версии “Москва слезам не верит”? или хотя бы с субтитрами?
]]></description>
			<content:encoded><![CDATA[<p>Аригато, Чебурашка!</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ZeKPIn8vvLs&amp;hl=ru&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ZeKPIn8vvLs&amp;hl=ru&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Очень смешно смотреть знакомые с детства мультики в таком переводе <img src='http://dimants.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Кстати, ни у кого нет английской версии “Москва слезам не верит”? или хотя бы с субтитрами?</p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/282/feed</wfw:commentRss>
		</item>
		<item>
		<title>Трэш</title>
		<link>http://dimants.ru/archives/280</link>
		<comments>http://dimants.ru/archives/280#comments</comments>
		<pubDate>Wed, 01 Jul 2009 08:12:25 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://dimants.ru/archives/280</guid>
		<description><![CDATA[Я надеюсь, что ролик ниже не является показателем развития современного российского общества. Всем must see&#160; и стараться ответить на вопросы!    
 
]]></description>
			<content:encoded><![CDATA[<p>Я надеюсь, что ролик ниже не является показателем развития современного российского общества. Всем must see&#160; и стараться ответить на вопросы!    </p>
<p> <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WoZ0stPq0Fw&amp;hl=ru&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/WoZ0stPq0Fw&amp;hl=ru&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/280/feed</wfw:commentRss>
		</item>
		<item>
		<title>Amsterdam Oud-West</title>
		<link>http://dimants.ru/archives/279</link>
		<comments>http://dimants.ru/archives/279#comments</comments>
		<pubDate>Mon, 15 Jun 2009 09:25:31 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Амстердам]]></category>

		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<category><![CDATA[Фотографии]]></category>

		<guid isPermaLink="false">http://dimants.ru/archives/279</guid>
		<description><![CDATA[В соответствии со статьей в педивикии (http://en.wikipedia.org/wiki/Amsterdam_Oud-West) в районе, в котором мы живем, проживают представители 177 национальностей.
И до кучи ссылка на вид нашей улицы на Google Maps.
]]></description>
			<content:encoded><![CDATA[<p>В соответствии со статьей в педивикии (<a href="http://en.wikipedia.org/wiki/Amsterdam_Oud-West" target="_blank">http://en.wikipedia.org/wiki/Amsterdam_Oud-West</a>) в районе, в котором мы живем, проживают представители 177 национальностей.</p>
<p>И до кучи <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=ru&amp;geocode=&amp;q=Kanaalstraat+132,+1054+Amsterdam,+The+Netherlands&amp;sll=52.376672,4.899493&amp;sspn=0.009025,0.017896&amp;ie=UTF8&amp;z=16&amp;iwloc=A&amp;layer=c&amp;cbll=52.361598,4.860987&amp;panoid=CJL0K0zK31EWSWEqqctAjg&amp;cbp=12,62.27,,0,-4.82" target="_blank">ссылка</a> на вид нашей улицы на Google Maps.</p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/279/feed</wfw:commentRss>
		</item>
		<item>
		<title>Рок над волгой</title>
		<link>http://dimants.ru/archives/277</link>
		<comments>http://dimants.ru/archives/277#comments</comments>
		<pubDate>Fri, 12 Jun 2009 08:34:20 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<category><![CDATA[Отдых]]></category>

		<category><![CDATA[Самара]]></category>

		<guid isPermaLink="false">http://dimants.ru/?p=277</guid>
		<description><![CDATA[собственно мероприятие: http://www.rocknadvolgoi.ru/
поделюсь ссылкой по поводу транспорта&#160;http://community.livejournal.com/samara_ru/2811570.html.
Подумайте, вам точно туда надо?
]]></description>
			<content:encoded><![CDATA[<p>собственно мероприятие: <a href="http://www.rocknadvolgoi.ru/">http://www.rocknadvolgoi.ru/</a></p>
<p>поделюсь ссылкой по поводу транспорта&nbsp;<a href="http://community.livejournal.com/samara_ru/2811570.html">http://community.livejournal.com/samara_ru/2811570.html</a>.</p>
<p>Подумайте, вам точно туда надо?</p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/277/feed</wfw:commentRss>
		</item>
		<item>
		<title>Евровидение 2009, полуфинал 2</title>
		<link>http://dimants.ru/archives/273</link>
		<comments>http://dimants.ru/archives/273#comments</comments>
		<pubDate>Thu, 14 May 2009 20:31:34 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Евровидение]]></category>

		<category><![CDATA[Обо всем]]></category>

		<category><![CDATA[Отдых]]></category>

		<guid isPermaLink="false">http://dimants.ru/archives/273</guid>
		<description><![CDATA[Мне кажется, что выступление Нидерландов (а именно группы The Toppers) является ярким примером неудачного выступления представителей сексуальных меньшинств  Нам больше всего понравились девушка из Азербайджана (скорее девушка, чем песня:)) и задорный норвежский белорус.
]]></description>
			<content:encoded><![CDATA[<p>Мне кажется, что выступление Нидерландов (а именно группы The Toppers) является ярким примером неудачного выступления представителей сексуальных меньшинств <img src='http://dimants.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Нам больше всего понравились девушка из Азербайджана (скорее девушка, чем песня:)) и задорный норвежский белорус.</p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/273/feed</wfw:commentRss>
		</item>
		<item>
		<title>Для кросс-постинга</title>
		<link>http://dimants.ru/archives/271</link>
		<comments>http://dimants.ru/archives/271#comments</comments>
		<pubDate>Thu, 16 Apr 2009 16:59:52 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://dimants.ru/?p=271</guid>
		<description><![CDATA[Теперь у меня есть персональная страница на Я.ру — Дмитрий Цой!Я.ру - это новый сервис Яндекса, на котором делятся с друзьями самым интересным, знакомятся, дружат или ссорятся, вывешивают фотки, комментируют свои, чужие записи, обмениваются ссылками и рассказывают о своем настроении.
]]></description>
			<content:encoded><![CDATA[<p>Теперь у меня есть персональная страница на Я.ру — <b><span class="b-yauser"><a href="http://dmitriTsoy.ya.ru/"><span style="color:#f00;">Д</span>митрий Цой</a></span></b>!<br /><img src="http://bs.yandex.ru/resource/spacer.gif?sign=21616339.20327450.1239901021.c097c0f5f1429b40b73e721e9931e97f" width="1" height="1" /><br /><small>Я.ру - это новый сервис Яндекса, на котором делятся с друзьями самым интересным, знакомятся, дружат или ссорятся, вывешивают фотки, комментируют свои, чужие записи, обмениваются ссылками и рассказывают о своем настроении.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/271/feed</wfw:commentRss>
		</item>
		<item>
		<title>Процедура знакомства</title>
		<link>http://dimants.ru/archives/270</link>
		<comments>http://dimants.ru/archives/270#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:00:11 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Амстердам]]></category>

		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://dimants.ru/archives/270</guid>
		<description><![CDATA[Типичная процедура знакомства с голландцем (американцем, итальянцем, французом и т.д.): 
Он: Привет, я – Джон Смит (Вася Пупкин, Карл Маркс и т.д.).    Я: Привет, я – Дмитрий.     Он: Дмитрий, ты откуда (из какой страны)?     Я: Россия (гордо так)!     Он: &#8230;пауза&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Типичная процедура знакомства с голландцем (американцем, итальянцем, французом и т.д.): </p>
<p>Он: Привет, я – Джон Смит (Вася Пупкин, Карл Маркс и т.д.).    <br />Я: Привет, я – Дмитрий.     <br />Он: Дмитрий, ты откуда (из какой страны)?     <br />Я: Россия (гордо так)!     <br />Он: &#8230;пауза&#8230; Да ты наверное из восточной части России (варианты: у тебя монгольские корни? / просто недоверчивый взгляд и ожидание шутки / я представлял себе русских немного иначе) </p>
<p>И каждый раз мне приходится углубляться в историю моей семьи и объяснять аборигену, как так получилось. И что странно, в Нидерландах 20% жителей имеют индонезийские корни, еще 20% турецкие, еще 20% марокканские, а поверить в то, что в России такое тоже возможно никто не может. Наверное, Россия для европейцев все еще кажется чем-то монолитным и однородным, как было (или казалось, что было) в советские времена. </p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/270/feed</wfw:commentRss>
		</item>
		<item>
		<title>Топ-10 бельгийского пива</title>
		<link>http://dimants.ru/archives/269</link>
		<comments>http://dimants.ru/archives/269#comments</comments>
		<pubDate>Mon, 23 Mar 2009 15:19:45 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[Амстердам]]></category>

		<category><![CDATA[Жизненно]]></category>

		<category><![CDATA[Обо всем]]></category>

		<category><![CDATA[Отдых]]></category>

		<category><![CDATA[Пиво]]></category>

		<guid isPermaLink="false">http://dimants.ru/archives/269</guid>
		<description><![CDATA[Не могу не поделиться ссылкой: http://zapizki.blogspot.com/2009/03/belgiyskoe-pivo-top-10.html. Всем читать и облизываться!
]]></description>
			<content:encoded><![CDATA[<p>Не могу не поделиться ссылкой: <a href="http://zapizki.blogspot.com/2009/03/belgiyskoe-pivo-top-10.html">http://zapizki.blogspot.com/2009/03/belgiyskoe-pivo-top-10.html</a>. Всем читать и облизываться!</p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/269/feed</wfw:commentRss>
		</item>
		<item>
		<title>Экспорт содержимого GridView в Excel</title>
		<link>http://dimants.ru/archives/264</link>
		<comments>http://dimants.ru/archives/264#comments</comments>
		<pubDate>Wed, 11 Mar 2009 09:46:23 +0000</pubDate>
		<dc:creator>DimanTS</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[asp.net]]></category>

		<category><![CDATA[Обо всем]]></category>

		<category><![CDATA[Программирование]]></category>

		<guid isPermaLink="false">http://dimants.ru/?p=264</guid>
		<description><![CDATA[Очень часто при разработке веб-приложений на asp.net возникает задача осуществления эскпорта данных из GridView в экселевский файл. При этом каждый начинает придумывать свой велосипед, потому что можно придумать с десяток различных методов как это сделать. Я предлагаю на мой взгляд самый простой вариант. 
Сразу хочу отметить, весь приведенный код написан на VB.NET. Так произошло не [...]]]></description>
			<content:encoded><![CDATA[<p>Очень часто при разработке веб-приложений на asp.net возникает задача осуществления эскпорта данных из GridView в экселевский файл. При этом каждый начинает придумывать свой велосипед, потому что можно придумать с десяток различных методов как это сделать. Я предлагаю на мой взгляд самый простой вариант. </p>
<p>Сразу хочу отметить, весь приведенный код написан на VB.NET. Так произошло не потому, что мне так нравится, а потому что так принято в компании, в которой я работаю. Если вы хотите получить этот код на C#, просто воспользуйтесь онлайн конвертером, например, <a title="http://www.developerfusion.com/tools/convert/vb-to-csharp/" href="http://www.developerfusion.com/tools/convert/vb-to-csharp/">http://www.developerfusion.com/tools/convert/vb-to-csharp/</a>.</p>
<p>Итак, что нам нужно:</p>
<p>1. Вспомогательный класс. Я назвал его ExcelExportHelper. Его код приведен ниже</p>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<pre class="code"><span style="color: blue">Imports </span>System
<span style="color: blue">Imports </span>System.Data
<span style="color: blue">Imports </span>System.Configuration
<span style="color: blue">Imports </span>System.IO
<span style="color: blue">Imports </span>System.Web
<span style="color: blue">Imports </span>System.Web.Security
<span style="color: blue">Imports </span>System.Web.UI
<span style="color: blue">Imports </span>System.Web.UI.WebControls
<span style="color: blue">Imports </span>System.Web.UI.WebControls.WebParts
<span style="color: blue">Imports </span>System.Web.UI.HtmlControls

<span style="color: blue">Public Class </span>ExcelExportHelper

    <span style="color: blue">Public Shared Sub </span>PrepareAndExport(<span style="color: blue">ByVal </span>fileTitle <span style="color: blue">As String</span>, <span style="color: blue">ByVal </span>gv <span style="color: blue">As </span>GridView, <span style="color: blue">ByVal </span>showGrid <span style="color: blue">As Boolean</span>)
        <span style="color: blue">Dim </span>filename <span style="color: blue">As String
        </span>filename = <span style="color: blue">String</span>.Format(<span style="color: #a31515">&quot;{0}_{1}.xls&quot;</span>, fileTitle, DateTime.Now().ToString(<span style="color: #a31515">&quot;yyyyMMdd_HHmmss&quot;</span>))
        gv.AllowPaging = <span style="color: blue">False
        </span>gv.DataBind()
        ExcelExportHelper.Export(filename, gv, showGrid)
    <span style="color: blue">End Sub

    Public Shared Sub </span>Export(<span style="color: blue">ByVal </span>fileName <span style="color: blue">As String</span>, <span style="color: blue">ByVal </span>gv <span style="color: blue">As </span>GridView, <span style="color: blue">ByVal </span>showGrid <span style="color: blue">As Boolean</span>)
        HttpContext.Current.Response.Buffer = <span style="color: blue">True
        </span>HttpContext.Current.Response.ClearContent()
        HttpContext.Current.Response.ClearHeaders()
        <span style="color: green">'HttpContext.Current.Response.ContentType = &quot;application/vnd.ms-excel&quot;
        </span>HttpContext.Current.Response.ContentType = <span style="color: #a31515">&quot;application/ms-excel&quot;
        </span>HttpContext.Current.Response.AddHeader(<span style="color: #a31515">&quot;content-disposition&quot;</span>, <span style="color: #a31515">&quot;attachment;filename = &quot; </span>+ fileName)

        <span style="color: blue">Dim </span>sw <span style="color: blue">As </span>StringWriter = <span style="color: blue">New </span>StringWriter
        <span style="color: blue">Dim </span>htw <span style="color: blue">As </span>HtmlTextWriter = <span style="color: blue">New </span>HtmlTextWriter(sw)
        <span style="color: green">'  Create a form to contain the grid
        </span><span style="color: blue">Dim </span>table <span style="color: blue">As </span>Table = <span style="color: blue">New </span>Table
        <span style="color: blue">If </span>(showGrid) <span style="color: blue">Then
            </span>table.GridLines = gv.GridLines
        <span style="color: blue">Else
            </span>table.GridLines = GridLines.None
        <span style="color: blue">End If

        </span><span style="color: green">'  add the header row to the table
        </span><span style="color: blue">If </span>(<span style="color: blue">Not </span>(gv.HeaderRow) <span style="color: blue">Is Nothing</span>) <span style="color: blue">Then
            </span>PrepareControlForExport(gv.HeaderRow)
            table.Rows.Add(gv.HeaderRow)
        <span style="color: blue">End If
        </span><span style="color: green">'  add each of the data rows to the table
        </span><span style="color: blue">For Each </span>row <span style="color: blue">As </span>GridViewRow <span style="color: blue">In </span>gv.Rows
            PrepareControlForExport(row)
            table.Rows.Add(row)
        <span style="color: blue">Next
        </span><span style="color: green">'  add the footer row to the table
        </span><span style="color: blue">If </span>(<span style="color: blue">Not </span>(gv.FooterRow) <span style="color: blue">Is Nothing</span>) <span style="color: blue">Then
            </span>PrepareControlForExport(gv.FooterRow)
            table.Rows.Add(gv.FooterRow)
        <span style="color: blue">End If
        </span><span style="color: green">'  render the table into the htmlwriter
        </span>table.RenderControl(htw)
        <span style="color: green">'  render the htmlwriter into the response
        </span>HttpContext.Current.Response.Write(sw.ToString)
        HttpContext.Current.Response.End()
    <span style="color: blue">End Sub

    </span><span style="color: green">' Replace any of the contained controls with literals
    </span><span style="color: blue">Private Shared Sub </span>PrepareControlForExport(<span style="color: blue">ByVal </span>control <span style="color: blue">As </span>Control)
        <span style="color: blue">Dim </span>i <span style="color: blue">As Integer </span>= 0
        <span style="color: blue">Do While </span>(i &lt; control.Controls.Count)
            <span style="color: blue">Dim </span>current <span style="color: blue">As </span>Control = control.Controls(i)
            <span style="color: blue">If </span>(<span style="color: blue">TypeOf </span>current <span style="color: blue">Is </span>LinkButton) <span style="color: blue">Then
                </span>control.Controls.Remove(current)
                control.Controls.AddAt(i, <span style="color: blue">New </span>LiteralControl(<span style="color: blue">CType</span>(current, LinkButton).Text))
            <span style="color: blue">ElseIf </span>(<span style="color: blue">TypeOf </span>current <span style="color: blue">Is </span>ImageButton) <span style="color: blue">Then
                </span>control.Controls.Remove(current)
                control.Controls.AddAt(i, <span style="color: blue">New </span>LiteralControl(<span style="color: blue">CType</span>(current, ImageButton).AlternateText))
            <span style="color: blue">ElseIf </span>(<span style="color: blue">TypeOf </span>current <span style="color: blue">Is </span>HyperLink) <span style="color: blue">Then
                </span>control.Controls.Remove(current)
                control.Controls.AddAt(i, <span style="color: blue">New </span>LiteralControl(<span style="color: blue">CType</span>(current, HyperLink).Text))
            <span style="color: blue">ElseIf </span>(<span style="color: blue">TypeOf </span>current <span style="color: blue">Is </span>DropDownList) <span style="color: blue">Then
                </span>control.Controls.Remove(current)
                control.Controls.AddAt(i, <span style="color: blue">New </span>LiteralControl(<span style="color: blue">CType</span>(current, DropDownList).SelectedItem.Text))
            <span style="color: blue">ElseIf </span>(<span style="color: blue">TypeOf </span>current <span style="color: blue">Is </span>CheckBox) <span style="color: blue">Then
                </span>control.Controls.Remove(current)
                control.Controls.AddAt(i, <span style="color: blue">New </span>LiteralControl(<span style="color: blue">CType</span>(current, CheckBox).Checked))
                <span style="color: green">'TODO: Warning!!!, inline IF is not supported ?
            </span><span style="color: blue">End If
            If </span>current.HasControls <span style="color: blue">Then
                </span>PrepareControlForExport(current)
            <span style="color: blue">End If
            </span>i = (i + 1)
        <span style="color: blue">Loop
    End Sub
End Class</span></pre>
<p>Вкратце, что делает этот класс: есть два статичных публичных метода: PrepareAndExport и Export.</p>
<p>Метод PrepareAndExport убирает в GridView разбивку на страницы, для того чтобы получить в экселевском файле все записи со всех страниц. Так же этот метод определяет имя целевого файла. В моем случае к переданной строковой переменной будет прибавлено текущее время. После этого PrepareAndExport вызывает метод Export, который собственно и генерирует output. PrepareControlForExport нужен для замены пользовательских контролов в GridView, эти контролы нужны на веб-странице, но совершенно бессмысленны в Excel.</p>
<p>2. Размещаем на asp странице кнопку для осуществления экспорта: </p>
<pre class="code">

<span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">ImageButton </span><span style="color: red">ID</span><span style="color: blue">=&quot;ibExportToExcel&quot; </span><span style="color: red">runat</span><span style="color: blue">=&quot;server&quot; </span>

<span style="color: blue"></span><span style="color: red">    ImageUrl</span><span style="color: blue">=&quot;~/Img/export-excel.png&quot;</span>

<span style="color: red">    OnClick</span><span style="color: blue">=&quot;ibExportToExcel_Click&quot;&gt;</span>
</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Привязываем в ней onClick событие <font color="#0000ff">ibExportToExcel_Click. </font></p>
<p>3. Реализуем это событие в code-behind страницы:</p>
<pre class="code">

<span style="color: blue">Protected Sub </span>ibExportToExcel_Click(<span style="color: blue">ByVal </span>sender <span style="color: blue">As </span>System.Object, 

         <span style="color: blue">ByVal </span>e <span style="color: blue">As </span>System.Web.UI.ImageClickEventArgs)
     ExcelExportHelper.PrepareAndExport(Page.Title, gvContent, <span style="color: blue">True</span>)
 <span style="color: blue">End Sub</span>
</pre>
<p>Ну вот собственно и все, теперь при нажатии на кнопку экспорта произойдет вызов метода PrepareAndExport класса ExcelExportHelper. В качестве параметров этому методу передаем Page.Title (либо любую другую строку в качестве имени файла), GridView, который нужно экспортировать, и true (отображать границы таблицы в экселе). </p>
<p>&#160;</p>
<p>Теперь несколько “НО”:</p>
<p>1. Если у клиента установлен Microsoft Excel 2007, то при открытии сгенерированного файла мы получим Security Alert. </p>
<p><a href="http://dimants.ru/wp-content/uploads/2009/03/image1.png" target="_blank"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="24" alt="image" src="http://dimants.ru/wp-content/uploads/2009/03/image-thumb1.png" width="244" border="0" /></a> </p>
<p>Дело в том, что мы пытаемся подсунуть Excel-ю сгенерированный нами html файл. Он это понимает и сообщает, что содержание файла не соответствует его расширению. К сожалению, нормального пути обойти это сообщение нет. Единственное, что можно сделать – покопаться в реестре:</p>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security]<br />
  <br />“ExtensionHardening”=dword:00000000</p>
<p>&#160;&#160; 1. Open your Registry (Start -&gt; Run -&gt; regedit.exe)<br />
  <br />&#160;&#160; 2. Navigate to HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\OFFICE\12.0\EXCEL\SECURITY </p>
<p>&#160;&#160; 3. Right click in the right window and choose New -&gt; DWORD </p>
<p>&#160;&#160; 4. Type “ExtensionHardening” as the name (without the quotes) </p>
<p>&#160;&#160; 5. Verify that the data has the value “0?</p>
<p>2. Если кнопка ibExportToExcel находится в Update Panel, то необходимо добавить ее в триггер:</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">UpdatePanel </span><span style="color: red">ID</span><span style="color: blue">=&quot;upContent&quot; </span><span style="color: red">runat</span><span style="color: blue">=&quot;server&quot; </span><span style="color: red">UpdateMode</span><span style="color: blue">=&quot;Always&quot;&gt;
        &lt;</span><span style="color: #a31515">Triggers</span><span style="color: blue">&gt;
            &lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">PostBackTrigger </span><span style="color: red">ControlID</span><span style="color: blue">=&quot;ibExportToExcel&quot; /&gt;
        &lt;/</span><span style="color: #a31515">Triggers</span><span style="color: blue">&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dimants.ru/archives/264/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

