2013-02-20 38 views
5

Tôi đang sử dụng EPPlus trong C# để đọc tệp Excel (.xlsx) hay không. Việc khởi được thực hiện như thế này:Kiểm tra xem tệp có thực sự là tệp Excel sử dụng EPPlus

var package = new ExcelPackage(new FileInfo(filename)); 

này hoạt động tốt nhưng có cách nào để kiểm tra xem các quy định filename hoặc package thực sự là một tập tin .xlsx hợp lệ? Nếu không, sẽ có trường hợp ngoại lệ khi hoạt động trên đối tượng không phải Excel, ví dụ: nếu người dùng vô tình mở tệp .zip hoặc người khác.

Trả lời

3

Bạn có thể kiểm tra phần mở rộng của tập tin của bạn:

string file = @"C:\Users\Robert\Documents\Test.txt"; 

string extenstion = Path.GetExtension(file); 

Cập nhật

tôi havent tìm thấy một số loại giá trị trả lại cho tình huống mà một số tập tin không thể được mở trong tài liệu EPPlus, nhưng bạn có thể sử dụng quyền này để nắm bắt các kích thích:

FileInfo fileInfo = new FileInfo(pathToYourFile); 

ExcelPackage package = null; 
try 
{ 
    package = new ExcelPackage(fileInfo); 
} 
catch(Exception exception) 
{ 
    ... 
} 

Nếu bạn không ở trong catch - điều đó có nghĩa là nó là o viết đúng.

+1

Có, nhưng điều này không phát hiện được nếu tệp là Excel theo cách nhị phân, phải không? –

+1

@Robert - không thể bạn chỉ kiểm tra nó trên máy tính của bạn? – MikroDel

+0

@Robert - hoặc bạn có nghĩ rằng các tệp nhị phân đó không có phần mở rộng nào không?) – MikroDel

Các vấn đề liên quan