打开dbf
/// <summary>
/// 打开dbf
/// </summary>
/// <param name="filePath"></param>
/// <param name="dt"></param>
/// <returns></returns>
private DataTable dbfToDt(string filePath, DataTable dt)
{
FileInfo fi = new FileInfo(filePath);
string mulu = fi.DirectoryName;
string filename = fi.Name;
OleDbConnection conn = new OleDbConnection();
string connStr = @"Provider=VFPOLEDB.1;;Data Source=" + mulu + ";Collating Sequence=MACHINE";
conn.ConnectionString = connStr;
conn.Open();
string sql = @"select * from " + filename;
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
dt.TableName = filename.Replace(".dbf", "");
da.Fill(dt);
conn.Close();
da.Dispose();
return dt;
}
打开Excel
/// <summary>
/// 读取Excel数据转换为DataTable
/// </summary>
/// <param name="excelData"></param>
private static void ReadExcelData(string filePath, DataTable dt)
{
IWorkbook iwkX;
using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
iwkX = WorkbookFactory.Create(fs);
fs.Close();
}
ISheet sheet = iwkX.GetSheetAt(0);
var rows = sheet.GetRowEnumerator();
bool isMove = rows.MoveNext();
//循环sheet
if (isMove)
{
var Cols = (IRow)rows.Current;
for (int i = 0; i < Cols.LastCellNum; i++)
{
string str = Cols.GetCell(i).ToString();
dt.Columns.Add(Cols.GetCell(i).ToString());
}
while (rows.MoveNext())
{
var row = (IRow)rows.Current;
var dr = dt.NewRow();
for (int i = 0; i < row.LastCellNum; i++)
{
var cell = row.GetCell(i);
if (cell == null)
{
dr[i] = "";
}
else
{
string strdr = cell.ToString();
dr[i] = cell.ToString();
}
}
dt.Rows.Add(dr);
}
}
iwkX = null;
}