将导出的Excel工作表作为只读

时间:2011-06-15 11:24:34

标签: c# asp.net

在我的应用程序中,我正在将gridview数据导出到excel并将其存储到特定文件夹,现在我想要的是将此excel文件设置为只读,以便没有人应该编辑它。

我写了这样的代码:

protected void Button5_Click(object sender,EventArgs e)        {

        this.GridView1.Page.EnableViewState = false;
        StringWriter tw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(tw);
        hw.WriteLine("<b><font size='5'> Report</font></b>");
        this.GridView1.RenderControl(hw);
        string HtmlInfo = tw.ToString();
        string DocFileName = "Report" + ".xls";
        string FilePathName = Request.PhysicalPath;
        FilePathName = FilePathName.Substring(0, FilePathName.LastIndexOf("\\"));
        FilePathName = @"C:\Excel" + "\\" + DocFileName;
        FileStream Fs = new FileStream(FilePathName, FileMode.Create);
        BinaryWriter BWriter = new BinaryWriter(Fs,System.Text.Encoding.GetEncoding("UTF-8"));
        BWriter.Write(HtmlInfo);
        BWriter.Close();
        Fs.Close();

   }

any1帮助我...

3 个答案:

答案 0 :(得分:0)

我想你想要像

这样的东西
 FileStream Fs = new FileStream(FilePathName, FileMode.Create, Fileaccess.Read);

有关详细信息,请参阅此链接 http://msdn.microsoft.com/en-us/library/4z36sx0f.aspx#Y494

答案 1 :(得分:0)

你不能同时一起工作,你必须创建文件流,而不是定义它的访问模式

查看此链接

http://msdn.microsoft.com/en-us/library/y973b725.aspx

答案 2 :(得分:0)

你想在文件被写入之后只读文件吗?

var fileInfo = new FileInfo(FilePathName );
fileInfo.IsReadOnly = true;

修改

这是一个网站?我不知道你可以阻止某人下载然后修改你的文件的方法。您可以使用API​​来代替它。我们在此处使用Aspose.Cells在将表单发送到客户端之前将其设置为只读。