以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  合并数据时工作表名称如何修改  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80916)

--  作者:zhangchi96
--  发布时间:2016/2/10 12:25:00
--  合并数据时工作表名称如何修改

说明书上的例子:

Dim mg As New Merger
mg
.SourcePath = "c:\\data\\销售管理.xls"
mg
.Format = "excel" \'指定格式
mg
.SourceTableName = "订单" \'指定要合并的表
mg
.DataTableName = "订单" \'指定接收数据的表
mg
.Merge() \'开始合并


以上是用户把“销售管理.xls”导入到内部表。

由于用户的已有“销售管理.xls”里的工作表的名称并不总是“订单”,比如是“201601订单”、“201602订单”或是其他没有规律的名称,如“张三 订单”“订单新”“订货”等,有点甚至是其他软件导出后自动生成的名称。


请问 :有没有办法在合并前,利用代码统一修改一下电子表表格中工作表的名称呢?


--  作者:Hyphen
--  发布时间:2016/2/11 23:40:00
--  
参考:http://www.foxtable.com/help/topics/1152.htm

例:
Dim Book As New XLS.Book("D:\\订单.xls") 
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet.Name = "订单2016"
book.Save("D:\\订单.xls") 

--  作者:zhangchi96
--  发布时间:2016/2/12 10:59:00
--  
谢谢Hyphen老师,如果要防止原来的电子表格中的第2个工作表、或者第2、3。。。个工作表的名字已经是"订单2016",这样就有冲突了。

我想:应该先查看一下除了第1个工作表之外有没有哪个工作表已经是"订单2016",如果是,就先改掉名称,

请问应如何完善?


--  作者:Hyphen
--  发布时间:2016/2/12 11:08:00
--  
由于1楼说的名称并没有什么规律,

方法一是,循环所有Sheets判断名称是否有重复

方法二是,使用当前时间 或者自定义编号来命名