有些时候我们需要读取excel文件,但有时因为编码格式的问题有文件读取不了,目前表格的格式有csv xls xlsx,读取方式有很多,比如直接读取文本、文件流、数据库方式读取等等,今天总结一下,解决各种无法读取问题
编写一个帮助类
#region 读取xls、xlsx、csv文件到datable
public (bool,string, DataTable) ReadExcelToDataTable(string FilePath,string Sql,string CoonStr)
{
string connStr = "";
string fileType = Path.GetExtension(FilePath);
if (string.IsNullOrEmpty(fileType)) return (false,"文件类型为空",null);
if (fileType.ToLower() == ".xls")
{
connStr = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={
FilePath};Extended Properties='Excel 8.0;HDR=YES;IMEX=2;'";
}
else if (fileType.ToLower() == ".xlsx")
{
connStr = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={
FilePath};Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";
}
else if (fileType.ToLower() == ".csv")
{
string ReadFormat = "'Text;FMT=Delimited;HDR=YES;'";
if (!string.IsNullOrWhiteSpace(connStr)) ReadFormat = CoonStr;
connStr &