簡體   English   中英

如何在WinForm C#中將數據導出到Excel工作表?

[英]How to export data to excel sheets in WinForm C#?

這是我的代碼:

使用Excel = Microsoft.Office.Interop.Excel;

private void button5_Click(object sender, EventArgs e)
{
    SqlCommand cmd = new SqlCommand();
    int colIndex = 1;
    int rowIndex = 1;
    Excel.Application xlApp;
    Excel.Workbook xlWorkBook;
    Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    xlApp = new Excel.Application();
    Con.Open();
    cmd.Connection = Con;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select * from Table1";
    SqlDataReader reader = cmd.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(reader);
    xlApp = new Excel.Application();
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

    foreach (DataRow dr in dt.Rows)
    {
        rowIndex = rowIndex + 1;
        colIndex = 0;
        foreach (DataColumn dc in dt.Columns)
        {
            colIndex = colIndex + 1;
            xlWorkSheet.Cells[rowIndex + 1, colIndex] = dr[dc.ColumnName];
        }
    }

    xlApp.Visible = true;
    ObjectRelease(xlWorkSheet);
    ObjectRelease(xlWorkBook);
    ObjectRelease(xlApp);
}

它將所有數據從“Table1”導出到Sheet1。 但我想出口:

Row1 => Sheet1

Row2 => Sheet2

Row3 => Sheet3

...

我怎么解決這個問題?

查看代碼xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 它應該是第一張紙。

如果你在循環中拉出那行代碼,並將1更改為rowIndex ,它應該進入連續的工作表。 我唯一不知道的是你是否可以“獲得”尚不存在的表格,因此你可能需要創建新表格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM