C# 操作 Excel

 
        private Microsoft.Office.Interop.Excel.Application exApp;
        private Microsoft.Office.Interop.Excel.Workbooks exWorkBooks;
        private Microsoft.Office.Interop.Excel.Workbook exWorkBook;

        private void InsertMsgToExcel(List<UL_FavSentenceListInfo> favSenList, List<UL_FavSentenceCatInfo> favSenCatList, string userID)
        {
            exApp = new Microsoft.Office.Interop.Excel.Application();//Create New Excel Object
            exWorkBooks = exApp.Workbooks;
            exWorkBook = exWorkBooks.Add(true);

            string lastCatID = "";
            string lastCatName = "";
            int rowNum = 2;
            Microsoft.Office.Interop.Excel.Worksheet currWorkSheet = null;
            for (int w = 0; w < favSenList.Count; w++)
            {
                if (favSenList[w].UserDefinedType != lastCatID)
                {
                    for (int n = 0; n < favSenCatList.Count; n++)
                    {
                        if (favSenCatList[n].Row_ID == favSenList[w].UserDefinedType)
                        {
                            lastCatID = favSenCatList[n].Row_ID;
                            lastCatName = favSenCatList[n].CategoryName;
                            break;
                        }
                    }

                    rowNum = 2;
                    currWorkSheet = AddSheet(lastCatName);//create new excel's worksheet
                    BuildSheetHead(currWorkSheet);
                }

                BuildSheetSenItem(rowNum, currWorkSheet, favSenList[w]);
                rowNum++;
            }

            exApp.Visible = false;
            exApp.DisplayAlerts = false;
            exFileName = userID + "-" + DateTime.Now.Second.ToString() + ".xls";
            exApp.ActiveWorkbook.SaveCopyAs(ApplicationObjMng.ServerObj.MapPath("~/DownloadTemp/UserFavSentence/" + exFileName));
            exApp.Application.Workbooks.Close();
            exApp.Application.Quit();
            exApp.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(exApp);

        }

        private void BuildSheetHead(Microsoft.Office.Interop.Excel.Worksheet sheet)
        {
            SetExcelCellValue(sheet, 1, 1, "英文原句");
            SetExcelCellValue(sheet, 2, 1, "中文释义");
            SetExcelCellValue(sheet, 3, 1, "我的注释");
            sheet.get_Range("A1", "C1").ColumnWidth = 60;
        }

        private void BuildSheetSenItem(int rowNum, Microsoft.Office.Interop.Excel.Worksheet sheet, UL_FavSentenceListInfo senInfo)
        {
            SetExcelCellValue(sheet, 1, rowNum, senInfo.SentenceEN);
            SetExcelCellValue(sheet, 2, rowNum, senInfo.SentenceCH);
            SetExcelCellValue(sheet, 3, rowNum, senInfo.Memo);
        }

        private Microsoft.Office.Interop.Excel.Worksheet AddSheet(string sheetName)//add new worksheet
        {
            Microsoft.Office.Interop.Excel.Worksheet currWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)exWorkBook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            currWorkSheet.Name = sheetName;
            return currWorkSheet;
        }

        private void SetExcelCellValue(Microsoft.Office.Interop.Excel.Worksheet workSheet, int sheetX, int sheetY, string value)
        {
            workSheet.Cells[sheetY, sheetX] = value;
        }
posted @ 2011-04-06 16:37  Code_Name  阅读(134)  评论(0)    收藏  举报