NPOI 2.0 支持 xls & xlsx
發表於 : 週三 9月 19, 2012 5:05 pm
[syntax="csharp"]
// 不用寫兩次,再包 try catch 兩次
IWorkbook wk1 = new HSSFWorkbook(file);
IWorkbook wk2 = new XSSFWorkbook(file);
[/syntax]
[syntax="csharp"]
void main()
{
DataTable dt1 = ToDataTable(@"c:\我的資料.xlsx");
DataTable dt2 = ToDataTable(@"c:\我的資料.xls");
}
[/syntax]
[syntax="csharp"]
public static object GetNewWorkBook<T>(string filePath) where T : IWorkbook, new()
{
try
{
using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
T wk = (T)Activator.CreateInstance(typeof(T), file);
return wk;
}
}
catch (Exception)
{
return null;
}
}
[/syntax]
[syntax="csharp"]
public static DataTable ToDataTable(string filePath)
{
IWorkbook wk = (IWorkbook)GetNewWorkBook<HSSFWorkbook>(filePath) ?? (IWorkbook)GetNewWorkBook<XSSFWorkbook>(filePath);
return ConverToDataTable(wk);
}
}
[/syntax]
ref: https://npoi.codeplex.com/releases?Rele ... NPOI%202.0
// 不用寫兩次,再包 try catch 兩次
IWorkbook wk1 = new HSSFWorkbook(file);
IWorkbook wk2 = new XSSFWorkbook(file);
[/syntax]
[syntax="csharp"]
void main()
{
DataTable dt1 = ToDataTable(@"c:\我的資料.xlsx");
DataTable dt2 = ToDataTable(@"c:\我的資料.xls");
}
[/syntax]
[syntax="csharp"]
public static object GetNewWorkBook<T>(string filePath) where T : IWorkbook, new()
{
try
{
using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
T wk = (T)Activator.CreateInstance(typeof(T), file);
return wk;
}
}
catch (Exception)
{
return null;
}
}
[/syntax]
[syntax="csharp"]
public static DataTable ToDataTable(string filePath)
{
IWorkbook wk = (IWorkbook)GetNewWorkBook<HSSFWorkbook>(filePath) ?? (IWorkbook)GetNewWorkBook<XSSFWorkbook>(filePath);
return ConverToDataTable(wk);
}
}
[/syntax]
ref: https://npoi.codeplex.com/releases?Rele ... NPOI%202.0