当前位置: 首页 > news >正文

TClientDataSet 模拟 EXCEL表

    日常处理数据时,经常需要,从EXCEL表格中,批量导入数据,通过 XLSReadWriteII编程,会很快导入。

    但是,客户提供的EXCEL表的字段,数据格式,字段的排序,有很大的区别。因此,能否做一个能够批量导入,很有必要。

    同时,又需要将EXCEL表能够,直接导入并显示在DBGridEh中。操作如下

    一、使用四个控件:

    1、TClientDataSet,

    2、TDataSource,

    3、XLSReadWriteII,

    4、DBGridEh

    二、分析EXCEL表相关参数

   约定Sheet=0,即第1个表。

    三、创建ClientDataSet的字段

procedure TEXCEL_To_Staff_Frm.Button19Click(Sender: TObject);
var sDate,SS,S1,S2,S3,S4,S5,S6,S7,S8,S9:string;T:boolean;iRow,i,j,iSheet,iTitleRow,iFirstRow,iEndRow,iFirstCol,iEndCol:integer;
beginif sEdit0.Text='' thenbeginshowmessage('请指定“收费标准”EXCEL文件!');exit;end;XLS.Filename := sEdit0.Text;XLS.Read;iSheet:=0;iTitleRow:=StrToInt(sEdit1.Text)-1;   // 0..niFirstRow:=StrToInt(sEdit2.Text)-1;iEndRow:=StrToInt(sEdit3.Text)-1;iFirstCol:=TextToCol(sEdit4.Text);iEndCol:=TextToCol(sEdit5.Text);//  数据集设置with ClientDataSet1 dobeginfor i:=0 to iEndCol doFieldDefs.Add(ColToText(i), ftString, 60, False);CreateDataSet;end;DBGridEh1.DataSource:=DataSource1;for i:=0 to iEndCol doDBGridEh1.Columns[i].Width:=100;
//  DBGridEh1.Columns[2].Alignment := taCenter;
//  DBGridEh1.Columns[3].Alignment := taRightJustify;ClientDataSet1.Edit;// 读入数据
// 读入TitleiRow:=iTitleRow;with ClientDataSet1 dobeginAppend;for i:=0 to iEndCol dobeginFieldByName(ColToText(i)).AsString:=XLS.Sheets[iSheet].AsFmtString[i,iRow];end;Post;end;
// 读入数据iRow:=iRow+1;with ClientDataSet1 dobeginfor i:=iFirstRow to iEndRow dobeginAppend;for j:=0 to iEndCol dobeginFieldByName(ColToText(j)).AsString:=XLS.Sheets[iSheet].AsFmtString[j,iRow];end;Post;iRow:=iRow+1;end;end;
//  XLS.Free;
end;

     四、效果

     通过DBGridEh模拟显示,排序合并的标题,将列名作为第一行,再导入相应的数据:

http://www.lryc.cn/news/93085.html

相关文章:

  • Hazel游戏引擎(012)GLFW窗口事件
  • Nenu算法复习第六章
  • 知识付费社群:最好的知识传播方式
  • 局域网内不同网段的设备互相连接设置
  • LVS+Keepalived 群集
  • windows系统cmd命令设置别名,并添加到环境变量
  • 智能学习 | MATLAB实现GWO-SVM多输入单输出回归预测(灰狼算法优化支持向量机)
  • java方法
  • LabVIEW与Space Wire配合开发
  • 开始使用chat-gpt4
  • 算法之贪心算法
  • Maven 基础
  • 算法刷题-哈希表-两数之和
  • kotlin学习(一)基本概念、数据对象类型、控制流程、空值检验、类与接口
  • 【Linux】Docker部署镜像环境 (持续更新ing)
  • Jtti:如何打开云服务器的8082端口
  • 有关 string 类的练习(下)
  • XuperChain搭建+报错+注意事项
  • 【伏羲八卦图】(PythonMatlab实现)
  • ruoyi数据权限学习
  • WPF中实现动态导航
  • day16 | 104.二叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数
  • Spring Boot + Vue3前后端分离实战wiki知识库系统<八>--分类管理功能开发二
  • Python入门(十八)类(一)
  • c# 从零到精通-定义一个结构
  • 检信ALLEMOTION非接触式心理情绪测评系统
  • 20道嵌入式经典面试题(附答案)
  • python学习-代码调试器
  • 第十一章 综合推理
  • 嵌入式开发之设置寄存器中指定位