Da Excel a DataTable usando EPPlus – excel bloccato per la modifica

Sto usando il seguente codice per convertire un Excel in un datatable usando EPPlus:

public DataTable ExcelToDataTable(string path) { var pck = new OfficeOpenXml.ExcelPackage(); pck.Load(File.OpenRead(path)); var ws = pck.Workbook.Worksheets.First(); DataTable tbl = new DataTable(); bool hasHeader = true; foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column]) { tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column)); } var startRow = hasHeader ? 2 : 1; for (var rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++) { var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column]; var row = tbl.NewRow(); foreach (var cell in wsRow) { row[cell.Start.Column - 1] = cell.Text; } tbl.Rows.Add(row); } pck.Dispose(); return tbl; } 

Crea Excel, tuttavia, quando provo ad aprirlo, mi dà il messaggio che è bloccato per la modifica da un altro utente e che posso solo aprirlo in modalità di sola lettura.

Ho pensato di usare:

 pck.Dispose(); 

risolverebbe il problema, tuttavia sto ancora ricevendo lo stesso errore.

Inoltre, quando provo ad eliminare il file, ottengo il messaggio: L’azione non può essere completata perché il file è aperto in WebDev.WebServer40.EXE.

Qualche idea su come risolvere questo? Grazie in anticipo. 🙂