Foxtable(狐表)用户栏目专家坐堂 → 导出EXCEL的排版问题2-如何优化


  共有5797人关注过本帖树形打印复制链接

主题:导出EXCEL的排版问题2-如何优化

帅哥哟,离线,有人找我吗?
realredred
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
导出EXCEL的排版问题2-如何优化  发帖心情 Post By:2013/12/27 21:42:00 [只看该作者]

这是之前发过的问题
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=44223&page=0&move=next

经过小甜甜的指引
折騰了一天
弄出了这个來
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


如今基本达到要求了.
但现在仍存在几个问题

1.因为我是先用字典把要导出的人名集合,再用KEY去把同一人的行,存到臨时表,再用 FOR 在臨时表 一行行加到 XLS表的相应格去. 运行起來,很慢,如果要导出的人数在50人,只导一个月的数据,都花上了半小时.......(这个能,否优化?)

2.现在我只做到是独立的一个人保存一个XLS工作簿,能不能做到保存在一个工作簿里.


图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

每一个人都只能分別保存,想要做到是在一个工作簿,以分页面,分別把各人相关保存.

3.对于一些字节很多的备注,转到XLS超出单元格时,能不能做到自动換行?这个我找了很久帮助都沒找出來.
目标原表

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

这是效果

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

期待能优化到.



[此贴子已经被作者于2013-12-27 21:45:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/27 22:37:00 [只看该作者]

 算了,我还是不看你的逻辑了,本来想做的,太麻烦。说一下思路。

1、不需要用字典,你可以直接获取到 姓名和工号的,具体看getValues的帮助

Dim arys() As List(Of String()) = DataTables("进度").GetValues(team & "姓名",team & "工号", Filter)

2、不需要临时表,临时表里的内容,直接计算得出,直接赋值给excel表

3、一个book可以有多个sheet,可以新建多个sheet http://www.foxtable.com/help/topics/1465.htm

4、excel中超出单元格,无法换行。

 回到顶部
帅哥哟,离线,有人找我吗?
realredred
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2013/12/27 22:57:00 [只看该作者]

新建多个SHEET 这个我试过,但无效.
因为是动态人数,SHEET的个数不确定, 不知具体操作.



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/28 20:30:00 [只看该作者]

 sheet不需要确定个数,你可以建任意多个sheet的,不信你可以单独做一个例子测试。

 回到顶部
帅哥哟,离线,有人找我吗?
jianjingmaoyi
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2013/12/28 20:57:00 [只看该作者]

你这个图片不错图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
realredred
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2013/12/29 20:11:00 [只看该作者]

我改了用 GetValues 取到人名
不建臨时表  直接赋值到XLS表
但快不了多少(大约快2秒)
这是加入新的导出 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


多建SHEET 沒头绪..有沒有指引或例子参考?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/29 20:46:00 [只看该作者]

 不是很简单的么?你用一个循环就行了,参考。

Dim Book As New XLS.Book
Dim sheet As XLS.Sheet
sheet = book.Sheets(0)
sheet.name = "第一个表"

sheet = book.Sheets.Add("第二个表")
'写内容
'写内容

sheet = book.Sheets.Add("第三个表")
'写内容
'写内容

sheet = book.Sheets.Add("第四个表")
'写内容
'写内容

book.Save("d:\test.xls")

 回到顶部
帅哥哟,离线,有人找我吗?
realredred
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2013/12/29 20:57:00 [只看该作者]

如果人员有40人 那麼  要写40个?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/29 21:01:00 [只看该作者]

 不是可以循环所有的人名的?写在循环里不就行了?只需要写一个

 回到顶部
帅哥哟,离线,有人找我吗?
realredred
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2013/12/29 22:04:00 [只看该作者]

开始有头绪了,先试一下

 回到顶部
总数 14 1 2 下一页