/// <summary>
/// 读EXCEL到HSSFWorkbook
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public HSSFWorkbook InitWorkbook(string path)
{
HSSFWorkbook wb=null;
using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
wb = new HSSFWorkbook(file);
}
return wb;
}
/// <summary>
/// 把HSSFWorkbook转换成DataSet中
/// </summary>
/// <param name="wb"></param>
/// <returns></returns>
public DataSet ConvertToDataSet(HSSFWorkbook wb)
{
DataSet ds = new DataSet();
int sheetCount=wb.NumberOfSheets;
for (int c = 0; c < sheetCount; c++)
{
ISheet sheet = wb.GetSheetAt(c);
System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
DataTable dt = new DataTable();
#region dt添加column
int colCount = 0;
while (rows.MoveNext())
{
if (colCount < ((HSSFRow)rows.Current).LastCellNum)
colCount = ((HSSFRow)rows.Current).LastCellNum;
}
for (int j = 0; j < colCount; j++)
{
dt.Columns.Add(j.ToString());
}
#endregion
rows.Reset();
while (rows.MoveNext())
{
#region 把sheet中的值Copy到dt
HSSFRow row = (HSSFRow)rows.Current;
DataRow dr = dt.NewRow();
for (int i = 0; i < row.LastCellNum; i++)
{
ICell cell = row.GetCell(i);
if (cell != null)
{
dr[i] = cell.ToString();
}
}
dt.Rows.Add(dr);
#endregion
}
ds.Tables.Add(dt);
}
return ds;
}
/// <summary>
/// 把DataSet读到HSSFWorkbook中
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public HSSFWorkbook ConvertToWorkbook(DataSet ds)
{
HSSFWorkbook wb = new HSSFWorkbook();
foreach (DataTable dt in ds.Tables)
{
ISheet sheet= wb.CreateSheet(dt.TableName);
for (int i = 0; i < dt.Rows.Count;i++ )
{
IRow row= sheet.CreateRow(i);
foreach (DataColumn dc in dt.Columns)
{
ICell cell= row.CreateCell(dc.Ordinal);
cell.SetCellValue(dt.Rows[i][dc.Ordinal].ToString());
}
}
}
return wb;
}
public void SaveToExcel(string path,HSSFWorkbook wb)
{
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.ReadWrite);
wb.Write(fs);
fs.Close();
}
浙公网安备 33010602011771号