• Spread常用属性


    Spread 常用属性

    1 取得当前行号、列号。

    int row=e.Row;
    int count=e.Count;
    或者:
    int rowindex = fpSpread1.ActiveSheet.ActiveRowIndex;
    int columnindex = fpSpread1.ActiveSheet.ActiveColumnIndex;

    2 单击一行变颜色。

    private void spdResult_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
    {
    //单击Spread列头时,什么也不处理

    if(!e.ColumnHeader)
    {
    if(spdResult.Sheets[0].Rows.Count!=0)
    {
    for(int i=0;i<spdResult.Sheets[0].Rows.Count;i++)
    {
    spdResult.Sheets[0].Rows[i].BackColor=System.Drawing.Color.White;
    }
    int row=e.Row;
    spdResult.Sheets[0].Rows[row].BackColor=System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(255)), ((System.Byte)(255)));
    }
    }
    }

    3 将Spread的单元格内容付值给一控件的Text

    txtItemCD.Text = spdResult.Sheets[0].Cells[row,count].Text;

    4 给Spread的指定单元格付值。

    spdResult.Sheets[0].Cells[row,count].Text = txtItemCD.Text;

    5 通过上下光标键改变选中行颜色

    private void spdResult_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
    {
    //首先检查spread行数是否为0
    if(spdResult.Sheets[0].Rows.Count==0)
    {
    return;
    }
    else
    {
    for(int i=0;i<spdResult.Sheets[0].Rows.Count;i++)
    {
    spdResult.Sheets[0].Rows[i].BackColor=System.Drawing.Color.White;
    }
    int row=e.NewRow;
    spdResult.Sheets[0].Rows[row].BackColor=System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(255)), ((System.Byte)(255)));
    }
    }

    6 下拉列表加载数据(ComBobox)
    ・ 列表追加(适合于数据量少的情况)

    FarPoint.Win.Spread.CellType.ComboBoxCellType cb4 = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
    cb4.ListWidth = 96;
    cb4.Editable = true;
    cb4.MaxDrop = 10;
    cb4.MaxLength = 1;
    string[] priceTagList = new string[]{" 0 无"," 1 有"};
    cb4.Items = priceTagList;
    this.spdSetList.ActiveSheet.Columns[4].CellType = cb4;

    ・ 从数据库追加

    FarPoint.Win.Spread.CellType.ComboBoxCellType cb12 = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
    cb12.ListWidth = 150;
    cb12.Editable = true;
    cb12.MaxDrop = 10;
    cb12.MaxLength = 8;

    //dsEmployee:数据集Dataset,已经加载好数据的Dataset
    string[] employeeList = DataSetToArray(dsEmployee, 8);
    cb12.Items = employeeList;
    this.spdSetList.ActiveSheet.Columns[12].CellType = cb12;

    private string[] DataSetToArray(DataSet ds, int BlankNum)
    {
    int i = 0;
    int NumLength = 0;
    string[] returnArray = new string[ds.Tables[0].Rows.Count];

    DataRow foundRows = ds.Tables[0].Rows[ds.Tables[0].Rows.Count -1];
    NumLength = foundRows[0].ToString().Length;

    foreach(DataRow dr in ds.Tables[0].Rows)
    {
    returnArray[i] = dr[0].ToString().PadLeft(BlankNum, ' ') + " " + dr[1].ToString();
    i++;
    }
    return returnArray;
    }

    7 Focus移动(跨列)

    public frmProdSetDetail()
    {
    InitializeComponent();
    IsMod = flag;

    FarPoint.Win.Spread.InputMap im;
    im = spdResult.GetInputMap(InputMapMode.WhenFocused);
    im.Put(new Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap);
    im.Put(new Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);

    im = spdResult.GetInputMap(InputMapMode.WhenAncestorOfFocused);
    im.Put(new Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap);
    im.Put(new Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);
    }

    指定单元格获得焦点

    this.fpSpread1.ActiveSheet.SetActiveCell(row,column);

    8 事件触发顺序

    _Enter _EnterCell _EditModeOn _EditChange _EditModeOff _LeaveCell

    9 用隐藏列保存原始数据

    10 设定列类型

    private void SpreadSetting()
    {
    string[] ProductHandleTypeList = new string[]{" ","1 販売/仕入","2 販売","3 仕入"};

    FarPoint.Win.Spread.CellType.ComboBoxCellType cb3 = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
    cb3.ListWidth = 100;
    cb3.Editable = true;
    cb3.MaxDrop = 5;
    cb3.MaxLength = 1;
    cb3.Items = ProductHandleTypeList;

    this.spdResult.ActiveSheet.Columns[5].CellType = cb3;

    //设置一般数据型

    FarPoint.Win.Spread.CellType.NumberCellType nmbrcell = new FarPoint.Win.Spread.CellType.NumberCellType();
    nmbrcell.ShowSeparator = false;
    nmbrcell.DecimalPlaces = 0;
    nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
    nmbrcell.MaximumValue = 9999;
    nmbrcell.MinimumValue = 1;
    this.spdResult.ActiveSheet.Columns[13].CellType = nmbrcell;

    //设置JAN

    FarPoint.Win.Spread.CellType.NumberCellType nmbrcellJan = new FarPoint.Win.Spread.CellType.NumberCellType();
    nmbrcellJan.ShowSeparator = false;
    nmbrcellJan.DecimalPlaces = 0;
    nmbrcellJan.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
    nmbrcellJan.MaximumValue = 9999999999999;
    nmbrcellJan.MinimumValue = 0;
    this.fpSpread1.ActiveSheet.Columns[0].CellType = nmbrcellJan;
    this.fpSpread1.ActiveSheet.Columns[0].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;

    //

    FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = new FarPoint.Win.Spread.CellType.NumberCellType();
    numberCellType1.ShowSeparator = true;
    numberCellType1.DecimalPlaces = 0;
    numberCellType1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;
    numberCellType1.MaximumValue = 99999999;
    numberCellType1.MinimumValue = 0;
    this.spdResult.ActiveSheet.Columns[20].CellType = numberCellType1;

    //%数的设定

    FarPoint.Win.Spread.CellType.PercentCellType prctcell = new FarPoint.Win.Spread.CellType.PercentCellType();
    prctcell.PercentSign = "%";
    this.spdResult.ActiveSheet.Columns[33].CellType = prctcell;

    //日期的设定

    FarPoint.Win.Spread.CellType.DateTimeCellType datecell = new FarPoint.Win.Spread.CellType.DateTimeCellType();
    datecell.MaximumDate = new System.DateTime(2050, 12, 31, 0, 0, 0, 0);
    datecell.MinimumDate = new System.DateTime(2001, 1, 1, 0, 0, 0, 0);

    this.spdResult.ActiveSheet.Columns[27,30].CellType = datecell;
    }

    11 列、单元格锁定

    //锁定

    this.fpSpread1.ActiveSheet.Columns[0,4].Locked = true;//锁定列范围

    this.fpSpread1.ActiveSheet.Columns[0].Locked = true;//锁定单列


    //解锁

    this.fpSpread1.ActiveSheet.Columns[0,4].Locked = false;//解锁列范围

    this.fpSpread1.ActiveSheet.Columns[0].Locked = false;

    12 Spread追加行、列

    //追加行

    int rowindex = this.fpSpread1.ActiveSheet.Rows.Count;
    this.fpSpread1.ActiveSheet.Rows.Add(rowindex,1);

    //追加列

    int columnindex = this.fpSpread1.ActiveSheet.Columns.Count;
    this.fpSpread1.ActiveSheet.Columns.Add(columnindex,1);

    13 行、列删除

    //删除行

    this.fpSpread1.ActiveSheet.Rows.Remove(startindex,count);

    //追加列

    this.fpSpread1.ActiveSheet.Columns.Remove(startindex,count);

    14 button事件

    private void spdSetList_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
    {
    int rowCount = e.Row;
    int columnCount = e.Column;

    if (e.Column == 16)
    {
    if (message.ShowMessage("ConfirmDelete", "選択したライン") == DialogResult.Yes)
    {
    string DeleteTag = this.spdSetList.ActiveSheet.Cells[rowCount, columnCount+1].Text.Trim();
    if (DeleteTag == "0" || DeleteTag == "2")
    {
    this.spdSetList.ActiveSheet.Cells[rowCount, columnCount+1].Text = "3";
    this.spdSetList.ActiveSheet.Cells[rowCount,columnCount+1].BackColor = clrWater;
    this.spdSetList.ActiveSheet.Rows[rowCount].Visible = false;
    }
    else if (DeleteTag == "1")
    {
    this.spdSetList.ActiveSheet.Rows[rowCount].Remove();
    }
    }
    }
    }

    关于Spread打印的一些属性用法__页眉页脚的使用
    分类: VB Spread 2007-11-19 14:01 357人阅读 评论(0) 收藏 举报
    页眉页脚的使用

    使用属性
    p_SpreadPrint.PrintHeader = headerstring
    p_SpreadPrint.PrintFooter = headerstring

    其中HeaderString是一个字符串,有一些预定义格式,如

    /fn"MS Sans Serif"/fz"8.25"/fb0/fi0/fu0/fk0/c中
    /fn"MS Sans Serif"/fz"8.25"/fb0/fi0/fu0/fk0/l左
    /fn"MS Sans Serif"/fz"18"/fb0/fi0/fu0/fk0/r右

    显然有:

    /fn"字体"
    /fz"字体大小点数"
    /c 意为中间部分 类似的 /l /r就不用说了
    如果标题有两行以上,则在一行的最后加上 /n ,注意前面要有空格,否则似乎会出错。

    主要代码可用调试模式在以下范例窗口中看到
    frmPrnHeaderFoolter,这个是我自己改过名了,原来的名字自己去找一找吧,就是Demo Overview中设置页眉页的部分。

    spread.CellType = CellTypeStaticText
    '自动折行
    spread.TypeTextWordWrap = True

  • 相关阅读:
    Python自动化测试用例设计--测试类型
    几个常用高阶函数(es6)
    在ES中有关变量和作用域的几个小坑
    HTML快速生成代码的语法(Emmet)
    JavaScript之对象
    C语言格式化输出输入
    常用的win10快捷键
    Scrapy核心组件解析
    scrapy持久化存储的几种方式的简介
    scrapy框架的基础使用流程
  • 原文地址:https://www.cnblogs.com/renfeng/p/3652661.html
Copyright © 2020-2023  润新知