C#对Excel的操作

    技术2022-05-11  73

    第一步:添加引用-->Com-->Microsoft Excel 11.0 Object Library

    第二步:在文件最上方加:using Excel = Microsoft.Office.Interop.Excel;

    第三步:编辑下面两个方法

    /// <summary>/// 执行完Excel操作方法后执行资源回收操作,必须与Excel操作的方法分开/// </summary>private void ExcelWrite(){    try    {        ExcelOperation();    }    finally    {        System.GC.Collect();    }        }

    /// <summary>/// Excel操作,只是例子/// </summary>private void ExcelOperation(){    //    //定义一个缺少的object对象                object oMis = System.Reflection.Missing.Value;

        //    //定义一个Excel程序对象                Excel.ApplicationClass excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

        //    //由Execl程序创建一个工作薄对象                Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);

        //    //由工作薄对象创建一个工作表                Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelWorkBook.Worksheets.Add(oMis, oMis, 1, oMis);

        //    //设置工作的表的名字                excelWorkSheet.Name = "测试项目";

        //    //定义一个Excel区域对象,用于保存选择的区域    Excel.Range selectRange;

        //    //设置第1行第1列的值    ((Excel.Range)excelWorkSheet.Cells[1, 1]).set_Item(1, 1, "日期");

        //    //设置第1行第2列的值    ((Excel.Range)excelWorkSheet.Cells[1, 1]).set_Item(1, 2, "时间");

        //    //选择第2行第2列至第2行第2列,设置值与格式    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 2], excelWorkSheet.Cells[2, 2]);    selectRange.set_Item(1, 1, "11:30");    selectRange.NumberFormatLocal = @"h:mm;@";        //    //选择第3行第2列至第2行第2列,设置值与格式    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[3, 2], excelWorkSheet.Cells[3, 2]);    selectRange.set_Item(1, 1, "12:30");    selectRange.NumberFormatLocal = @"h:mm;@";

        //    //选择第4行第2列至第2行第2列,设置值与格式    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[4, 2], excelWorkSheet.Cells[4, 2]);    selectRange.set_Item(1, 1, "13:30");    selectRange.NumberFormatLocal = @"h:mm;@";

        //    //选择第5行第2列至第2行第2列,设置值与格式    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[5, 2], excelWorkSheet.Cells[5, 2]);    selectRange.set_Item(1, 1, "14:30");    selectRange.NumberFormatLocal = @"h:mm;@";

        //    //选择第6行第2列至第2行第2列,设置值与格式    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[6, 2], excelWorkSheet.Cells[6, 2]);    selectRange.set_Item(1, 1, "15:30");    selectRange.NumberFormatLocal = @"h:mm;@";

        //    //选择第2行第1列至第2行第1列,    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 1], excelWorkSheet.Cells[2, 1]);    //    //选择是必须的,因设置了选择区域后并未选中此区域     selectRange.Select();        //    //冻结窗体    excelApp.ActiveWindow.FreezePanes = true;

        //    //选择第2行第1列至第6行第1列,    selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 1], excelWorkSheet.Cells[6, 1]);                    //    //合并单元格    selectRange.Merge(oMis);

        selectRange.EntireColumn.AutoFit(); //全部列自适应宽度    selectRange.EntireRow.AutoFit();    //全部行自适应高度

        selectRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//水平居中    selectRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; //垂直居中

        //    //设置单元格的格式    selectRange.NumberFormatLocal = @"yyyy-m-d;@";    /*        NumberFormatLocal = "¥#,##0.00_);[红色](¥#,##0.00)"   //货币               NumberFormatLocal = "0.00%"                             //百分比        NumberFormatLocal = "# ??/??"                           //分数     * */

        //    //设置单元格的值    selectRange.set_Item(1, 1, "2007-02-27");

        //selectRange.ColumnWidth = 50;   //固定宽度    selectRange.Columns.AutoFit();    //自适应宽度

        selectRange.Borders.LineStyle = BorderStyle.FixedSingle;      //设置边框样式    selectRange.Borders.Weight = Excel.XlBorderWeight.xlThin;     //边框粗细    selectRange.Borders.ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;    //颜色           

        excelWorkBook.Saved = true;     //将工作薄的保存标志置为True

        //捕捉异常,以防止文件为只读或已打开,保存时会出错    try    {        excelWorkBook.SaveCopyAs(@"d:/aa.xls");    }    catch(Exception exp)    {        MessageBox.Show(exp.Message);    }

        //Excel程序退出,注意:要在外面释放内存资源    excelApp.Quit();} 


    最新回复(0)