以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Process无法以只读方式打开Excel报表?(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2443)

--  作者:kylin
--  发布时间:2009/4/14 13:02:00
--  Process无法以只读方式打开Excel报表?(已解决)
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
--  发布时间:2009/4/14 14:27:00
--  
好象是有问题,一会儿给贺老师看看
--  作者:狐狸爸爸
--  发布时间:2009/4/14 14:33:00
--  
呵呵,这个我也没有办法,我不能干预的,是微软自己的问题
--  作者:mr725
--  发布时间:2009/4/14 15:11:00
--  
以下是引用狐狸爸爸在2009-4-14 14:33:00的发言:
呵呵,这个我也没有办法,我不能干预的,是微软自己的问题

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


--  作者:lxl
--  发布时间: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编辑过]

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2009/4/14 15:24:00
--  
学习了!
--  作者:lxl
--  发布时间: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()

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


--  作者:狐狸爸爸
--  发布时间:2009/4/14 15:32:00
--  

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


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

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

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