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. python中的单引号双引号和三引号

    python的单引号和双引号没有本质的区别,而三引号有两种作用:注释和换行 一. 单引号中可以包含双引号,双引号中可以包含单引号 print("好好学习,'天天向上'") 结果: ...

  2. hdu 1847 Good Luck in CET-4 Everybody!(sg)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. spring mvc中,如何在 Java 代码里,获取 国际化 内容

    首先,在Spring的application.xml中定义 <bean id="messageSource" class="org.springframework. ...

  4. svg札记

    1.人老了,有些事情太容易忘记了,这里做下笔记,供参考,for self for you. 2.源于地图监控,建筑级别各大地图商的api(高德.百度.腾讯等)已经足够使用,唯独室内图这块还差点. 3. ...

  5. List集合添加自定义对象

    public class Student { private String name; private int age; public Student() { super(); } public St ...

  6. MyISAM引擎的特点及优化方法

    1.什么是MyISAM引擎?MyISAM引擎是MySQL关系数据库管理系统的默认存储引擎(MySQL5.5.5以前),这种MySQL的表存储结构从旧的ISAM代码扩展出许多有用的功能.在存储的时候,每 ...

  7. PHP-FPM线上状态分析

    一.PHP—FPM状态分析 1.启用php-fpm状态分析: pm.status_path = /status   2.nginx配置:   server {     listen  *:80 def ...

  8. linux下使用fstat来计算文件的大小

    #include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <fcntl.h ...

  9. 前端调错看ajax请求操作

    ---------------------------------------------------------------------------------------------------- ...

  10. MySQL实战 | 01-当执行一条 select 语句时,MySQL 到底做了啥?

    原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了, ...