0

这是我的代码:

使用 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。但我想导出:

第 1 行 => 表 1

第 2 行 => 表 2

第 3 行 => 表 3

...

我该如何解决这个问题?

4

1 回答 1

2

查看代码xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);它应该得到第一张纸。

如果您将那行代码拉到循环中,并将其更改1rowIndex,它应该进入连续的工作表。我唯一不知道的是您是否可以“获取”尚不存在的工作表,因此您可能需要创建新工作表。

于 2012-12-07T03:14:41.710 回答