`
wlhx
  • 浏览: 34735 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

OWC11导出Excel的应用

阅读更多
最近在做项目中的导出Excel功能,要求不依赖office组件所以研究了一下OWC11下面是具体代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入OWC11命名空间
using Microsoft.Office.Interop.Owc11;

namespace OwcExcel
{
    /// <summary>
    /// OWC11导出Excel操作类
    /// </summary>
    public class Excel
    {
        public void ExportExcel(string path)
        {
            SpreadsheetClass excel = new SpreadsheetClass();
            //===========外观设置============//
            //是否显示工具栏默认值为 true
            excel.DisplayToolbar = true;

            //取消显示Office图标
            excel.DisplayOfficeLogo = true;

            //是否显示列标题,默认是true
            excel.DisplayColumnHeadings = true;

            //是否显示行标题,默认是true
            excel.DisplayRowHeadings = true;

            //是否显示水平滚动条,默认为true
            excel.DisplayHorizontalScrollBar = true;

            //是否显示垂直滚动条,默认为true
            excel.DisplayVerticalScrollBar = true;

            //电子表格是否显示网格,默认为true
            excel.DisplayGridlines = true;
            //===========外观设置============//

            //===========sheet具体设置============//
            //在第三个sheet后添加5个sheet
            excel.ActiveWorkbook.Sheets.Add(Type.Missing, (object)3, 5, XlSheetType.xlWorksheet);
            //得到所有的sheet
            Worksheets sheets = excel.Worksheets;
            int index = 1;
            //循环修改每个sheet的名字
            foreach (Worksheet sheet in sheets)
            {
                sheet.Cells[1, 1] = "这是第" + index + "个sheet";
                sheet.Name = index.ToString();
                index++;
            }
            //拿到第一个sheet
            Worksheet activesheet = (Worksheet)excel.Worksheets[1];

            //得到第一行第一列到第二行第六列的区域
            Range range = activesheet.get_Range(activesheet.Cells[1, 1],    activesheet.Cells[2, 6]);
            //合并第一行第一列到第二行第六列的区域
            range.set_MergeCells(true);
            //添加边框
            range.Borders.set_LineStyle(XlLineStyle.xlContinuous);
            //设置背景色
            object bgcolor = "#F6F600";
            range.Interior.set_Color(ref bgcolor);
            //设置水平对齐
            range.set_HorizontalAlignment(XlHAlign.xlHAlignCenter);
            //设置垂直对齐
            range.set_VerticalAlignment(XlVAlign.xlVAlignCenter);
            //设置内容
            activesheet.Cells[1, 1] = "这里是合并区域";
            //字体加粗
            range.Font.set_Bold(true);
            //设置字体颜色为红色
            object color = "#008000";
            range.Font.set_Color(ref color);
            //设置字体大小  
            range.Font.set_Size(16);
            //设置字体颜色
            range.Font.set_ColorIndex(3);
            //设置字体
            range.Font.set_Name("隶书");
            //设置字体为斜体
            range.Font.set_Italic(true);
            //设置字体下划线
            range.Font.set_Underline(XlUnderlineStyle.xlUnderlineStyleDouble);
            //设置自适应列宽
            activesheet.Cells[1, 7] = "自适应列宽自适应列宽自适应列宽自适应列宽自适应列宽自适应列宽自适应列宽自适应列宽自适应列宽";
            activesheet.Activate();
            excel.ActiveSheet.Columns.AutoFit();
            //===========sheet具体设置============//

            //导出Excel
            excel.Export(path, SheetExportActionEnum.ssExportActionNone, SheetExportFormat.ssExportXMLSpreadsheet);
        }
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics