搜索
aardio官方社区 门户 查看主题

咨询:复制excel表格多行多列,将剪贴板内容转换为二维数组

发布者: tfxxf | 发布时间: 2015-5-31 12:41| 查看数: 2907| 评论数: 6|帖子模式

新手,无任何代码编程经验,看了教程2天,
想完成如下描述的要求:

复制excel任意行任意列的数据到剪贴板,然后将剪贴板的内容转换为二维数组。

最新评论

tfxxf 发表于 2015-5-31 12:43:41

代码如下: [code][lang=aardio,false]import win.ui; /*DSG{{*/ mainForm = ..win.form

代码如下:
  1. import win.ui;
  2. /*DSG{{*/
  3. mainForm = ..win.form(text="aardio Form";right=599;bottom=399)
  4. mainForm.add(
  5. edit={cls="edit";left=14;top=246;right=585;bottom=383;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}
  6. )
  7. /*}}*/

  8. import win.clip.viewer;

  9. viewer = win.clip.viewer(mainForm);

  10. viewer.onDrawClipboard=function(){
  11.         var str = win.clip.read();       
  12.        
  13.         str1 = tostring(str);  //我理解为去掉复制excel内种的多余的东西

  14.         str2 = string.trimright(str1);  //去掉纯字符串中最后多余的换行

  15.     str3 = string.split(str2,'\n');  //按回车拆分
  16.    
  17.     linshi = string.split(str3[1],'\t');  // 临时将拆分后的第一行拆分
  18.    
  19.     var sss = table.array(#str3,#linshi,{} )  //定义一个二维数组
  20.        
  21.         for( i=1;#str3;1){
  22.        
  23.             ddd = string.split(str3[i],'\t');
  24.        
  25.             for (j=1;#linshi;1){
  26.                 
  27.             
  28.              sss[i][j]  = ddd[j];        //把每个数据赋值给二维数组中的某行某列
  29.             
  30.             }           
  31.        
  32.         }
  33.        
  34.         //str4 = string.concat(#str3,' ',str3[1], ' ');       
  35.        
  36.         mainForm.edit.text = sss[2][2];   //输出看看第2行 第2列的数据
  37.                
  38. }

  39. mainForm.show()
  40. return win.loopMessage();
复制代码
tfxxf 发表于 2015-5-31 12:46:06

[img]http://www.evstool.com/baocuo.png[/img]

tfxxf 发表于 2015-5-31 12:47:04

自己参考范例写的如上的代码,虽然结果能正常输出,但是老是报错。高手能帮忙分析下吗?

自己参考范例写的如上的代码,虽然结果能正常输出,但是老是报错。高手能帮忙分析下吗?
xauto 发表于 2015-6-1 00:20:44

[code][lang=aardio,false] //com.excel库范例 import com.excel; import console


  1. //com.excel库范例
  2. import com.excel;
  3. import console

  4. var excel;
  5. try { excel = com.excel() }
  6. if( !excel ) error("该示例需要安装EXCEL",2)

  7. excel.Visible = true; //使Excel窗口可见
  8. excel.alerts = false; //关闭所有操作提示

  9. var book = excel.Open( "\test.xls" )

  10. var tab = {};

  11. //遍列所有单元格
  12. for(i,values in excel.eachValue(1) ){
  13.         tab[i] = values  
  14. }

  15. excel.Quit(); //退出

  16. console.varDump( tab[5][8] ) // 5行 8列
  17. console.pause(true)
复制代码



不用剪切板 直接用com.excel库 遍历所有单元格到table 就可以了
joshuaruan 发表于 2015-8-11 16:37:19

萨芬撒地方

萨芬撒地方
Lambert_Cui 发表于 2015-12-16 22:08:59

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=69501&ptid=12938][c

tfxxf 发表于 2015-5-31 12:47
自己参考范例写的如上的代码,虽然结果能正常输出,但是老是报错。高手能帮忙分析下吗?

这个是读剪贴板,所以,需要先复制到剪贴板一些内容,有内容就不报错,没有就报错,并且复制的内容至少要有2行,2列,才能让 “ mainForm.edit.text = sss[2][2];  ”成立

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-11-21 16:08 , Processed in 0.078125 second(s), 18 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表