1. 获取execl sheet个数
/// <summary>
/// 获取execl个数
/// </summary>
/// <param name="Path"></param>
/// <param name="index"></param>
/// <returns></returns>
public static int ExcelGetSheetIndex(string Path)
{
Workbook workbook = new Workbook();
workbook.Open(Path);
int count = workbook.Worksheets.Count;
return count;
}
2.获取execl sheet名称集合
/// <summary>
/// 获取execl sheet名称集合
/// </summary>
/// <param name="Path"></param>
/// <returns></returns>
public static List<sheetData> ExcelGetSheetList(string Path)
{
List<sheetData> returnList = new List<sheetData>();
Workbook workbook = new Workbook();
workbook.Open(Path);
int count = workbook.Worksheets.Count;
for (var i = 1; i < count; i++)
{
DataSet set = ExcelUitl.GetTableList(Path);
DataTable table = set.Tables[workbook.Worksheets[i].Name];
List<cdData> cdList = new List<cdData>();
foreach (DataRow row in table.Rows)
{
if (table.Columns.Count > 2)
{
string key = row[0].ToString();
string number = row[1].ToString();
string value = row[2].ToString();
cdData cd = new cdData()
{
key = key,
number = number,
value = value
};
cdList.Add(cd);
}
else
{
string key = row[0].ToString();
string value = row[1].ToString();
cdData cd = new cdData()
{
key = key,
value = value
};
cdList.Add(cd);
}
}
sheetData data = new sheetData()
{
index = i,
name = workbook.Worksheets[i].Name,
data = cdList
};
returnList.Add(data);
}
return returnList;
}
3.将execl输出为DataSet
public static DataSet GetTableList(string Path)
{
DataSet ds = new DataSet();
Workbook workbook = new Workbook();
workbook.Open(Path);
if (workbook.Worksheets != null)
{
foreach (Worksheet sheet in workbook.Worksheets)
{
Cells cells = sheet.Cells;
DataTable dt = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);
dt.TableName = sheet.Name;
ds.Tables.Add(dt);
}
}
return ds;
}