使用EPPlus保存excel

时间:2013-07-26 04:44:23

标签: asp.net vb.net visual-studio-2010 epplus

有人可以帮我解决这个错误吗? 我试图使用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

使用此错误推荐所有帮助/建议

关心Siekh

2 个答案:

答案 0 :(得分:0)

从错误显示开始:另一个进程正在使用EmployeeMaster.xls文件。

您的代码DryRun:

在您的EmployeeMaster.xls文件中,您将另一个新工作表名称设置为EmnployeeMaster,然后在此工作表中创建Header和Data。 写入文件时出现问题。你必须通过这样做来保存WorkSheet。 因为只需在EPPlusPackage的帮助下打开你的.xls文件,然后通过代码在.xls文件中添加自定义工作表,然后保存。

p.Save(); // you need to save this temporary sheet.

问题可能是:

  • EPPLUS无法打开xls文件,只能打开xlsx文件。
  • 为什么删除文件。 解决方案:您可以重命名然后移动。

  • 当您为ExcelPackage实例化对象时,EPPlus会保留您的文件(使用相同的路径)

答案 1 :(得分:0)

两个问题:

  • EPPlus不支持xls文件。
  • 为了调试使用该文件的原因,我建议使用SysInternal&#34; process explorer&#34;,你可以找到它here