asp.net三个datatable导出到同一个excel文件三个不同sheet工作表中 ??

我现在获取员工表、部门表、操作员表 三个表数据,分别导入到一个excel里 三个sheet中,例如员工表 sheet1 ;部门表 sheet2;操作员表 sheet3;请给出代码。。我asp.net excel菜鸟一个,各位大虾帮帮忙吧,放心 如果成功能用的加分悬赏!!
如图,对应地导入~ 如何实现?

参数解释:dt--导出的表。 toFileName入到的Execl。 strSheetName Execl中的sheet名。
private void doExport(DataTable dt, string toFileName, string strSheetName)
{

Excel.Application excel = new Excel.Application(); //Execl的操作类
//读取保存目标的对象
Excel.Workbook bookDest = excel.Workbooks._Open(toFileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value);//打开要导出到的Execl文件的工作薄。--ps:关于Missing类在这里的作用,我也不知道...囧

Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet

sheetDest.Name = strSheetName;//自己定义名字O(∩_∩)O哈哈~

int rowIndex = 1;
int colIndex = 0;

excel.Application.Workbooks.Add(true);//这句不写不知道会不会报错

foreach (DataColumn col in dt.Columns)
{
colIndex++;
sheetDest.Cells[1, colIndex] = col.ColumnName;//Execl中的第一列,把DataTable的列名先导进去
}

//导入数据行
foreach (DataRow row in dt.Rows)
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in dt.Columns)
{
colIndex++;
sheetDest.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
}

bookDest.Saved = true;

bookDest.Save();
excel.Quit();
excel = null;

GC.Collect();//垃圾回收
}

不知道你能理解吗,这个方法是肯定可行的。我试过
有不懂的地方可以问我追问

关键问题是我需要把三个表分别导入到同一个excel的三个sheet中?

追答

哎,怎么说好呢
你有三个数据表
简单来说,就是调用三次这个方法
每次穿进去的 是同一个 Execl名字,但是sheet是不同的不就好了吗= =

追问

问题是我需要导入同一个excel的不同sheet啊。。而你的代码只是导入一个excel 一个sheet中,这样与我需要的大相径庭啊!

追答

也不知道你怎么想的
这个就是续写Execl的方法
是续写,你可以测试一下
桌面先建一个Execl
然后里面写入文件

至于如果要创建Execl的话,到时候在告诉我
记住,这个方法是续写Execl的,需要先创建一个Execl

追问

你的意思是做一个模板然后模板输出?

追答

你不是有三个dataset吗?
我给你的方法是 续写方法
你在 界面建一个execl
然后 把三个dataset导进去
sheet可以你自己起的啊
你调用这个方法的时候,sheet这个参数,让他们不一样,但是execl名是同一个
那么导的时候,不就是产生了不同的sheet了吗

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-20
打开整个excel后,对三个worksheet逐渐写入数据不就可以了么???
相似回答