首页 > 解决方案 > C# - 检测 Excel 文件是否在 Sharepoint 中打开

问题描述

你好(对不起前面的拼写,可能不太好,因为我来自瑞士)

我一直在遭受一个问题,到目前为止我还没有找到可能的解决方案,我的代码就像我希望它需要的那样工作。

代码背后的想法:我想检测 Sharepoint 中的 Excel 文件是否已被用户打开。换句话说,我希望一次只有一个用户可以打开或编辑 Excel 文件。这意味着当第二个用户尝试打开它时,如果它到达 try...catch 函数,代码应该跳转到异常。但如果到目前为止没有一个用户没有打开它,代码应该忽略异常。

我的问题:当第一个用户尝试在 Sharepoint 中打开 Excel 文件时,它以某种方式已经显示消息“Excel 已关闭!”,这意味着实际上有人已经打开它,不是吗?我不认为这是一个大问题,因为当我将 Excel 文件的路径从 Sharepoint 更改为驱动器 (C://) 时,它确实有效。不幸的是,我的厨师希望我通过 Sharepoint 完成这个过程。

            try
            {
                // check excel file
                Stream s = File.Open(xlPath, FileMode.Open, FileAccess.Read, FileShare.None);
                s.Close();

                // is opened
                myXl.Workbooks.Open(xlPath, Password: "xxx");
                myXl.Visible = false;
                myWB = myXl.ActiveWorkbook;
                myWS = (Excel.Worksheet)myWB.Worksheets.get_Item(1);                                  
            }
            catch (Exception) 
            {
                // is not opened
                MessageBox.Show("Excel is closed!", "Warning",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Close();
            }

有解决问题的想法吗?这将是一个巨大的帮助。

谢谢!

标签: c#excelsharepoint

解决方案


推荐阅读