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编辑过]
以下是引用狐狸爸爸在2009-4-14 14:33:00的发言:
呵呵,这个我也没有办法,我不能干预的,是微软自己的问题
可是不少软件都可以导出‘以只读方式导出Excel报表’。狐爸也应该可以想办法的呀!
曲线的办法:
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编辑过]
还有一个方法,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: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:21:00的发言:
还有一个方法,sheet有Locked属性,可静止编辑,下面的代码复制自帮助:
这个改变在何时添上去的?确实太大了帮助,要是没有指点出来,还真关注不了每一个变化.呵呵
[此贴子已经被作者于2009-4-14 19:19:29编辑过]