读书人

C# DataTable导出到EXCEL保存多个SHEE

发布时间: 2012-04-19 14:36:43 作者: rapoo

C# DataTable导出到EXCEL保存多个SHEET
由于以前用惯了IO导出EXCEL,但是这次被告知要保存多个SHEET,只能用COM组件,但是翻了下
材料,找不到如何保存多个SHEET的方法,最简单的方法如下

C# code
    int columnCount = dt.Columns.Count;            int columnCount2 = dt2.Columns.Count;            int columnCount3 = dt3.Columns.Count;            //创建Excel对象            Microsoft.Office.Interop.Excel._Application excelApp = new ApplicationClass();            //新建工作簿            Microsoft.Office.Interop.Excel._Workbook workBook = excelApp.Workbooks.Add(true);            //新建工作表            Microsoft.Office.Interop.Excel._Worksheet worksheet = workBook.ActiveSheet as Microsoft.Office.Interop.Excel._Worksheet;            Microsoft.Office.Interop.Excel._Worksheet worksheet2 = workBook.ActiveSheet as Microsoft.Office.Interop.Excel._Worksheet;            Microsoft.Office.Interop.Excel._Worksheet worksheet3 = workBook.ActiveSheet as Microsoft.Office.Interop.Excel._Worksheet;                        //设置表头            for (int i = 0; i < columnCount; i++)            {                Range headRange = worksheet.Cells[2, i + 1] as Range;//获取表头单元格                headRange.Value2 = dt.Columns[i].Caption;//设置单元格文本            }                      //填充数据            for (int i = 0; i < dt.Rows.Count - 1; i++)            {                for (int j = 0; j < dt.Columns.Count; j++)                {                    Range contentRange = worksheet.Cells[i + 3, j + 1] as Range;//获取单元格                    contentRange.Value2 = dt.Rows[i][j].ToString().Trim();//设置单元格文本                }            }                       //保存导出的Excel                        string fileName = "E:\\测试" + ".xls";            workBook.SaveCopyAs(fileName);            workBook.Saved = true;

菜鸟求帮助,如何保存多个SHEET?


[解决办法]
xlSheets = workBook.Sheets as Sheets;

//添加 Sheet
xlNewSheet = (Worksheet)xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing);
xlNewSheet.Name = "xxx";

//填充
Range contentRange = xlNewSheet.Cells[i + 3, j + 1] as Range;//获取单元格
contentRange.Value2 = dt.Rows[i][j].ToString().Trim();//

读书人网 >C#

热点推荐