最近又把以前做了一个项目《教务系统中成绩数据迁移》翻了出来,应客户的要求,在导出毕业生成绩登记表时,以前是一个一个学生的导出,现在希望能够整个班级的导出。把以前写的有关导出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
暂且就写到这儿。