может кто-нибудь помочь мне с этой ошибкой ?? Я пытался спасти первенствует файл, используя EPPlusсохранить excel с помощью EPPlus
[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
Appriciate вся помощь/консультации с этой ошибкой
С уважением Siekh
Я должен упомянуть две потенциальные проблемы: 1. Насколько я знаю, EPPLUS не может открывать файлы xls, только файлы xlsx. 2. Вы открыли файл в Excel во время запуска вашей программы? Если это произойдет, EPPLUS не удастся. Файл должен быть закрыт для открытия EPPlus + 3. Еще один момент: вы используете один и тот же шаг времени в разделе использования - это, безусловно, не удастся. Я очень удивлен, что вызовы File.Delete не вызывают ошибку. –
В качестве последнего примечания: ваш код выглядит ... искаженным для меня. Вы правильно не использовали EPPLus - первая секция в порядке, но была ли цель раздела после «in = p.GetAsByteArray()»? Если вы хотите сохранить данные в листе, используйте метод Epplus .fromDataTable –