【发布时间】:2013-07-26 04:44:23
【问题描述】:
有人可以帮我解决这个错误吗? 我尝试使用 EPPlus 保存 excel 文件
[IOException: The process cannot access the file 'C:\Users\Julian\Downloads\EmployeeMaster.xls' because it is being used by another process.]
这是我的代码:
Dim conn As New ConnectionVB
Dim newfile As FileInfo = NewFileInfo("C:\\Users\\Julian\\Downloads\\EmployeeMaster.xls")
Using p As ExcelPackage = New ExcelPackage(newfile)
SetWorkBookProperties(p)
conn.connect()
Dim ws As ExcelWorksheet = CreateSheet(p, "EmnployeeMaster")
Dim dt As New DataTable
Dim connString As String
connString = "Select * from EmployeeMaster"
dt = conn.openDataTable(connString)
Dim rowIndex As Integer
rowIndex = 2
CreateHeader(ws, rowIndex, dt)
CreateData(ws, rowIndex, dt)
Dim bin As Byte()
bin = p.GetAsByteArray()
Dim path As String
path = "C:\\Users\\Julian\\Downloads\\EmployeeMaster.xls"
File.Delete("C:\\Users\\Julian\\Downloads\\EmployeeMaster.xls")
Dim stream As Stream = File.Create(path)
File.WriteAllBytes(path, bin) <- I got the error here
Start(path)
stream.Close()
End Using
感谢所有有关此错误的帮助/建议
问候谢赫
【问题讨论】:
-
我不得不提两个潜在的问题: 1. 据我所知,EPPLUS 无法打开 xls 文件,只能打开 xlsx 文件。 2. 您在运行程序时是否在 Excel 中打开了文件?如果是这样,EPPLUS 将失败。必须关闭文件才能由 EPPlus+ 3 打开。另一点:您在 using 部分使用相同的路径多次 - 这肯定会失败。我很惊讶 File.Delete 调用没有引发错误
-
最后一点:您的代码看起来......对我来说是乱码。您没有正确使用 EPPLus - 第一部分完全没问题,但是“in = p.GetAsByteArray()”之后的部分的目的是什么?如果要将数据表存储到工作表中,请使用 Epplus .fromDataTable 方法
标签: asp.net vb.net visual-studio-2010 epplus