搜索
查看: 4569|回复: 7

用Jet.OLEDB.4.0操作Excel文件,如何获得所有工作表的名字

[复制链接]

7

主题

28

帖子

292

积分

二级会员

Rank: 3Rank: 3

积分
292
发表于 2013-12-5 12:57:01 | 显示全部楼层 |阅读模式
在用 sql 操作Excel文件时,需要知道Excel工作表的名字。用标准库 com.excel 的操作方法已经会了,操作后容易占用文件。求教高手指点,用OLEDB的方法。
回复

使用道具 举报

9

主题

462

帖子

2551

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2551
发表于 2013-12-5 16:21:43 | 显示全部楼层

再往前走一步你自己就能找到答案了,都用到existsTable()函数了,看这个函数的代码就有取表名的代码。 [code][lang=aardio,false

再往前走一步你自己就能找到答案了,都用到existsTable()函数了,看这个函数的代码就有取表名的代码。

  1. import access;
  2. import console;

  3. var db,err = access( "/test.xls")

  4. //创建表       
  5. if( ! db.existsTable( "测试表" ) )
  6.         db.exec("CREATE TABLE 测试表 (x char(20) )");

  7. //列出所有表
  8. var cat = ..com.CreateObject("ADOX.Catalog")  
  9. cat.ActiveConnection = db.connection;
  10. for index,tbl in com.each(cat.Tables) {
  11.         if( tbl.Type = "TABLE" && string.endWith(tbl.Name,"$")){
  12.                 console.log( tbl.Name  )
  13.         }
  14. }

  15. //关闭数据库
  16. db.close();
复制代码

回复

使用道具 举报

3

主题

16

帖子

134

积分

一级会员

Rank: 2

积分
134
发表于 2015-2-11 11:46:14 | 显示全部楼层

sql 操作Excel文件时,如果Excel内的文本长度超过255读取出来的内容就会变成乱码,请问这个问题该怎么处理才能避免。

sql 操作Excel文件时,如果Excel内的文本长度超过255读取出来的内容就会变成乱码,请问这个问题该怎么处理才能避免。
回复

使用道具 举报

1

主题

5

帖子

104

积分

一级会员

Rank: 2

积分
104
发表于 2015-7-15 13:57:48 | 显示全部楼层

excel效率差。。直接strings.load加载csv吧。速度抗抗的。

excel效率差。。直接strings.load加载csv吧。速度抗抗的。
回复

使用道具 举报

1

主题

14

帖子

160

积分

培训班

积分
160
发表于 2016-7-14 11:42:28 | 显示全部楼层

请教,用标准库 com.excel 的操作方法、获得所有工作表的名字或检验指定名字的工作表是否存在的方法

请教,用标准库 com.excel 的操作方法、获得所有工作表的名字或检验指定名字的工作表是否存在的方法
回复

使用道具 举报

7

主题

28

帖子

292

积分

二级会员

Rank: 3Rank: 3

积分
292
 楼主| 发表于 2016-7-17 19:48:53 | 显示全部楼层

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

wangms 发表于 2016-7-14 11:42
请教,用标准库 com.excel 的操作方法、获得所有工作表的名字或检验指定名字的工作表是否存在的方法

  1. import console;
  2. import com.excel;

  3. var xlsFilePath = "D:\myTest.xlsx"; //在这里改excel文件的路径

  4. var excel = com.excel();
  5. var book = excel.WorkBooks.Open( xlsFilePath );
  6. var sheetsNum = book.Sheets.Count;

  7. console.log("打开的工作薄共有 "+sheetsNum+" 个工作表");

  8. for(i=1;sheetsNum;1){
  9.         console.log("第"+i+"个工作表的名字是:"+book.Sheets(i).Name);
  10. }

  11. console.pause();
复制代码
回复

使用道具 举报

7

主题

28

帖子

292

积分

二级会员

Rank: 3Rank: 3

积分
292
 楼主| 发表于 2016-7-17 20:10:42 | 显示全部楼层

[i=s] 本帖最后由 田雨春楊 于 2016-7-17 20:12 编辑 [/i] [b]检验指定名字的工作表是否存在[/b] 在上面的代码基础上继续

本帖最后由 田雨春楊 于 2016-7-17 20:12 编辑

检验指定名字的工作表是否存在  
在上面的代码基础上继续

  1. var sheetExist = function( sheetName ){
  2.         var exist = false;
  3.         for(i=1;sheetsNum;1){
  4.                 if( book.Sheets(i).Name == sheetName ){
  5.                         exist = true;
  6.                         break ;
  7.                 }
  8.         }
  9.         return exist;
  10. }

  11. if( sheetExist("Hello") ){
  12.         console.log("存在 Hello 工作表")
  13. }
  14. else {
  15.         console.log("不存在 Hello 工作表")
  16. }
复制代码

回复

使用道具 举报

1

主题

14

帖子

160

积分

培训班

积分
160
发表于 2016-8-2 12:42:42 | 显示全部楼层

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

田雨春楊 发表于 2016-7-17 20:10
检验指定名字的工作表是否存在  
在上面的代码基础上继续

不好意思,您给出了圆满的答复,才看见。谢谢楼主!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2018-12-11 20:30 , Processed in 0.078134 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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