【发布时间】:2018-04-05 15:52:58
【问题描述】:
大家好,我想将数据从dataset 导出到excel 表。我的dataset 由 2 个Tables 组成,所以我如何在一个 Excel 表中写入多个数据集值
【问题讨论】:
标签: c# asp.net export-to-excel
大家好,我想将数据从dataset 导出到excel 表。我的dataset 由 2 个Tables 组成,所以我如何在一个 Excel 表中写入多个数据集值
【问题讨论】:
标签: c# asp.net export-to-excel
在你必须创建之前
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;
}
我正在使用此代码
【讨论】:
您可以在每个工作表中写入一个表格值,而不是单个 Excel 工作表,
http://csharp.net-informations.com/excel/csharp-excel-export.htm
增加工作表计数,您可以将多个数据集值保存在单个 Excel 文件中。
希望对你有帮助。
【讨论】: