Cara untuk mengekspor Data dalam DataGrid di ASP. NET WebForm ke Microsoft Excel

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 317719 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Menggunakan panduan langkah demi langkah untuk mengisi DataGrid Kontrol server web pada ASP.NET WebForm dan kemudian ekspor isi DataGrid untuk Microsoft Excel.

Teknik

Artikel ini menjelaskan dua teknik untuk mengekspor data dalam The DataGrid:
  • Menggunakan jenis MIME Excel (atau tipe konten)

    Dengan kode sisi server, Anda dapat mengikat DataGrid untuk data Anda dan memiliki data terbuka di Excel pada klien komputer. Untuk melakukannya, atur ContentType untuk aplikasi/vnd.ms-unggul. Setelah klien menerima aliran baru, data muncul di Unggul sebagai jika konten dibuka sebagai halaman baru di Web browser.
  • Menggunakan Excel otomatisasi

    Dengan kode sisi klien, Anda dapat mengekstrak HTML dari The DataGrid dan kemudian mengotomatisasi Excel untuk menampilkan HTML di buku kerja yang baru. Dengan Excel otomatisasi, data selalu muncul di luar browser di Excel jendela aplikasi. Salah satu keuntungan untuk otomatisasi adalah bahwa Anda dapat Pemrograman mengendalikan Excel jika Anda ingin memodifikasi buku kerja setelah data diekspor. Namun, karena Excel tidak ditandai sebagai aman untuk skrip, klien Anda harus menerapkan pengaturan keamanan di Web browser yang memungkinkan Otomatisasi.

Langkah demi langkah

  1. Mulai Visual Studio.NET. Pada Berkas menu, titik Baru, lalu klik Project.
  2. Dalam Jenis proyek panel, klik Proyek-proyek Visual Basic. Di bawah Pola acu, klik ASP.Aplikasi NET Web. Nama aplikasi ExcelExport kemudian klik Oke.

    WebForm1 muncul dalam Design view untuk Anda.
  3. Dalam solusi Explorer, klik kanan WebForm1.aspx kemudian klik Ubah nama. Mengubah nama file ke Bottom.aspx.
  4. Pada Lihat menu, klik Sumber HTML untuk menambahkan berikut DataGrid antara<form>dan</form>Tag:
    <asp:datagrid id="DataGrid1" runat="server" GridLines="Vertical" CellPadding="3" BackColor="White"
    BorderColor="#999999" BorderWidth="1px" BorderStyle="None" Width="100%" Height="100%" Font-Size="X-Small"
    Font-Names="Verdana">
    	<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
    	<AlternatingItemStyle BackColor="Gainsboro"></AlternatingItemStyle>
    	<ItemStyle BorderWidth="2px" ForeColor="Black" BorderStyle="Solid" BorderColor="Black" BackColor="#EEEEEE"></ItemStyle>
    	<HeaderStyle Font-Bold="True" HorizontalAlign="Center" BorderWidth="2px" ForeColor="White" BorderStyle="Solid"
    	BorderColor="Black" BackColor="#000084"></HeaderStyle>
    	<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
    	<PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
    					
  5. Pada Lihat menu, klik Desain untuk kembali ke tampilan desain.

    The DataGrid muncul di WebForm.
  6. Pada Lihat menu, klik Kode untuk menampilkan kode di belakang formulir Web. Tambahkan kode berikut untuk Page_Load event handler:

    Catatan Anda harus mengubah ID pengguna <username> dan password =<strong password=""> untuk nilai-nilai yang benar sebelum Anda menjalankan ini kode. Pastikan bahwa account pengguna memiliki izin yang benar untuk melakukan ini operasi pada database.</strong> </username>
    ' Create a connection and open it.
    Dim objConn As New System.Data.SqlClient.SqlConnection("User ID=<username>;Password=<strong password>;Initial Catalog=Northwind;Data Source=SQLServer;")
    objConn.Open()
    
    Dim strSQL As String
    Dim objDataset As New DataSet()
    Dim objAdapter As New System.Data.SqlClient.SqlDataAdapter()
    
    ' Get all the customers from the USA.
    strSQL = "Select * from customers where country='USA'"
    objAdapter.SelectCommand = New System.Data.SqlClient.SqlCommand(strSQL, objConn)
    ' Fill the dataset.
    objAdapter.Fill(objDataset)
    ' Create a new view.
    Dim oView As New DataView(objDataset.Tables(0))
    ' Set up the data grid and bind the data.
    DataGrid1.DataSource = oView
    DataGrid1.DataBind()
    
    ' Verify if the page is to be displayed in Excel.
    If Request.QueryString("bExcel") = "1" Then
        ' Set the content type to Excel.
        Response.ContentType = "application/vnd.ms-excel"
        ' Remove the charset from the Content-Type header.
        Response.Charset = ""
        ' Turn off the view state.
        Me.EnableViewState = False
    
        Dim tw As New System.IO.StringWriter()
        Dim hw As New System.Web.UI.HtmlTextWriter(tw)
    
        ' Get the HTML for the control.
        DataGrid1.RenderControl(hw)
        ' Write the HTML back to the browser.
        Response.Write(tw.ToString())
        ' End the response.
        Response.End()
    End If
    						
    CATATAN: Mengganti SQLServer dalam kode dengan nama SQL Server. Jika Anda tidak memiliki akses ke SQL Server yang berisi Northwind sampel database, memodifikasi rangkaian sambungan menggunakan sampel Microsoft akses 2002 Northwind database:
    Provider=Microsoft.jet.oledb.4.0; sumber data = C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb
    Jika Anda memilih metode ini, memodifikasi kode tersebut menggunakan The OleDbClient namespace daripada SqlClient namespace.
  7. Pada Project menu, klik Tambahkan halaman HTML. Nama halaman Top.htm kemudian klik Terbuka.

    Top.htm muncul dalam Design view.
  8. Pada Lihat menu, klik Sumber HTML. Mengganti isi jendela sumber HTML dengan kode berikut:
    <html>
    <script language="vbscript">
      Sub Button1_onclick        
    
      Select Case Select1.selectedIndex
    
        Case 0	' Use Automation.
          Dim sHTML
          sHTML = window.parent.frames("bottom").document.forms(0).children("DataGrid1").outerhtml
          Dim oXL, oBook
          Set oXL = CreateObject("Excel.Application")
          Set oBook = oXL.Workbooks.Add
          oBook.HTMLProject.HTMLProjectItems("Sheet1").Text = sHTML
          oBook.HTMLProject.RefreshDocument
          oXL.Visible = true
          oXL.UserControl = true
    
        Case 1	' Use MIME Type (In a New Window).
          window.open("bottom.aspx?bExcel=1")
    
        Case 2	' Use MIME Type (In the Frame).
          window.parent.frames("bottom").navigate "bottom.aspx?bExcel=1"
      End Select	
    End Sub
    </script>
    <body>
    Export to Excel Using:
    <SELECT id="Select1" size="1" name="Select1">
    <OPTION value="0" selected>Automation</OPTION>
    <OPTION value="1">MIME Type (In a New Window)</OPTION>
    <OPTION value="2">MIME Type (In the Frame)</OPTION>
    </SELECT>
    <INPUT id="Button1" type="button" value="Go!" name="Button1">
    </body>
    </html>
    					
  9. Pada Project menu, klik Tambahkan halaman HTML. Nama halaman FRAMESET.htm kemudian klik Terbuka.

    FRAMESET.htm membuka dalam Design view.
  10. Pada Lihat menu, klik Sumber HTML. Mengganti isi jendela sumber HTML dengan kode berikut:
    <html>
    	<frameset rows="10%,90%">
    		<frame noresize="0" scrolling="no" name="top" src="top.htm">
    		<frame noresize="0" scrolling="yes" name="bottom" src="bottom.aspx">
    	</frameset>
    </html>
    					
  11. Dalam solusi Explorer, klik kanan FRAMESET.htm kemudian klik Set sebagai halaman awal.
  12. Pada Bangun menu, klik Membangun solusi.

Mencobanya!

  1. Pada Debug menu, klik Mulai tanpa Debugging untuk menjalankan aplikasi.

    Setelah rangkaian bingkai dibuka di Web browser, DataGrid di bagian bawah frame menampilkan data dari Northwind database.
  2. Dalam daftar drop-down, klik Otomatisasi, lalu klik Pergi.

    The DataGrid isi ditampilkan di luar browser di Microsoft Excel jendela aplikasi.
  3. Dalam daftar drop-down, klik Jenis MIME (dalam baru Jendela), lalu klik Pergi.

    The DataGrid isi ditampilkan dalam Excel host dalam browser Web baru jendela.

    CATATAN: Jika Anda menerima prompt untuk membuka atau menyimpan berkas Excel, klik Terbuka.
  4. Dalam daftar drop-down, klik Jenis MIME (di Frame) kemudian klik Pergi.

    The DataGrid isi ditampilkan dalam frame bawah bingkai dalam Excel host dalam Web browser.

    CATATAN: Jika Anda menerima prompt untuk membuka atau menyimpan berkas Excel, klik Terbuka.

REFERENSI

Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
199841 Bagaimana tampilan ASP hasil menggunakan Excel di IE dengan tipe MIME
271572 Cara Format buku kerja Excel sementara Streaming konten MIME
296717 PRB: Internet Explorer mendorong pengguna untuk buka kantor File mengalir dari ASP
264143 FIX: ASP variabel sesi kosong ketika Office 2000 MIME jenis yang mengalir dengan Internet Explorer
266263 BUG: Word 2000 dan Excel 2000 tampilan ASP sumber ketika menggunakan jenis MIME Stream data

Properti

ID Artikel: 317719 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft Excel 2002 Standard Edition
Kata kunci: 
kbhowtomaster kbmt KB317719 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:317719

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com