搜索
查看: 958|回复: 6

请教如何创建一个指定名字的Excel文件?

[复制链接]

12

主题

38

帖子

236

积分

新手入门

积分
236
发表于 2018-6-7 11:02:51 | 显示全部楼层 |阅读模式
  1. //com.excel库范例
  2. import console;
  3. import com.excel;

  4. console.log("正在启动excel")
  5. var excel;
  6. try {
  7.         excel = com.excel()
  8. }
  9. if( !excel ) error("该示例需要安装EXCEL",2)

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

  12. var book = excel.WorkBooks.Add("12345") //创建工作簿
  13. // book = excel.Open( "\test.xls" )
  14.   
  15. var sheet = excel.ActiveWorkbook.Sheets(1);
  16. var cell = sheet.Cells(1,1);
  17. cell.Value2 = "haha"   

  18. console.log( cell.Text )

  19. //遍列所有单元格
  20. for(i,values in excel.eachValue(1) ){
  21.         console.log("行号"+i,values[1],values[2])  
  22. }

  23. excel.Quit(); //退出
  24. console.pause();
复制代码
   如代码所示,我想新建一个12345.xls的文件,但代码运行提示找不到"./12345",该代码该如何修改?

    库文档中有一个creatFile函数,但是该函数创建文件后,文件就实际存在了,Add函数创建的新文件只有保存了才实际存在,我想要的是Add函数效果,且其文件名在创建的时候就能够确定。
    请大家帮忙指导下,谢谢

回复

使用道具 举报

12

主题

38

帖子

236

积分

新手入门

积分
236
 楼主| 发表于 2018-6-11 13:27:25 | 显示全部楼层
查了下,excel.WorkBooks.Add这个函数如果不指定文件名,则已默认模版创建新的Excel文件,如果指定了文件,则以指定的文件为模版创建新的Excel文件。
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-6-16 12:53:10 | 显示全部楼层
你的需求可能是:“另存为”而不是“新建”
新建又不让创建文件,还要在保存的时候创建文件,这就是“另存为”

先整理一下,弄明白自己到底需要什么。
回复

使用道具 举报

0

主题

15

帖子

139

积分

培训班

积分
139
发表于 2018-6-19 11:05:04 | 显示全部楼层
Excel的创建,一般都是先创建一个空白工作簿,操作完了,最后保存的时候指定文件名:

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

  4. console.log("正在启动excel")
  5. var excel;
  6. try {
  7.         excel = com.excel()
  8. }
  9. if( !excel ) error("该示例需要安装EXCEL",2)

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

  12. var book = excel.WorkBooks.Add() //创建空白工作簿
  13. // book = excel.Open( "\test.xls" )
  14.   
  15. var sheet = excel.ActiveWorkbook.Sheets(1);
  16. var cell = sheet.Cells(1,1);
  17. cell.Value2 = "haha"   

  18. console.log( cell.Text );

  19. //遍列所有单元格
  20. for(i,values in excel.eachValue(1) ){
  21.         console.log("行号"+i,values[1],values[2])  
  22. }

  23. excel.SaveAs("D:\test.xls"); //指定文件名保存

  24. excel.Quit(); //退出
  25. console.pause();
复制代码


回复

使用道具 举报

0

主题

15

帖子

139

积分

培训班

积分
139
发表于 2018-6-19 11:06:25 | 显示全部楼层
先创建指定文件名的excel文件,最后保存也可以:
  1. //com.excel库范例
  2. import console;
  3. import com.excel;

  4. console.log("正在启动excel")
  5. var excel;
  6. try {
  7.         excel = com.excel()
  8. }
  9. if( !excel ) error("该示例需要安装EXCEL",2)

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

  12. excel.createFile("D:\my.xls"); //创建指定文件名的excel文件

  13. //var book = excel.WorkBooks.Add() //创建空白工作簿
  14. // book = excel.Open( "\test.xls" )

  15. var book = excel.ActiveWorkbook;
  16. var sheet = book.Sheets(1);
  17. var cell = sheet.Cells(1,1);
  18. cell.Value2 = "haha"   

  19. console.log( cell.Text );

  20. //遍列所有单元格
  21. for(i,values in excel.eachValue(1) ){
  22.         console.log("行号"+i,values[1],values[2])  
  23. }

  24. book.Save();

  25. //excel.SaveAs("D:\test.xls");

  26. excel.Quit(); //退出
  27. console.pause();
复制代码

回复

使用道具 举报

0

主题

15

帖子

139

积分

培训班

积分
139
发表于 2018-6-19 11:21:36 | 显示全部楼层
楼主难道是既想创建指定文件名的excel文件,又不想让文件保存并存在?实在不知道楼主是怎么想的。
回复

使用道具 举报

12

主题

38

帖子

236

积分

新手入门

积分
236
 楼主| 发表于 2018-6-22 16:15:55 | 显示全部楼层
本帖最后由 lly10011 于 2018-6-22 16:18 编辑

   
    其实,我当时想的是通过excel.WorkBooks.Add()创建一个指定文件名的Excel文件(例如12345.xls),然后将这个12345.xls打开到系统界面,操作员在关闭该12345.xls文件时,提示是否保存数据,此时就不需要输入文件名了,且如果不保存的话,该12345.xls就不保存在硬盘上了,即12345.xls文件实际不存在。
    如果用creat函数创建12345.xls文件的话,则该12345.xls文件实际就已经在硬盘上存在了(无论操作员是否保存),后续只能删除该12345.xls文件。

    我描述的比较拗口,其实是我理解错了excel.WorkBooks.Add()函数的意思,后续查了API说明,才知道这个函数如果不指定文件名,则已默认模版创建新的Excel文件(一般是“工作簿1.xls”),如果指定了文件,则以指定的文件为模版创建新的Excel文件,指定的文件名实际是模板。例如如果指定文件名为“12345.xls”,则该函数以“12345.xls”文件为模板生成“123451.xls”文件
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-11-13 08:22 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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