0

誰かがこのエラーで私を助けることができますか?? 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

このエラーに関するすべてのヘルプ/アドバイスに感謝します

よろしくシーク

4

2 に答える 2

0

あなたのエラーが示すように: EmployeeMaster.xls ファイルは別のプロセスによって使用されています。

あなたのコードのドライラン:

EmployeeMaster.xls ファイルで、別の新しいシート名を EmnployeeMaster として作成し、このシートにヘッダーとデータを作成します。ファイルに書き込むときに問題が発生します。を実行してワークシートを保存するだけです。 EPPlusPackage を使用して .xls ファイルを開き、コードでカスタム シートを .xls ファイルに追加して保存するだけです。

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

次のような問題が考えられます。

  • EPPLUS は xls ファイルを開くことができません。xlsx ファイルのみです。
  • ファイルを削除する理由。解決策: 名前を変更してから移動できます。

  • EPPlusは、ExcelPackageのオブジェクトをインスタンス化するときにファイルを保持します(同じパスで)

于 2013-07-26T06:55:41.820 に答える