您的位置:首页 > 其它

DataTable to excel

2015-11-19 08:47 405 查看
/// <summary>
/// DataTable直接导出Excel,此方法会把DataTable的数据用Excel打开,再自己手动去保存到确切的位置
/// </summary>
/// <param name="dt">要导出Excel的DataTable</param>
/// <returns></returns>
private bool DataTableToExcel(DataTable dt)
{
Excel.Application app = new Excel.Application();
if (app == null)
{
throw new Exception("Excel无法启动");
}
app.Visible = true;
Excel.Workbooks wbs = app.Workbooks;
Excel.Workbook wb = wbs.Add(Type.Missing);
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];

int cnt = dt.Rows.Count;
int columncnt = dt.Columns.Count;

// *****************获取数据********************
object[,] objData = new Object[cnt + 1, columncnt];  // 创建缓存数据
// 获取列标题
for (int i = 0; i < columncnt; i++)
{
objData[0, i] = dt.Columns[i].ColumnName;
}
// 获取具体数据
for (int i = 0; i < cnt; i++)
{
System.Data.DataRow dr = dt.Rows[i];
for (int j = 0; j < columncnt; j++)
{
objData[i + 1, j] = dr[j];
}
}

//********************* 写入Excel******************
Excel.Range r = ws.Range[app.Cells[1, 1], app.Cells[cnt + 1, columncnt]];
r.NumberFormat = "@";
//r = r.get_Resize(cnt+1, columncnt);
r.Value2 = objData;
r.EntireColumn.AutoFit();

app = null;
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: