如何在不锁定 Excel 文件的情况下打开它?

2024-04-26

我有一个构建 Excel 报告,然后为用户打开它的流程。问题是,如果有人让文件保持打开状态,则该文件将保持锁定状态,并且在第一个人退出 Excel 文件之前,其他人都无法生成报告。

有没有办法打开 Excel 文件而不锁定它,使用Process.Start或微软的Interop.Excel图书馆?

我使用 Interop 库在每次运行报告时构建文件,并将其作为静态文件名保存在运行该应用程序的共享网络文件夹中

using Excel = Microsoft.Office.Interop.Excel;

...

xlsBook.SaveAs(newFileName, Excel.XlFileFormat.xlWorkbookNormal);

并使用打开文件Process.Start

Process.Start(newFileName);

您可以尝试以只读模式打开该文件:

var app = new Microsoft.Office.Interop.Excel.Application();
var workbook = app.Workbooks.Open(filename, ReadOnly: true);

或者您可以尝试以共享模式保存:

workbook.SaveAs(filename, AccessMode: XlSaveAsAccessMode.xlShared);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不锁定 Excel 文件的情况下打开它? 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 如何将 .xlsx 文件上传到 jenkins 作业

    如何将 xlsx 文件作为构建参数上传到 jenkins 作业 我尝试使用文件参数 但我发现该文件正在丢失其扩展名或原始格式 有什么方法可以从 jenkins UI 将 excel 文件上传到 jenkins 作业吗 In the file
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 使用 XMLHTTP 进行抓取会在特定类名处引发错误

    我正在尝试使用此代码抓取网站以提取姓名和联系人 Sub Test Dim htmlDoc As Object Dim htmlDoc2 As Object Dim elem As Variant Dim tag As Variant Dim
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • 阻塞事件循环

    我正在通过 Nodeschool 参加 函数式 Javascript 研讨会 其中一项练习的标题是 阻止事件循环 我很难理解它 通过过去的练习 我确保真正尝试理解解决方案 这样如果我必须重做问题 我就会理解如何解决它 而不是第一次就破解它
  • 以编程方式从 iPhone 拨打 USSD 代码 [重复]

    这个问题在这里已经有答案了 如何拨号USSD以编程方式为iPhone编写代码 我搜索发现iOS 7已经阻止使用USSD出于安全原因 我们可以手动拨打 USSD 代码 但在低于 iOS 7 的 iPhone 中 我们可以手动拨打 USSD 代
  • 使用 Node 和 Heroku 进行负载平衡

    我有一个 Web 应用程序 它接受来自 ios 应用程序的 api 请求 我的网络应用程序托管在 Heroku 上 使用他们的免费 dyno 每个请求能够处理 512 mb 的数据 因为 Node 是一个单线程应用程序 一旦我们开始从 io
  • 升级到 java 8 后无法使用 crashlytics 发布项目

    当我搬到java 8 我在应用程序发布中收到此错误 因为fabric崩溃解决方案 Could not determine the dependencies of task app crashlyticsStoreDeobsRelease g
  • NumPy 追加与 Python 追加

    在 Python 中 我可以附加到一个空数组 例如 gt gt gt a gt gt gt a append 1 2 3 gt gt gt a append 1 2 3 gt gt gt a 1 2 3 1 2 3 我怎样才能在 NumPy
  • Git http - 安全地记住凭据

    通过 HTTP S 连接到远程存储库时 有没有办法安全地让 git 记住我的凭据 我已经尝试过core askpass方法详述于git config http git scm com docs git config让外部脚本提供我的凭据 尽
  • R 中基因列表(使用 ENTREZID)的基因本体 (GO) 分析?

    我对 GO 分析非常陌生 我有点困惑如何对我的基因列表进行分析 我有一个基因列表 n 10 gene list SYMBOL ENTREZID GENENAME 1 AFAP1 60312 actin filament associated
  • Makefiles:从一个目录获取.cpp,并将编译后的.o放在另一个目录中

    我正在开发适用于移动设备 Windows Mobile 6 和 Android 的跨平台 2D 引擎 我的 Windows 版本已基本准备就绪 但我仍需要确保 Android 上也提供相同的功能 我想要的是一个Makefile在项目的根目录
  • 外部化各种 React 组件中的通用函数

    在不同的components在样式或其他方面我使用相同的功能 其中一些函数使用this setState 我想将所有这些函数收集在一个公共位置 因此在重写它们时 我不必在所有组件中重写它们 而只需在一个文件中重写它们 但是 我不知道如何写t
  • Unicode字符串的跨平台迭代(使用ICU计算字素)

    我想迭代每个字符一个 Unicode 字符串 处理每个代理对并将字符序列组合为一个单元 一个字素 Example 文本 由代码点组成 U 0928 U 092E U 0938 U 094D U 0924 U 0947 其中 U 0938 a
  • 如何更改反应导航中的后退按钮路线

    我正在使用反应导航 堆栈导航 我想更改我的标题后退按钮图标路线 Home 订票 我的预订 这些是我项目中的屏幕 现在 当我单击 MyBookings 屏幕中的标题后退按钮时 它应该路由到主屏幕 如果您的 stackNavigator 堆栈配
  • Git 术语:tip 和 HEAD 之间的区别?

    和Git有什么区别HEAD and tip 抱歉 如果在其他地方有人问过这个问题 没有看到任何其他关于此的问题 From 吉特词汇表 https git scm com docs gitglossary html 可能通过git help
  • 使用opencv在灰度图像中绘制彩色矩形

    是否可以使用opencv在灰度图像中绘制彩色矩形 我尝试了几种方法 但整个图像要么变成灰度 要么变成 RGB 您不能获得混合的灰色和彩色图像 你可以看看有没有办法在同一图像opencv C 上同时拥有灰度和RGB像素 https stack
  • 如何为幻灯片中的每个图像添加链接?

    我使用了 为什么这张幻灯片闪烁 中的代码 彼得在网站上给出了您的答案之一 它工作得很好 没有任何闪烁 但我的问题是如何为每个图像添加超链接 我把代码贴出来供大家参考 Script function Edit these Assumes yo
  • jQuery $(window).resize() 在减小窗口高度时不起作用

    我有一个 id 为 main 的 div 我想使用 jQuery 设置它的高度并使其在window resize它的高度是使用函数修改的 但由于某种原因 它仅在增加窗口高度时才能正常工作 而在减小窗口高度时则不起作用 这是JS functi
  • 设置 sendBufferSize() 后,UDP 套接字的消息太长

    我正在尝试发送 UDP 数据报 包含协议缓冲区消息 并收到消息太长的异常 java io IOException Message too long at java net PlainDatagramSocketImpl send Nativ
  • Angular 动态表上的 Jquery 表排序器

    我有一个表 需要使用 Jquery Tablesorter 插件进行排序等 它对于静态表工作得很好 但是当我尝试在 Angular 支持的表上使用时 它不起作用 有谁知道为什么会这样 http plnkr co edit SUjs1h7pr
  • Vaadin 7.0.1 带有 JPAContainer 和 FieldGroup 的组合框

    抱歉 如果这是一个新问题 我有两个 JPAContainer 一个用于 Employee 类 表 一个用于语言类 表 员工可以选择一种语言 我正在尝试创建一个员工编辑表单 其中包含用于语言选择的组合框和用于处理绑定和创建的 FieldGro
  • 获取进程的返回值

    您好 我正在尝试执行以下操作 我有一个可以接受参数 数字 的过程 并返回这些数字的总和 Process P Process Start sPhysicalFilePath Param int result P ExitCode 我从 Exi
  • 如何在不锁定 Excel 文件的情况下打开它?

    我有一个构建 Excel 报告 然后为用户打开它的流程 问题是 如果有人让文件保持打开状态 则该文件将保持锁定状态 并且在第一个人退出 Excel 文件之前 其他人都无法生成报告 有没有办法打开 Excel 文件而不锁定它 使用Proces