C#调用EPPlus.dll读取Excel去掉空列
public static DataTable GetExcelSheet(string file,string sheetName)
{
DataTable dt = new DataTable();
try
{
using (ExcelPackage package = new ExcelPackage(new FileInfo(file)))
{
ExcelWorksheet worksheet = null;
if (!string.IsNullOrWhiteSpace(sheetName))
{
worksheet = package.Workbook.Worksheets[sheetName];
dt.TableName = sheetName;
}
else
{
worksheet = package.Workbook.Worksheets[1];
dt.TableName = worksheet.Name;
}
int colCount = 0;
for (int a = worksheet.Dimension.Start.Column; a <= worksheet.Dimension.End.Column; a++)
{
string colName = worksheet.GetValue<string>(worksheet.Dimension.Start.Row, a);
if (string.IsNullOrWhiteSpace(colName))
{
colCount = a;
break;
}
}
for (int c = worksheet.Dimension.Start.Column; c <= colCount; c++)
{
dt.Columns.Add(worksheet.GetValue<string>(worksheet.Dimension.Start.Row, c), typeof(System.String));
}
for (int r = worksheet.Dimension.Start.Row + 1; r < worksheet.Dimension.End.Row + 1; r++)
{
DataRow row = dt.NewRow();
for (int c = worksheet.Dimension.Start.Column; c <= colCount; c++)
{
row[c - 1] = worksheet.GetValue<string>(r, c);
}
dt.Rows.Add(row);
}
package.Dispose();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return dt;
}