delphi7下使用ejundatagrid的总结

ejundatagrid是一个国产的中国式报表控件,目前网络上已难见踪影,厂家网址也不失链了。在delphi7下,我用了很多的类excel、类stringgrid的控件,我觉是它是最好使用的控件,没有之一。就因为这个控件,我买了一套授权,且它不支持现在的delphi xe的最新版本,我写的主要程序都没有往xe上迁移。

这个控件,可以与excel进行方 便交换数据,只需复制粘贴就可以将excel数据放入自己的软件中,也可以将结果快速导出或复制粘贴到excel,支持常规的公式。因为热爱,所以我将自己总结的一些常规操作放上来,记忆存档。

TEjunDataGrid控件的基本操作

1、获取行数和列数:

使用RowCount和ColCount属性可以获取到网格的行数和列数。

==============

AGrid.RowCount

AGrid.ColCount

读取和写入单元格值:通过Cells属性可以获取或设置特定单元格的值。

2、选择一定范围的单元格:

SelectRangle方法可以用于选定一个矩形区域的单元格。

==============

AGrid.SelectRangle(2, i, 5, i);

3、 遍历EjunDataGrid中的选择区域

这个操作可以让我们遍历EjunDataGrid上被选定的单元格。在下面的例子中,我们遍历从左上角到右下角的所有单元格。

==============

for i := EjunDatagrid.Selection.Top to EjunDatagrid.Selection.Bottom do

  for j := EjunDatagrid.Selection.Left to EjunDatagrid.Selection.Right do

  begin

    // 执行相关操作...

  end;

4、获取EjunDataGrid的选择区域

通过Selection属性,我们可以获取到EjunDataGrid当前选定的区域。Selection属性返回一个包含四个字段(Top, Bottom, Left, Right)的记录,分别代表选定区域的上边界、下边界、左边界和右边界。

==============

var

  sel: TGridRect;

begin

  sel := EjunDatagrid.Selection;

  // 执行相关操作...

end;

如果有其他特定的TEjunDataGrid操作需要澄清,请随时告诉我。

5、读取EjunDataGrid中单元格的内容

Cells属性可以让我们访问EjunDataGrid中的每个单元格。然后通过.Text可以获取到单元格内的文本。

==============

cellText := EjunDatagrid.Cells[j, i].Text;

6、设置EjunDataGrid中单元格的背景颜色

可以使用Cells属性选定特定的单元格,然后使用.Style.BgColor设置该单元格的背景颜色。

==============

if (Stype = 'T') then

  EjunDatagrid.Cells[j, i].Style.BgColor := clGreen;

 根据条件设置EjunDataGrid单元格的背景颜色

基于数据库查询结果的不同情况,为EjunDataGrid中的单元格设置不同的背景颜色。

==============

if (Stype = 'T') then

  acell.Style.BgColor := clGreen

else if (Stype = 'C') then

  AGrid.Cells[Col, Row].Style.BgColor := clOlive

// ...

7、设置EjunDataGrid的行数和列数

通过设置RowCount和ColCount属性,可以定义EjunDataGrid的行数和列数。

==============

AGrid.RowCount := MaxRow + 1;

AGrid.ColCount := MaxCol + 1;

8、将数据库查询结果填充到EjunDataGrid中

使用Cells属性来定位特定的单元格,并使用AsString方法将从数据库获取的值赋给该单元格。

==============

AGrid.Cells[Col, Row].AsString := ADOQuery.FieldByName('标题').AsString;

9、合并EjunDataGrid中的单元格

通过Merge方法,

可以合并EjunDataGrid中的一组单元格。

MergeRect是一个包含四个字段(Left, Top, Right, Bottom)的记录,代表要合并的区域。

==============

AGrid.Merge(MergeRect);

合并EjunDataGrid中的单元格

Merge方法用于合并EjunDataGrid中的一组单元格。它接收一个TRect类型的参数,该参数是一个记录类型,包含四个字段:Left、Top、Right和Bottom,这四个字段分别代表合并区域的左边界、上边界、右边界和下边界。

在以下代码片段中,我们先从数据库查询获取到需要合并的单元格区域(StartCol, StartRow, EndCol, EndRow),然后将其赋值给MergeRect,最后调用Merge方法进行单元格合并:

==============

MergeRect.Left := MergeQuery.FieldByName('StartCol').AsInteger;

MergeRect.Top := MergeQuery.FieldByName('StartRow').AsInteger;

MergeRect.Right := MergeQuery.FieldByName('EndCol').AsInteger;

MergeRect.Bottom := MergeQuery.FieldByName('EndRow').AsInteger;

AGrid.Merge(MergeRect);

注意,在使用Merge方法之前,应确保待合并的单元格区域内没有已经被其他合并区域覆盖的单元格。如果存在,可能会导致合并操作失败或程序错误。

10、获取合并单元格数量:

使用MergedCellCount属性,可以获取到网格中合并单元格的数量。

==============

AGrid.MergedCellCount

获取合并单元格区域:通过MergedCellRanges[]方法,可以获取到某个合并单元格的区域(返回一个TRect对象,其中包含该区域的左上角和右下角的坐标)。

==============

r := AGrid.MergedCellRanges[i];

判断行是否在合并单元格内:检查指定的行(ARow)是否在合并单元格的范围内。如果是,则函数返回True,否则返回False。

==============

if (r.Top <= ARow) and (r.Bottom >= ARow) then

begin

  Result := True;

  Break;

end;

以上就是针对TEjunDataGrid中合并单元格的主要操作。

3. 合并单元格操作

TEjunDataGrid控件支持合并单元格,你可以进行以下操作:

11、判断行是否在合并单元格内:

检查指定的行(ARow)是否在合并单元格的范围内。如果是,则函数返回True,否则返回False。

==============

if (r.Top <= ARow) and (r.Bottom >= ARow) then

begin

  Result := True;

  Break;

end;

12、遍历合并单元格:

使用MergedCellCount属性和MergedCellRanges方法可以遍历所有已经合并的单元格。

==============

for i := 0 to AGrid.MergedCellCount - 1 do

begin

  r := AGrid.MergedCellRanges[i];

  if (r.Top <= ARow) and (r.Bottom >= ARow) then

  begin

    Result := True;

    Break;

  end;

end;

13、获取合并单元格区域:

通过MergedCellRanges[]方法,可以获取到某个合并单元格的区域(返回一个TRect对象,其中包含该区域的左上角和右下角的坐标)。

==============

r := AGrid.MergedCellRanges[i];

14、选定EjunDataGrid中的一组单元格,并设置其对齐方式

通过SelectRangle方法,可以选定EjunDataGrid中的一组单元格。然后使用Selection.HorzAlign设置该区域内所有单元格的水平对齐方式。

==============

AGrid.SelectRangle(MergeRect);

AGrid.Selection.HorzAlign := haCenter;

15、设置EjunDataGrid中各列的宽度

通过ColWidths属性,可以设置EjunDataGrid中每一列的宽度。

==============

AGrid.ColWidths[2] := 200;

for I := 3 to AGrid.ColCount do

  AGrid.ColWidths[I] := 120;

16、遍历EjunDataGrid的每一行:

==============

for i := 1 to AGrid.RowCount - 1 do

读取和写入单元格值:例如在前三行,它将生成的编码赋值给第一个单元格,并将其归类为"C"类型。

==============

AGrid.Cells[1, i].AsString := GetFormattedCode('c-', cCount);

Stype := 'C';

17、设置单元格字体颜色:

通过Font.Color属性,可以修改单元格的字体颜色。

==============

AGrid.Cells[ACol, ARow].Font.Color := clRed;

设置单元格背景颜色:通过Color属性,可以修改单元格的背景颜色。

==============

AGrid.Cells[ACol, ARow].Color := clYellow;

设置单元格对齐方式:通过Alignment属性,可以修改单元格的内容对齐方式。

==============

AGrid.Cells[ACol, ARow].Alignment := taCenter;

请告诉我当你准备好进行后续部分时。

28、单元格的固定和释放

在TEjunDataGrid中,可以将特定的单元格设为固定或者非固定状态:

固定单元格:通过FixedCells[]方法,可以将指定的单元格设为固定状态。

==============

AGrid.FixedCells[j, i] := True;

释放单元格:通过FixedCells[]方法,可以将指定的单元格设为非固定状态。

==============

AGrid.FixedCells[j, i] := False;

以上就是从上文中提炼出的关于TEjunDataGrid的操作,包括基本属性和方法、合并单元格操作、遍历操作、单元格样式操作、单元格的固定和释放等。希望这些信息能对你有所帮助。

19、遍历操作

TEjunDataGrid可以通过循环进行逐行或逐列的遍历,这是处理数据格子中信息常用的方法:

遍历所有行:你可以通过循环遍历AGrid的所有行,进行逐行处理。

==============

for i := 0 to AGrid.RowCount - 1 do

遍历所有列:你也可以通过循环遍历AGrid的所有列,进行逐列处理。

==============

for j := 0 to AGrid.ColCount - 1 do

遍历所有合并单元格:你可以通过循环遍历AGrid的所有已经合并的单元格。

==============

for i := 0 to AGrid.MergedCellCount - 1 do

当你准备好,我将继续整理其他的操作。

20、边线设置操作

这部分主要涉及在TEjunDataGrid控件中设置单元格边线:

检查Excel单元格是否有实线边框:

如果Excel单元格有实线边框,则在ejunDataGrid中为对应的单元格设置细实线边框:

==============

FEjundatagrid.cells[ejuncol, ejunrow].Select;

FEjundatagrid.Selection.SetBorder([gbLeft, gbRight, gbTop, gbBottom],                        // 设置所有四个方向的边框

  gbsThin,                    // 边框样式为实线

  clBlack,                         // 边框颜色为黑色

  True,                            // 内部行边线设置

  True                             // 内部列边线设置

);

以上就是从上文中进一步提炼出的针对TEjunDataGrid的边线设置操作,包括检查Excel单元格是否有实线边框以及设置对应ejunDataGrid单元格的细实线边框。这些都是直接针对TEjunDataGrid对象的操作,并且在实际应用中非常常见。如果有更多内容需要整理,请告诉我,我会尽快为您处理。

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 : 第0章 认识Delphi 0-1 前言 0-2 Delphi简介 0-3 进入Delphi7 0-4 退出Delphi 第1章 常用的窗口工具 1-1 窗体(Form) 1-2 代码编辑器(Code Editor) 1-3 代码浏览器(Code Explorer) 1-4 组件面板(Componet Palette) 1-5 对象检视器(Object Inspector) 1-6 快捷工具栏(Speed Menu) 1-7 项目管理器(Project Manager) 1-8 桌面工具栏(Desktops Tollbar) 1-9 图像编辑器(Image Editor) 1-10 对象浏览器(Object TreeView) 1-11 关联选项卡(Digram Page) 第2章 常用的菜单 2-1 File菜单 2-2 Edit菜单 2-3 Search菜单 2-4 View菜单 2-5 Project菜单 2-6 Run菜单 2-7 Tools菜单 2-8 Windows菜单 第3章 集成开发环境的改变 3-1 Delphi集成开民环境介绍 3-2 操作菜单方面的改进 3-2-1 外面方面的改变 3-2-2 内容方面的改变 3-3 对象检视器方面的改进 3-4 组件面板的改进 3-5 代码编辑器的改进 3-6 设计陈列室的改进 3-7 编译信息的显示 3-8 调试器方面的改进 3-8-1 Watch List改进 3-8-2 Debugger选项的改进 3-8-3 Run Parameters对话框的改进 第4章 Delphi Object Pascal的初步印象 4-1 面向对象程序概论 4-1-1 类 4-1-2 对象 4-1-3 继承 4-1-4 封装 4-1-5 信息 4-2 Delphi项目结构及窗体的建立 4-2-1 GUI模式的项目 4-2-2 Console模式的项目 4-3 Object Pascal程序结构 4-3-1 项目程序(Program)的结构 4-3-2 单元程序(Unit)的结构 4-4 如何完成一个简单的窗体程序 第5章 简单的常用指令介绍 5-1 TLabel类对象 5-1-1 Caption属性 5-2 TButton类对象 5-2-1 Caption属笥 5-2-2 OnClick事件 5-3 TEdit类对象 5-4 TCanvas类对象 5-5 Showmessage函数 5-6 InputBox函数 5-7 MessageDlg函灵敏 第6章 Delphi与Object Pascal程序的基本概念 6-1 Object Pascal Program程序结构与Delphi项目结构的关系 6-1-1 标头(Heading) 6-1-2 Uses子句 6-1-3 编译指令(Compiler directive) 6-1-4 源代码区(begin end) 6-2 Unit程序结构与窗体的关系 6-2-1 Unit代码结构 6-2-2 语句(Statement) 6-2-3 Unit间Use的状况 6-3 数据类型与定义变量 6-3-1 数据类型概论 6-3-2 不需要使用type声明的数据类型 6-3-3 必须使用type声明的数据类型 6-3-4 定义变量 6-3-5 变量的作用域 6-3-6 定义常量 6-3-7 变量的类型转换(Typecast) 6-4 Object Pascal的运算符(Operator) 6-4-1 设置运算符(assign Operator) 6-4-2 算数运算符(Arithmetic Operator) 6-4-3 关系运算符(Relational Operator) 6-4-4 布尔运算符 6-4-5 集合运算符 6-4-6 字符串运算符 6-4-7 位逻辑运算符 6-4-8 运算符优先级 6-5 流程控制 6-5-1 语句的基本概念 6-5-2 表达式语句(Expression-Statement) 6-5-3 流程控制语句 6-5-4 可视化程序与嵌套程序 6-6 数组与指针 6-6-1 数组类型 6-6-2 指针类型 6-6-3 浅谈指针与数据结构 6-7 程序与函数(Procedures and Functions) 6-7-1 函数的意义与优点 6-7-2 函数的分类与效用 6-7-3 自定义函数使用方法概述 6-7-4 函数的声明、定义及其实现 6-7-5 参数传递方式 6-7-6 声明修

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值