【问题标题】:How can i export multiple dataset to an excel sheet如何将多个数据集导出到 Excel 工作表
【发布时间】:2018-04-05 15:52:58
【问题描述】:

大家好,我想将数据从dataset 导出到excel 表。我的dataset 由 2 个Tables 组成,所以我如何在一个 Excel 表中写入多个数据集值

【问题讨论】:

    标签: c# asp.net export-to-excel


    【解决方案1】:

    在你必须创建之前
    1.使用 Excel = Microsoft.Office.Interop.Excel;//在标题中,并添加正确的引用
    2.Excel.Application excelHandle1 = PrepareForExport(Ds); //在调用函数中添加句柄 excelHandle1.Visible = true;

     public Excel.Application PrepareForExport(System.Data.DataSet ds,string[] sheet)
        {
                object missing = System.Reflection.Missing.Value;
                Excel.Application excel = new Excel.Application();
                Excel.Workbook workbook = excel.Workbooks.Add(missing);
    
                DataTable dt1 = new DataTable();
                dt1 = ds.Tables[0];
                DataTable dt2 = new DataTable();
                dt2 = ds.Tables[1];
    
    
                Excel.Worksheet newWorksheet;
                newWorksheet = (Excel.Worksheet)excel.Worksheets.Add(missing, missing, missing, missing);
                newWorksheet.Name ="Name of data sheet";
    
    //  for first datatable dt1..
    
                int iCol1 = 0;
                foreach (DataColumn c in dt1.Columns)
                {
                    iCol1++;
                    excel.Cells[1, iCol1] = c.ColumnName;
                }
    
                int iRow1 = 0;
                foreach (DataRow r in dt1.Rows)
                {
                    iRow1++;
    
                    for (int i = 1; i < dt1.Columns.Count + 1; i++)
                    {
    
                        if (iRow1 == 1)
                        {
                            // Add the header the first time through 
                            excel.Cells[iRow1, i] = dt1.Columns[i - 1].ColumnName;
                        }
    
                        excel.Cells[iRow1 + 1, i] = r[i - 1].ToString();
                    }
    
                }
    
       //  for  second datatable dt2..
    
                int iCol2 = 0;
                foreach (DataColumn c in dt2.Columns)
                {
                    iCol2++;
                    excel.Cells[1, iCol] = c.ColumnName;
                }
    
    
                int iRow2 = 0;
                foreach (DataRow r in dt2.Rows)
                {
                    iRow2++;
    
                    for (int i = 1; i < dt2.Columns.Count + 1; i++)
                    {
    
                        if (iRow2 == 1)
                        {
                            // Add the header the first time through 
                            excel.Cells[iRow2, i] = dt2.Columns[i - 1].ColumnName;
                        }
    
                        excel.Cells[iRow2 + 1, i] = r[i - 1].ToString();
                    }
    
                }
    
    
    
    
            return excel;
        }
    

    我正在使用此代码

    【讨论】:

      【解决方案2】:

      您可以在每个工作表中写入一个表格值,而不是单个 Excel 工作表,

      http://csharp.net-informations.com/excel/csharp-excel-export.htm

      增加工作表计数,您可以将多个数据集值保存在单个 Excel 文件中。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-07
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多