using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

using App.Grid.Enum;

namespace App.Grid.Interface
{
    public interface ICells
    {
        /// <summary>
        /// 单元格集合(一维数组)
        /// </summary>
        List<ICell> _Cells
        {
            get;
        }

/// <summary>
        /// 单元格集合(二维数组)
        /// </summary>
        List<List<ICell>> Cells
        {
            get;
        }

/// <summary>
        /// 结束编辑
        /// </summary>
        /// <param name="aCancel">是否取消已输入文本</param>
        void EndEditCell(bool aCancel);

/// <summary>
        /// 合并单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void MergeCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        /// 拆分单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void SplitCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        /// 设置选择单元格(参数等于0代表取消选择)
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void SetSelectCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        /// 是否有被选择的单元格
        /// </summary>
        /// <returns>是否有被选择的单元格</returns>
        bool HasSelected();
       
        /// <summary>
        /// 获取正在输入的单元格
        /// </summary>
        /// <param name="Col">列号</param>
        /// <param name="Row">行号</param>
        void GetInputCell(out int Col, out int Row);

/// <summary>
        /// 获取被选择的区域
        /// </summary>
        /// <param name="Col1">起始列</param>
        /// <param name="Row1">起始行</param>
        /// <param name="Col2">末尾列</param>
        /// <param name="Row2">末尾行</param>
        void GetSelectCell(out int Col1, out int Row1, out int Col2, out int Row2);
    
        /// <summary>
        /// 扩展行列(将合并单元格完整的包括其中)
        /// </summary>
        /// <param name="Col1">起始列</param>
        /// <param name="Row1">起始行</param>
        /// <param name="Col2">末尾列</param>
        /// <param name="Row2">末尾行</param>
        void GetExpandCell(ref int Col1, ref int Row1, ref int Col2, ref int Row2);

/// <summary>
        /// 设置单元格别名
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aAlias">别名</param>
        void SetCellAlias(int aCol, int aRow, string aAlias);

/// <summary>
        /// 获取单元格别名
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>别名</returns>
        string GetCellAlias(int aCol, int aRow);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aBackColor"></param>
        void SetCellBackColor(int aCol1, int aRow1, int aCol2, int aRow2, Color aBackColor);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol"></param>
        /// <param name="aRow"></param>
        /// <returns></returns>
        Color GetCellBackColor(int aCol, int aRow);

/// <summary>
        /// 设置单元格边框
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aBorderType">AllBorder, LeftBorder, TopBorder, RightBorder, BottomBorder</param>
        /// <param name="aBorderWidth">边框宽度</param>
        /// <param name="aBorderStyle">SolidBorder, DashBorder, DotBorder, DashDotBorder, DashDotDotBorder, SolidDoubleBorder</param>
        /// <param name="aBorderColor">边框颜色</param>
        void SetCellBorder(int aCol1, int aRow1, int aCol2, int aRow2, BorderType aBorderType, int aBorderWidth, BorderBrush aBorderStyle, Color aBorderColor);

/// <summary>
        /// 获取单元格边框
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aBorderType">LeftBorder, TopBorder, RightBorder, BottomBorder(不包括AllBorder)</param>
        /// <param name="BorderWidth">边框宽度</param>
        /// <param name="BorderStyle">SolidBorder, DashBorder, DotBorder, DashDotBorder, DashDotDotBorder, SolidDoubleBorder</param>
        /// <param name="BorderColor">边框颜色</param>
        void GetCellBorder(int aCol, int aRow, BorderType aBorderType, ref int BorderWidth, ref BorderBrush BorderStyle, ref Color BorderColor);

/// <summary>
        /// 设置单元格大小写
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aCharCase">大小写</param>
        void SetCellCharCase(int aCol1, int aRow1, int aCol2, int aRow2, CharacterCasing aCharCase);

/// <summary>
        /// 获取单元格大小写
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>大小写</returns>
        CharacterCasing GetCellCharCase(int aCol, int aRow);

/// <summary>
        /// 设置单元格控制格式
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aControlType">控制格式</param>
        void SetCellControl(int aCol1, int aRow1, int aCol2, int aRow2, FormatControl aControlType);

/// <summary>
        /// 获取单元格控制格式
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>控制格式</returns>
        FormatControl GetCellControl(int aCol, int aRow);

/// <summary>
        /// 设置单元格公式
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aExpression">公式</param>
        void SetCellexpression_r(int aCol, int aRow, string aExpression);

/// <summary>
        /// 获取单元格公式
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>公式</returns>
        string GetCellexpression_r(int aCol, int aRow);

/// <summary>
        /// 设置单元格字体
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aFontName">字体</param>
        void SetCellFontName(int aCol1, int aRow1, int aCol2, int aRow2, string aFontName);

/// <summary>
        /// 设置单元格字号
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aFontSize">字号</param>
        void SetCellFontSize(int aCol1, int aRow1, int aCol2, int aRow2, int aFontSize);

/// <summary>
        /// 设置单元格字体颜色
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aFontColor">字体颜色</param>
        void SetCellFontColor(int aCol1, int aRow1, int aCol2, int aRow2, Color aFontColor);

/// <summary>
        /// 设置单元格字体粗体
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aBold">字体粗体</param>
        void SetCellFontStyleBold(int aCol1, int aRow1, int aCol2, int aRow2, bool aBold);

/// <summary>
        /// 设置单元格字体斜体
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aItalic">字体斜体</param>
        void SetCellFontStyleItalic(int aCol1, int aRow1, int aCol2, int aRow2, bool aItalic);

/// <summary>
        /// 设置单元格字体删除线
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aStrikeout">字体删除线</param>
        void SetCellFontStyleStrikeout(int aCol1, int aRow1, int aCol2, int aRow2, bool aStrikeout);

/// <summary>
        /// 设置单元格字体下滑线
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aUnderline">字体下滑线</param>
        void SetCellFontStyleUnderline(int aCol1, int aRow1, int aCol2, int aRow2, bool aUnderline);

/// <summary>
        /// 设置单元格字体类型
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aStyle">字体类型</param>
        void SetCellFontStyle(int aCol1, int aRow1, int aCol2, int aRow2, FontStyle aStyle);

/// <summary>
        /// 获取单元格字体
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体</returns>
        string GetCellFontName(int aCol, int aRow);

/// <summary>
        /// 获取单元格字号
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字号</returns>
        int GetCellFontSize(int aCol, int aRow);

/// <summary>
        /// 获取单元格字体颜色
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体颜色</returns>
        Color GetCellFontColor(int aCol, int aRow);

/// <summary>
        /// 获取单元格字体粗体
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体粗体</returns>
        bool GetCellFontStyleBold(int aCol, int aRow);

/// <summary>
        /// 获取单元格字体斜体
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体斜体</returns>
        bool GetCellFontStyleItalic(int aCol, int aRow);

/// <summary>
        /// 获取单元格字体删除线
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体删除线</returns>
        bool GetCellFontStyleStrikeout(int aCol, int aRow);

/// <summary>
        /// 获取单元格字体下滑线
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体下滑线</returns>
        bool GetCellFontStyleUnderline(int aCol, int aRow);

/// <summary>
        /// 获取单元格字体类型
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>字体类型</returns>
        FontStyle GetCellFontStyle(int aCol, int aRow);

/// <summary>
        /// 设置单元格水平对齐
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aHAlignment">水平对齐</param>
        void SetCellHAlignment(int aCol1, int aRow1, int aCol2, int aRow2, StringAlignment aHAlignment);

/// <summary>
        /// 设置单元格垂直对齐
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aVAlignment">垂直对齐</param>
        void SetCellVAlignment(int aCol1, int aRow1, int aCol2, int aRow2, StringAlignment aVAlignment);

/// <summary>
        /// 获取单元格水平对齐
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>水平对齐</returns>
        StringAlignment GetCellHAlignment(int aCol, int aRow);

/// <summary>
        /// 获取单元格垂直对齐
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>垂直对齐</returns>
        StringAlignment GetCellVAlignment(int aCol, int aRow);

/// <summary>
        /// 设置单元格多行
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aMultiline">多行</param>
        void SetCellMultiline(int aCol1, int aRow1, int aCol2, int aRow2, bool aMultiline);

/// <summary>
        /// 获取单元格多行
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>多行</returns>
        bool GetCellMultiline(int aCol, int aRow);

/// <summary>
        /// 设置单元格格式
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aFormatType">格式类型</param>
        /// <param name="aFormatText">格式文本</param>
        void SetCellFormat(int aCol1, int aRow1, int aCol2, int aRow2, FormatType aFormatType, string aFormatText);

/// <summary>
        /// 获取单元格格式
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="FormatType">格式类型</param>
        /// <param name="FormatText">格式文本</param>
        void GetCellFormat(int aCol, int aRow, out FormatType FormatType, out string FormatText);

/// <summary>
        /// 设置单元格输入法
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aImeName">输入法</param>
        void SetCellIme(int aCol1, int aRow1, int aCol2, int aRow2, string aImeName);

/// <summary>
        /// 获取单元格输入法
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>输入法</returns>
        string GetCellIme(int aCol, int aRow);

/// <summary>
        /// 设置单元格下一输入点
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aNextCol">下一输入点列号</param>
        /// <param name="aNextRow">下一输入法行号</param>
        void SetCellNextPos(int aCol, int aRow, int aNextCol, int aNextRow);

/// <summary>
        /// 获取单元格下一输入点
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="NextCol">下一输入点列号</param>
        /// <param name="NextRow">下一输入点行号</param>
        void GetCellNextPos(int aCol, int aRow, out int NextCol, out int NextRow);

/// <summary>
        /// 设置提示文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aNoteText">提示文本</param>
        void SetCellNote(int aCol, int aRow, string aNoteText);

/// <summary>
        /// 获取提示文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>提示文本</returns>
        string GetCellNote(int aCol, int aRow);

/// <summary>
        /// 设置单元格打印隐藏
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aPrintHide">打印隐藏</param>
        void SetCellPrintHide(int aCol1, int aRow1, int aCol2, int aRow2, bool aPrintHide);

/// <summary>
        /// 获取单元格打印隐藏
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>打印隐藏</returns>
        bool GetCellPrintHide(int aCol, int aRow);

/// <summary>
        /// 设置单元格只读
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aReadOnly">只读</param>
        void SetCellReadonly(int aCol1, int aRow1, int aCol2, int aRow2, bool aReadOnly);

/// <summary>
        /// 获取单元格只读
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>只读</returns>
        bool GetCellReadonly(int aCol, int aRow);

/// <summary>
        /// 设置单元格最大输入长度
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aTextLength">最大输入长度</param>
        void SetCellTextLength(int aCol1, int aRow1, int aCol2, int aRow2, int aTextLength);

/// <summary>
        /// 获取单元格最大输入长度
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>最大输入长度</returns>
        int GetCellTextLength(int aCol, int aRow);

/// <summary>
        /// 设置单元格文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aValue">文本</param>
        void SetCellValue(int aCol, int aRow, string aValue);

/// <summary>
        /// 获取单元格文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>文本</returns>
        string GetCellValue(int aCol, int aRow);

/// <summary>
        /// 添加单元格图片
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <param name="aFileName">文件名</param>
        /// <param name="aStretch">是否拉伸</param>
        void AddCellPicture(int aCol, int aRow, string aFileName, bool aStretch);

/// <summary>
        /// 删除单元格图片
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        void DelCellPicture(int aCol, int aRow);

/// <summary>
        /// 获取下拉框文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>下拉框文本</returns>
        List<string> GetCellDropText(int aCol, int aRow);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns></returns>
        string GetCellCheckText(int aCol, int aRow);

/// <summary>
        /// 获取多选框文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>多选框文本</returns>
        List<string> GetCellRadioText(int aCol, int aRow);

/// <summary>
        /// 获取按钮文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>按钮文本</returns>
        string GetCellButtonText(int aCol, int aRow);

/// <summary>
        /// 获取按钮脚本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>按钮脚本</returns>
        string GetCellButtonScript(int aCol, int aRow);

/// <summary>
        /// 获取链接文本
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>链接文本</returns>
        string GetCellLinkText(int aCol, int aRow);

/// <summary>
        /// 获取链接地址
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>链接地址</returns>
        string GetCellLinkAddress(int aCol, int aRow);

/// <summary>
        /// 获取名称为aAlias的单元格
        /// </summary>
        /// <param name="aAlias">别名</param>
        /// <param name="Col">列号</param>
        /// <param name="Row">行号</param>
        void GetCellCoordinate(string aAlias, out int Col, out int Row);

/// <summary>
        /// 获取单元格类型
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>GeneralSign, MergeSign, SplitSign</returns>
        SignType GetCellSign(int aCol, int aRow);

/// <summary>
        /// 设置文本类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void SetTextCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        /// 设置下拉框类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aList">下拉列表</param>
        void SetDropCell(int aCol1, int aRow1, int aCol2, int aRow2, List<string> aList);

/// <summary>
        /// 设置按钮类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aButtonText">按钮文本</param>
        /// <param name="aButtonScript">按钮脚本</param>
        void SetButtonCell(int aCol1, int aRow1, int aCol2, int aRow2, string aButtonText, string aButtonScript);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aCheckText"></param>
        void SetCheckCell(int aCol1, int aRow1, int aCol2, int aRow2, string aCheckText);

/// <summary>
        /// 设置多选框类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aRadioText">多选框文本</param>
        void SetRadioCell(int aCol1, int aRow1, int aCol2, int aRow2, List<string> aRadioText);

/// <summary>
        /// 设置日期类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void SetDateCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        /// 设置时间类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void SetTimeCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        /// 设置链接类型单元格
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aLinkText">链接文本</param>
        /// <param name="aLinkAddress">链接地址</param>
        void SetLinkCell(int aCol1, int aRow1, int aCol2, int aRow2, string aLinkText, string aLinkAddress);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aType"></param>
        /// <param name="aOrientation"></param>
        void SetBarcodeCell(int aCol1, int aRow1, int aCol2, int aRow2, BarcodeType aType, bool aOrientation);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        void SetRichtextCell(int aCol1, int aRow1, int aCol2, int aRow2);

/// <summary>
        ///
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aTitle"></param>
        /// <param name="aHorizontalTitle"></param>
        /// <param name="aVerticalTitle"></param>
        void SetChartCell(int aCol1, int aRow1, int aCol2, int aRow2, string aTitle, string aHorizontalTitle, string aVerticalTitle);

/// <summary>
        /// 获取单元格类型
        /// </summary>
        /// <param name="aCol">列号</param>
        /// <param name="aRow">行号</param>
        /// <returns>"CellText", "CellDrop", "CellButton"等等</returns>
        string GetCellType(int aCol, int aRow);

/// <summary>
        ///
        /// </summary>
        /// <param name="aName"></param>
        void SetRichtextFontName(string aName);

/// <summary>
        ///
        /// </summary>
        /// <param name="aSize"></param>
        void SetRichtextFontSize(int aSize);

/// <summary>
        ///
        /// </summary>
        /// <param name="aColor"></param>
        void SetRichtextFontColor(Color aColor);

/// <summary>
        ///
        /// </summary>
        /// <param name="aBold"></param>
        void SetRichtextFontStyleBold(bool aBold);

/// <summary>
        ///
        /// </summary>
        /// <param name="aItalic"></param>
        void SetRichtextFontStyleItalic(bool aItalic);

/// <summary>
        ///
        /// </summary>
        /// <param name="aStrikeout"></param>
        void SetRichtextFontStyleStrikeout(bool aStrikeout);

/// <summary>
        ///
        /// </summary>
        /// <param name="aUnderline"></param>
        void SetRichtextFontStyleUnderline(bool aUnderline);

/// <summary>
        ///
        /// </summary>
        /// <param name="aColor"></param>
        void SetRichtextBackColor(Color aColor);

/// <summary>
        ///
        /// </summary>
        /// <param name="aHorizontalAlignment"></param>
        void SetRichtextHorizontalAlignment(HorizontalAlignment aHorizontalAlignment);

/// <summary>
        /// 计算公式(0:先纵后横,1:先横后纵,ExpressionExplainted==TRUE公式自动计算)
        /// </summary>
        /// <param name="aOrder"></param>
        void ExplainAllExpresion(int aOrder);

/// <summary>
        /// 计算单元格公式(ExpressionExplainted==TRUE公式自动计算)
        /// </summary>
        /// <param name="aCol"></param>
        /// <param name="aRow"></param>
        void ExplainCellexpression_r(int aCol, int aRow);

/// <summary>
        /// 填充
        /// </summary>
        /// <param name="aCol1">起始列</param>
        /// <param name="aRow1">起始行</param>
        /// <param name="aCol2">末尾列</param>
        /// <param name="aRow2">末尾行</param>
        /// <param name="aDirection">LeftDirection, TopDirection, RightDirection, BottomDirection</param>
        /// <param name="aFillType">CopyFill, OrderFill, DatetimeFill, ExpressionFill</param>
        void Fill(int aCol1, int aRow1, int aCol2, int aRow2, DirectionType aDirection, FillType aFillType);

/// <summary>
        /// 排序
        /// </summary>
        /// <param name="aOrientation">行列</param>
        /// <param name="aIndex">序号</param>
        /// <param name="aSort">排序类型</param>
        void Sort(bool aOrientation, int aIndex, OrderType aSort);
    }
}

App.CSharp.Grid的ICells接口的更多相关文章

  1. 【转】App架构设计经验谈:接口的设计

    App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用REST ...

  2. 示例浅谈PHP与手机APP开发,即API接口开发

    示例浅谈PHP与手机APP开发,即API接口开发 API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞 ...

  3. Csharp多态的实现(接口)

    1.什么是接口 接口可以看做是一个标准, 所有继承的子类需要按照接口中声明的方法来 接口用关键字 interface 修饰,接口的名字一般是I.........able ,表示我有什么能力 接口一般是 ...

  4. IOS中APP开发常用的一些接口

    免费的API接口: 1.聚合数据,上面有手机归属地查询等: 2.百度API store:上面有很多免费的接口,可以使用在自己的app中: 3.环信:提供一些用户交互的一些场景等,可以用来做即时通讯软件

  5. 20.如何从app业务逻辑提炼api接口

    在app后端的工作中,设计api是一个很考验设计能力的工作.在项目的初始阶段,只知道具体的业务逻辑,那怎么把业务逻辑抽象和提炼,设计出api呢?通过阅读本文,可解答以上疑惑. 在本文中,是用以前做过的 ...

  6. .NET Core CSharp初级篇 1-5 接口、枚举、抽象

    .NET Core CSharp初级篇 1-5 本节内容类的接口.枚举.抽象 简介 问题 如果你需要表示星期或者是某些状态,使用字符串或者数字是否不直观? 你是否发现,无论何种电脑,它的USB口的设计 ...

  7. ApachShiro 一个系统 两套验证方法-(后台管理员登录、前台App用户登录)同一接口实现、源码分析

    需求: 在公司新的系统里面博主我使用的是ApachShiro 作为安全框架.作为后端的鉴权以及登录.分配权限等操作 管理员的信息都是存储在管理员表 前台App 用户也需要校验用户名和密码进行登录.但是 ...

  8. Yii2 给iOS App写推送的接口

    public function actionApns() { //手机注册时候返回的设备号,在xcode中输出的,复制过来去掉空格 $deviceToken = '7217a01836349b194b ...

  9. 利用缓存实现APP端与服务器接口交互的Session控制

    与传统B/S模式的Web系统不同,移动端APP与服务器之间的接口交互一般是C/S模式,这种情况下如果涉及到用户登录的话,就不能像Web系统那样依赖于Web容器来管理Session了,因为APP每发一次 ...

随机推荐

  1. Redis源码研究:哈希表 - 蕫的博客

    [http://dongxicheng.org/nosql/redis-code-hashtable/] 1. Redis中的哈希表 前面提到Redis是个key/value存储系统,学过数据结构的人 ...

  2. 牛客练习赛7E 珂朵莉的数列

    题意:求所有子区间的逆序数对数之和 题解:树状数组维护,对于每一对逆序数(l,r)属于l*(n-r+1)个区间,计算每一对对结果的贡献即可,可用树状数组维护,sum维护(n-r+1),按逆序数那样操作 ...

  3. Git学习笔记整理【图像解析、基础命令、分支、远程仓库】

    Git别名设置:https://www.cnblogs.com/hero123/p/9105381.html Git远程项目公钥配置:https://www.cnblogs.com/hero123/p ...

  4. ionic2——安装Java jdk并配置环境变量

    前言:jdk是 Java 语言的软件开发工具包,它包含了Java 的运行环境,Java 工具和Java 基础的类库.做java web开发,android开发,还有现在流行的混合式App开发,都需要安 ...

  5. 分布式_理论_04_ 3PC

    一.前言 五.参考资料 1.分布式理论(四)—— 一致性协议之 3PC 2.分布式理论(四) - 3PC协议 3.

  6. LeetCode OJ:Binary Tree Zigzag Level Order Traversal(折叠二叉树遍历)

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  7. LeetCode OJ:Validate Binary Search Tree(合法的二叉搜索树)

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  8. InnoDB引擎的特点及优化方法

    1.什么是InnoDB引擎?      InnoDB引擎是MySQL数据库的另一个重要的存储引擎,正成为目前MySQL AB所发行的新版的标准,被包含在所有二进制安装包里,和其他存储引擎相比,Inno ...

  9. MySQL引擎各个引擎对比介绍

    1.什么是存储引擎? 存储引擎类似于录制的视频文件,可以转换成不同的格式,如MP4,avi等格式,而存储在我们的磁盘上也会存在于不同类型的文件系统中如:Windows里常见的NTFS,fat32等.存 ...

  10. 树莓派视频监控 —— 使用 mjpg

    下载到树莓派本地: $ wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip $ unzip master.zip ...