EXCEL操作#region EXCEL操作
public static DataTable getRec(string FileName, out string status)
...{
status = "";
DataTable ResultDt = new DataTable();
string connstring = string.Format("Provider=Microsoft.Jet.Oledb.4.0;Data Source={0};Extended Properties=Excel 8.0", FileName);
OleDbConnection conn = new OleDbConnection(connstring);
string SheetName1 = getAllTables(FileName)[0];
string sqlstr = "select * from [" + SheetName1 + "]";
OleDbDataAdapter da = new OleDbDataAdapter(sqlstr, conn);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
conn.Close();
da.Dispose();
conn.Dispose();
string err = "";
ResultDt = dt;
status += err;
return ResultDt;
}
/**//// <summary>
/// 轉爲電子表格文件
/// </summary>
/// <param name="ctl"></param>
/// <param name="FileName"></param>
public static void ToExcel(System.Web.UI.Control ctl, string FileName)
...{
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName + ".xls");
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
/**//// <summary>
/// 外部文件存儲
/// </summary>
/// <param name="File1">控件</param>
/// <param name="FileName">文件名</param>
/// <param name="ErrText"></param>
public static void FileSave(System.Web.UI.HtmlControls.HtmlInputFile File1, string FileName, out string ErrText)
...{
ErrText = "";
string FilePath = FileName.Substring(0, FileName.LastIndexOf('/'));
if (!System.IO.Directory.Exists(FilePath))
...{
System.IO.Directory.CreateDirectory(FilePath);
}
if (System.IO.Directory.Exists(FileName))
...{
System.IO.Directory.Delete(FileName);
}
File1.PostedFile.SaveAs(FileName);
}
/**//// <summary>
/// 獲取外部文件的所有sheet
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static string[] getAllTables(string fileName)
...{
string strCon = string.Format(" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = {0};Extended Properties=Excel 8.0;", fileName);
//ADOX.CatalogClass catalog = new ADOX.CatalogClass();
ADOX.CatalogClass catalog = new ADOX.CatalogClass();
ADODB.ConnectionClass _connection = new ADODB.ConnectionClass();
_connection.Open(strCon, null, null, 0);
catalog.ActiveConnection = _connection;
string[] tables = new string[catalog.Tables.Count];
int i = 0;
foreach (ADOX.Table table in catalog.Tables)
...{
tables[i] = table.Name;
i += 1;
}
_connection.Close();
_connection.Cancel();
return tables;
}
#endregion
public static DataTable getRec(string FileName, out string status)
...{
status = "";
DataTable ResultDt = new DataTable();
string connstring = string.Format("Provider=Microsoft.Jet.Oledb.4.0;Data Source={0};Extended Properties=Excel 8.0", FileName);
OleDbConnection conn = new OleDbConnection(connstring);
string SheetName1 = getAllTables(FileName)[0];
string sqlstr = "select * from [" + SheetName1 + "]";
OleDbDataAdapter da = new OleDbDataAdapter(sqlstr, conn);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
conn.Close();
da.Dispose();
conn.Dispose();
string err = "";
ResultDt = dt;
status += err;
return ResultDt;
}
/**//// <summary>
/// 轉爲電子表格文件
/// </summary>
/// <param name="ctl"></param>
/// <param name="FileName"></param>
public static void ToExcel(System.Web.UI.Control ctl, string FileName)
...{
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName + ".xls");
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
/**//// <summary>
/// 外部文件存儲
/// </summary>
/// <param name="File1">控件</param>
/// <param name="FileName">文件名</param>
/// <param name="ErrText"></param>
public static void FileSave(System.Web.UI.HtmlControls.HtmlInputFile File1, string FileName, out string ErrText)
...{
ErrText = "";
string FilePath = FileName.Substring(0, FileName.LastIndexOf('/'));
if (!System.IO.Directory.Exists(FilePath))
...{
System.IO.Directory.CreateDirectory(FilePath);
}
if (System.IO.Directory.Exists(FileName))
...{
System.IO.Directory.Delete(FileName);
}
File1.PostedFile.SaveAs(FileName);
}
/**//// <summary>
/// 獲取外部文件的所有sheet
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static string[] getAllTables(string fileName)
...{
string strCon = string.Format(" Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = {0};Extended Properties=Excel 8.0;", fileName);
//ADOX.CatalogClass catalog = new ADOX.CatalogClass();
ADOX.CatalogClass catalog = new ADOX.CatalogClass();
ADODB.ConnectionClass _connection = new ADODB.ConnectionClass();
_connection.Open(strCon, null, null, 0);
catalog.ActiveConnection = _connection;
string[] tables = new string[catalog.Tables.Count];
int i = 0;
foreach (ADOX.Table table in catalog.Tables)
...{
tables[i] = table.Name;
i += 1;
}
_connection.Close();
_connection.Cancel();
return tables;
}
#endregion