2010-04-02 5 views
0

У меня есть запрос sql с sql datareader. Я поставил цикл for для чтения данных. теперь, когда данные начинают поступать из запроса, я хочу, чтобы он экспортировался в excel в цикле for. вот мой кодэкспорт в excel из vb.net из sql datareader

Попробуйте Dim SqlStr As String = "", д-р Как SqlDataReader = Ничего

 ConnectDB(Cnn) 
     Str = "query" 
     SqlCmd = New SqlCommand(Str, Cnn) 
     dr = SqlCmd.ExecuteReader 

while dr.read 
..EXPORT TO EXCEL 
do 
end while 

Кто-нибудь знает, как это сделать?

ответ

0

Этот образец будет отображать весь контент Grid в файл Excel.

private void _Click(object sender, System.EventArgs e) 
{ 
//export to excel 
Response.Clear(); 
    Response.Buffer= true; 
    Response.ContentType = "application/vnd.ms-excel"; 
    Response.Charset = ""; 
    this.EnableViewState = false; 
    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = 
     new System.Web.UI.HtmlTextWriter(oStringWriter); 
    this.ClearControls(dg); 
    dg.RenderControl(oHtmlTextWriter); 
    Response.Write(oStringWriter.ToString()); 
    Response.End(); 
} 
1

Там целый ряд подходов, вы можете использовать

  1. Решите, если вы собираетесь создать файл на сервере, который можно ссылаться в гиперссылке

  2. Поток ответа клиенту в реальном времени, установка типа mime, чтобы ответ был загружен в excel.

Для любого подхода вам необходимо создать вывод, который откроет Excel. Здесь есть несколько вариантов:

  1. Вы можете использовать таблицу xml. Это формат xml, который могут открывать старые версии Excel.
  2. Вы можете написать html в файл и переименовать его с расширением .xls/write html в поток ответов и установить тип mime для excel.
  3. Используйте OOXML для создания файла xlsx. Этот файл можно открыть всеми версиями Excel с Office 2000 и далее (клиенту может потребоваться загрузить бесплатное обновление, чтобы включить это). OOXML довольно сложный, поэтому я предлагаю использовать бесплатную библиотеку, такую ​​как Simple OOXML. Вы также можете скачать OOXML SDK из этой ссылки.

Просмотреть запись в блоге here для получения информации о записи документа xlsl в поток ответов.

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