Foxtable(狐表)用户栏目专家坐堂 → Process无法以只读方式打开Excel报表?(已解决)


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

主题:Process无法以只读方式打开Excel报表?(已解决)

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
Process无法以只读方式打开Excel报表?(已解决)  发帖心情 Post By:2009/4/14 13:02:00 [只看该作者]

Dim Proc As New Process '打开工作簿
Dim p as string = ProjectPath & "reports\bj1.xls"
Proc.File =  p
Proc.Verb =  "OpenAsReadOnly" 
Proc.Start()
目的是以只读方式打开Excel报表,结果这个Excel报表还是可以修改?
不知道是bug,还是我设置不对?
[此贴子已经被作者于2009-4-14 18:57:46编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/14 14:27:00 [只看该作者]

好象是有问题,一会儿给贺老师看看

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/14 14:33:00 [只看该作者]

呵呵,这个我也没有办法,我不能干预的,是微软自己的问题

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/4/14 15:11:00 [只看该作者]

以下是引用狐狸爸爸在2009-4-14 14:33:00的发言:
呵呵,这个我也没有办法,我不能干预的,是微软自己的问题

可是不少软件都可以导出‘以只读方式导出Excel报表’。狐爸也应该可以想办法的呀!


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/4/14 15:18:00 [只看该作者]

曲线的办法:
Build之后,也就是生成EXCEL报表文件之后用代码把文件改成只读的。
System.IO.File.SetAttributes("C:\test.xls",System.IO.FileAttributes.ReadOnly)


不过打印完毕之后,必须把文件的只读去掉,否则无法生成新的报表。去掉只读属性
System.IO.File.SetAttributes("C:\test.xls",System.IO.FileAttributes.Normal)

[此贴子已经被作者于2009-4-14 15:19:23编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/14 15:21:00 [只看该作者]

还有一个方法,sheet有Locked属性,可静止编辑,下面的代码复制自帮助:

 

Dim Book As New XLS.Book
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Sheet.GridColor = Color.Pink
'设置网格颜色
Sheet.DefaultColumnWidth =
75 '设置默认列宽
Sheet.Locked =
True '禁止编辑
Book.Save(
"c:\reports\test.xls") '保存工作簿
Dim
Proc As New Process '打开工作簿
Proc.File =
"c:\reports\test.xls"

Proc.Start()


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/14 15:24:00 [只看该作者]

学习了!

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/4/14 15:27:00 [只看该作者]

以下是引用狐狸爸爸在2009-4-14 15:21:00的发言:
还有一个方法,sheet有Locked属性,可静止编辑,下面的代码复制自帮助:

 

Dim Book As New XLS.Book
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Sheet.GridColor = Color.Pink
'设置网格颜色
Sheet.DefaultColumnWidth =
75 '设置默认列宽
Sheet.Locked =
True '禁止编辑
Book.Save(
"c:\reports\test.xls") '保存工作簿
Dim
Proc As New Process '打开工作簿
Proc.File =
"c:\reports\test.xls"

Proc.Start()

帮助文件还得仔细看几遍才行啊


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/14 15:32:00 [只看该作者]

呵呵,帮助确实太大了,就是我这个原作者,也是刚刚想起这个属性的。


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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/4/14 18:57:00 [只看该作者]

以下是引用狐狸爸爸在2009-4-14 15:21:00的发言:
还有一个方法,sheet有Locked属性,可静止编辑,下面的代码复制自帮助:

这个改变在何时添上去的?确实太大了帮助,要是没有指点出来,还真关注不了每一个变化.呵呵

[此贴子已经被作者于2009-4-14 19:19:29编辑过]

 回到顶部
总数 24 1 2 3 下一页