最近又把以前做了一个项目《教务系统中成绩数据迁移》翻了出来,应客户的要求,在导出毕业生成绩登记表时,以前是一个一个学生的导出,现在希望能够整个班级的导出。把以前写的有关导出Excel的代码看了下,觉得有必要写出来,一是总结,二是将来再用时,不要从头再找这些代码了。
在C#中操作Excel,先要添加对Office类库的引用,是COM+类库,名称为Microsoft Office 11.0 Object Library(对应Office 2003).
下面是一小段测试代码(为设置格式方便,事先做好一个模板文件):
Excel.ApplicationClass excelApp
=
null
;
Excel.Workbook workBook
=
null
;
excelApp
=
new
Excel.ApplicationClass();
workBook
=
excelApp.Workbooks.Open(destFilename,
//
需要打开的Excel文件
Type.Missing,Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing);
excelApp.Cells[
1
,
1
]
=
"
测试成功!
"
;

现在,需要在一个WorkBook中要连续存放一个班的学生成绩总表,需要,就利用第一个WorkSheet,不断的Copy:
Excel.Worksheet ws
=
(Excel.Worksheet)workBook.Worksheets[
1
];
//
获取第一个工作表
ws.Copy((Excel.Worksheet)workBook.Sheets[
1
],Type.Missing);
//
复制到第1个工作表之前
((Excel.Worksheet)workBook.Worksheets[
1
]).Name
=
sheetname;
//
修改工作表名为sheetname
暂且就写到这儿。