zoukankan      html  css  js  c++  java
  • Vs2010 Silverlight4.0在OOB模式下操作Excel通用处理类

    (1)
    ExcelHelper public class ExcelHelper { #region私有变量 ///summary ///Excel工程 ////summary dynamic_myExcel; #endregion #region属性 ///summary ///工作薄 ////summary public dynamicMyWorkBook{ get ; set ;} ///summary ///工作表 ////summary public dynamicWorkSheet{ get ; se
      

      ExcelHelper

    public class ExcelHelper
        {
            #region 私有变量
            /// <summary>
            /// Excel工程
            /// </summary>
            dynamic _myExcel;
            #endregion

            #region 属性
            /// <summary>
            /// 工作薄
            /// </summary>
            public dynamic MyWorkBook { getset; }
            /// <summary>
            /// 工作表
            /// </summary>
            public dynamic WorkSheet { getset; }
            #endregion

            /// <summary>
            /// 创建Excel工作薄
            /// </summary>
            public void CreateExcel()
            {
                _myExcel = AutomationFactory.CreateObject("Excel.Application");
                MyWorkBook = _myExcel.Workbooks.Add(true);
                WorkSheet  = _myExcel.ActiveSheet;
            }

            /// <summary>
            /// 显示工作薄
            /// </summary>
            public void ShowExcel()
            {
                _myExcel.Visible = true;
            }

            /// <summary>
            /// 重命名工作表
            /// </summary>
            /// <param name="sheetNum">工作表序号,从左到右,从1开始</param>
            /// <param name="newName">新的工作表名</param>
            public void ReNameWorkSheet(int sheetNum, string newName)
            {
                dynamic workSheet = _myExcel.Worksheets[sheetNum];
                workSheet.Name = newName;
            }

            /// <summary>
            /// 重名命工作表
            /// </summary>
            /// <param name="oldName">旧的工作表名</param>
            /// <param name="newName">新的工作表名</param>
            public void ReNameWorkSheet(string oldName, string newName)
            {
                dynamic workSheet = _myExcel.Worksheets[oldName];
                workSheet.Name = newName;
            }

            /// <summary>
            /// 新建工作表
            /// </summary>
            /// <param name="sheetName">工作表名</param>
            public void CreateWorkSheet(string sheetName)
            {
                dynamic newWorkSheet = _myExcel.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                newWorkSheet.Name = sheetName;
            }

            /// <summary>
            /// 激活工作表
            /// </summary>
            /// <param name="sheetNum">工作表序号</param>
            public void ActiveSheet(int sheetNum)
            {
                dynamic workSheet = _myExcel.Worksheets[sheetNum];
                workSheet.Activate();
            }

            /// <summary>
            /// 激活工作表
            /// </summary>
            /// <param name="sheetName">工作表名</param>
            public void ActiveSheet(string sheetName)
            {
                dynamic workSheet = _myExcel.Worksheets[sheetName];
                workSheet.Activate();
            }

            /// <summary>
            /// 删除工作表
            /// </summary>
            /// <param name="sheetNum">工作表序号</param>
            public void DeleteWorkSheet(int sheetNum)
            {
                (_myExcel.Worksheets[sheetNum]).Delete();
            }

            /// <summary>
            /// 删除工作表
            /// </summary>
            /// <param name="sheetName"></param>
            public void DeleteWorkSheet(string sheetName)
            {
                (_myExcel.Worksheets[sheetName]).Delete();
            }

     (2)

    ///summary ///将数据写入指定的单元格 ////summary ///paramname=data要写入的数据/param ///paramname=row行号/param ///paramname=column列号/param public void WriteData( string data, int row, int column)
      
           /// <summary>
            /// 将数据写入指定的单元格
            /// </summary>
            /// <param name="data">要写入的数据</param>
            /// <param name="row">行号</param>
            /// <param name="column">列号</param>
            public void WriteData(string data, int row, int column)
            {
                WorkSheet.Cells[row, column] = data;
            }

            /// <summary>
            /// 将数据集合写入Excel
            /// </summary>
            /// <param name="data">要写入的二维数组数据</param>
            /// <param name="startRow">Excel起始行</param>
            /// <param name="startColumn">Excel起始列</param>
            public void WriteData(string[,] data, int startRow, int startColumn)
            {
                int rowCount = data.GetLength(0);
                int columnCount = data.GetLength(1);
                for (int i = 0; i < rowCount; i++)
                {
                    for (int j = 0; j < columnCount; j++)
                    {
                        WorkSheet.Cells[startRow + i, startColumn + j] = "'" + data[i, j];
                    }

                }
            }

            /// <summary>
            /// 合并单元格
            /// </summary>
            /// <param name="startRow">开始行</param>
            /// <param name="startColumn">开始列</param>
            /// <param name="endRow">结束行</param>
            /// <param name="endColumn">结束列</param>
            public void UnitCells(int startRow, int startColumn, int endRow, int endColumn)
            {
                dynamic range = WorkSheet.Range[WorkSheet.Cells[startRow, startColumn], WorkSheet.Cells[endRow, endColumn]];
                range.MergeCells = true;
            }


            /// <summary>
            /// 设置对齐方式
            /// </summary>
            /// <param name="startRow">开始行</param>
            /// <param name="startColumn">开始列</param>
            /// <param name="endRow">结束行</param>
            /// <param name="endColumn">结束列</param>
            /// <param name="hAlign">水平对齐</param>
            /// <param name="vAlign">垂直对齐</param>
            public void AlignmentCells(int startRow, int startColumn, int endRow, int endColumn, ExcelStyle.ExcelHAlign hAlign, ExcelStyle.ExcelVAlign vAlign)
            {
                dynamic range = WorkSheet.Range[WorkSheet.Cells[startRow, startColumn], WorkSheet.Cells[endRow, endColumn]];
                range.VerticalAlignment = (int)vAlign;
                range.HorizontalAlignment = (int)hAlign;
            }

            /// <summary>
            /// 绘制指定单元格的边框
            /// </summary>
            /// <param name="startRow">起始行</param>
            /// <param name="startColumn">起始列</param>
            /// <param name="endRow">结束行</param>
            /// <param name="endColumn">结束列</param>
            /// <param name="isDrawTop">是否画上外框</param>
            /// <param name="isDrawBottom">是否画下外框</param>
            /// <param name="isDrawLeft">是否画左外框</param>
            /// <param name="isDrawRight">是否画右外框</param>
            /// <param name="isDrawHInside">是否画水平内框</param>
            /// <param name="isDrawVInside">是否画垂直内框</param>
            /// <param name="isDrawDiagonalUp">是否画斜向上线</param>
            /// <param name="lineStyle">线类型</param>
            /// <param name="borderWeight">线粗细</param>
            /// <param name="color">线颜色</param>
            /// <param name="isDrawDiagonalDown">是否画斜向下线</param>
            public void DrawCellsFrame(int startRow, int startColumn, int endRow, int endColumn,
                bool isDrawTop, bool isDrawBottom, bool isDrawLeft, bool isDrawRight,
                bool isDrawHInside, bool isDrawVInside, bool isDrawDiagonalDown, bool isDrawDiagonalUp,
                ExcelStyle.LineStyle lineStyle, ExcelStyle.BorderWeight borderWeight, ExcelStyle.ColorIndex color)
            {
                //获取画边框的单元格
                dynamic range = WorkSheet.Range[WorkSheet.Cells[startRow, startColumn], WorkSheet.Cells[endRow, endColumn]];

                //清除所有边框
                range.Borders[XlBordersIndex.xlEdgeTop].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlEdgeBottom].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlEdgeLeft].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlEdgeRight].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlInsideHorizontal].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlInsideVertical].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlDiagonalDown].LineStyle = ExcelStyle.LineStyle.无;
                range.Borders[XlBordersIndex.xlDiagonalUp].LineStyle = ExcelStyle.LineStyle.无;

                //以下是按参数画边框
                if (isDrawTop)
                {
                    range.Borders[XlBordersIndex.xlEdgeTop].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlEdgeTop].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlEdgeTop].ColorIndex = color;
                }

                if (isDrawBottom)
                {
                    range.Borders[XlBordersIndex.xlEdgeBottom].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlEdgeBottom].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlEdgeBottom].ColorIndex = color;
                }

                if (isDrawLeft)
                {
                    range.Borders[XlBordersIndex.xlEdgeLeft].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlEdgeLeft].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlEdgeLeft].ColorIndex = color;
                }

                if (isDrawRight)
                {
                    range.Borders[XlBordersIndex.xlEdgeRight].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlEdgeRight].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlEdgeRight].ColorIndex = color;
                }

                if (isDrawVInside)
                {
                    range.Borders[XlBordersIndex.xlInsideVertical].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlInsideVertical].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlInsideVertical].ColorIndex = color;
                }

                if (isDrawHInside)
                {
                    range.Borders[XlBordersIndex.xlInsideHorizontal].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlInsideHorizontal].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlInsideHorizontal].ColorIndex = color;
                }

                if (isDrawDiagonalDown)
                {
                    range.Borders[XlBordersIndex.xlDiagonalDown].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlDiagonalDown].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlDiagonalDown].ColorIndex = color;
                }

                if (isDrawDiagonalUp)
                {
                    range.Borders[XlBordersIndex.xlDiagonalUp].LineStyle = lineStyle;
                    range.Borders[XlBordersIndex.xlDiagonalUp].Weight = borderWeight;
                    range.Borders[XlBordersIndex.xlDiagonalUp].ColorIndex = color;
                }

           }

     (3)

    ///summary ///设置单元格背景色及填充方式 ////summary ///paramname=startRow起始行/param ///paramname=startColumn起始列/param ///paramname=endRow结束行/param ///paramname=endColumn结束列/param ///param
      
           /// <summary>
            /// 设置单元格背景色及填充方式
            /// </summary>
            /// <param name="startRow">起始行</param>
            /// <param name="startColumn">起始列</param>
            /// <param name="endRow">结束行</param>
            /// <param name="endColumn">结束列</param>
            /// <param name="color">颜色索引</param>
            public void CellsBackColor(int startRow, int startColumn, int endRow, int endColumn, ExcelStyle.ColorIndex color)
            {
                dynamic range = WorkSheet.Range[WorkSheet.Cells[startRow, startColumn], WorkSheet.Cells[endRow, endColumn]];
                range.Interior.ColorIndex = color;
                range.Interior.Pattern = ExcelStyle.Pattern.Solid;
            }

            /// <summary>
            ///设置单元格背景色及填充方式
            /// </summary>
            /// <param name="startRow">开始行</param>
            /// <param name="startColumn">开始列</param>
            /// <param name="endRow">结束行</param>
            /// <param name="endColumn">结束列</param>
            /// <param name="color">颜色索引</param>
            /// <param name="pattern">填充方式</param>
            public void CellsBackColor(int startRow, int startColumn, int endRow, int endColumn, ExcelStyle.ColorIndex color, ExcelStyle.Pattern pattern)
            {
                dynamic range = WorkSheet.Range[WorkSheet.Cells[startRow, startColumn], WorkSheet.Cells[endRow, endColumn]];
                range.Interior.ColorIndex = color;
                range.Interior.Pattern = pattern;
            }

            /// <summary>
            /// 设置行高
            /// </summary>
            /// <param name="startRow">开始行</param>
            /// <param name="endRow">结束行</param>
            /// <param name="height">行高</param>
            public void SetRowHeight(int startRow, int endRow, float height)
            {
                dynamic range = WorkSheet.Rows[startRow.ToString() + ":" + endRow.ToString(), Type.Missing];
                range.RowHeight = height;
            }

      本文来自freesunshine的博客,原文地址:http://hi.baidu.com/freesunshine/blog/item/58fa79af79ef6ae0faed5090.html

  • 相关阅读:
    各语言最原始数据库访问组件封装DBHelper
    Andorid 之日历控件,可左右滑动,包含公历,农历,节假日等
    Andorid 之日历控件,可左右滑动,包含公历,农历,节假日等
    Andorid 之日历控件,可左右滑动,包含公历,农历,节假日等
    Andorid 之日历控件,可左右滑动,包含公历,农历,节假日等
    如何学习Python?
    如何学习Python?
    如何学习Python?
    如何学习Python?
    写颗搜索二叉树动动脑,开启今年的旅程,新年快乐
  • 原文地址:https://www.cnblogs.com/changbaishan/p/2797474.html
Copyright © 2011-2022 走看看