1

我正在开发一个应用程序来读取 excel 电子表格,验证数据,然后将其映射到 sql 表。该过程是通过流式读取器读取文件,验证数据,手动更正 Excel 电子表格,再次验证 - 重复此过程,直到所有数据验证。

如果打开了 excel 电子表格,那么当我尝试通过流式读取器读取数据时,我会收到错误消息,“该进程无法访问该文件......因为它正在被另一个进程使用。” 有没有办法取消锁定或以其他方式将数据读入流式阅读器,而不必每次都打开和关闭 excel?

4

1 回答 1

2

当您调用File.Open获取流时,您是否使用允许您指定的重载FileAccess

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

注意参数:

public static FileStream Open(
    string path,
    FileMode mode,
    FileAccess access,
    FileShare share
)

您可以传递FileAccess.Read给第三个参数以指示您只需要只读访问权限。您还应该设置FileShare.Read允许其他人以只读方式打开文件,而不是自己锁定它。请注意,如果 MS Excel 使用 FileShare.None 打开文件,您可能无法访问它。

于 2010-04-28T15:09:17.083 回答