Używam EPPlus do odczytu danych z pliku .XLSX.
Problem polega na tym, że nie jest w stanie odczytać zablokowanych komórek. Muszę więc otworzyć program Excel, odblokować komórki, a następnie przesłać. Czy istnieje sposób na odczyt komórek blokady. Próbowałem jak poniżej:
For row As Integer = workSheet.Dimension.Start.Row + 1 To workSheet.Dimension.[End].Row
workSheet.Cells(row, vLocation).Style.Locked = False
Dim strLocation = Convert.ToString(workSheet.Cells(row, vLocation).Value)
Next
Nawet próbowałem następujący kod, aby odblokować arkusz za pomocą EPPlus
Try
workSheet.Protection.IsProtected = False
workSheet.Cells("A1:Z200").Style.Locked = False
Catch ex As Exception
End Try
Ale to nie działa. Jeśli odblokuję komórki ręcznie i prześlę plik, to działa.
w przeciwnym razie następująca linia nic nie zwraca
Dim strLocation = Convert.ToString(workSheet.Cells(row, vLocation).Value)
Odpowiedzi:
-1 dla odpowiedzi nr 1Spróbuj tego.
Dim fileInfo = new FileInfo(filePath);
using (var package = new ExcelPackage(fileInfo))
{
Dim ws = package.Workbook.Worksheets.FirstOrDefault();
Dim value = ws.Cells[Row, Col].Value;
}