什麼是高效&將數據從Excel表單綁定到中繼器或GridView的最簡單方法。將Excel表格中的數據綁定到中繼器或GridView
回答
我認爲很容易創建OleDbDataAdapter
並創建一個DataSet
將完成這項工作。
您可以輕鬆地綁定DataSet
到gridview
如
var conn = ("Provider=Microsoft.Jet.OLEDB.4.0;" +
("Data Source=add file path here;" +
"Extended Properties=\"Excel 8.0;\""));
var query = "SELECT table from [sheet1$]";
var adpterObj = new OleDbDataAdapter(SSQL, conn);
var ds = new DataSet();
adpterObj.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
你應該使用任何一個庫(OLEDB Connection, COM Object
或任何其他)從Excel中讀取數據,然後根據您的要求將結果賦予任何.Net對象(DataSet, DataTable
)。然後將DataSet
綁定到您的Repeater
。
也許這個鏈接將解決您的問題
public static DataSet ImportExcelXLS(string FileName, bool hasHeaders) {
string HDR = hasHeaders ? "Yes" : "No";
string strConn;
if (FileName.Substring(FileName.LastIndexOf('.')).ToLower() == ".xlsx")
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\"";
else
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\"";
DataSet output = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn)) {
conn.Open();
DataTable schemaTable = conn.GetOleDbSchemaTable(
OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
foreach (DataRow schemaRow in schemaTable.Rows) {
string sheet = schemaRow["TABLE_NAME"].ToString();
if (!sheet.EndsWith("_")) {
try {
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + sheet + "]", conn);
cmd.CommandType = CommandType.Text;
DataTable outputTable = new DataTable(sheet);
output.Tables.Add(outputTable);
new OleDbDataAdapter(cmd).Fill(outputTable);
} catch (Exception ex) {
throw new Exception(ex.Message + string.Format("Sheet:{0}.File:F{1}", sheet, FileName), ex);
}
}
}
}
return output;
}
只需添加一些鏈接作爲答案時要小心!該帖子發生了什麼被刪除?你的回答將被重定向到不存在的頁面。一些代碼與參考將是很好的!請看** http://meta.stackexchange。com/questions/8231/are-answers-that-just-contain-links-others-really-good-answers ** –
首先我們要瀏覽
void btnBrowse_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "Excel files (*.xls)|*.xls";
fileDialog.InitialDirectory = "C:";
fileDialog.Title = "Select a Excel file";
if (fileDialog.ShowDialog() == DialogResult.OK)
txtMsg.Text = fileDialog.FileName;
if (string.IsNullOrEmpty(txtMsg.Text))
return;
}
注意:txtMsg.Text = fileDialog.FileName; //此處文件名保存在一個文本框中
然後我們就可以上傳Excel工作表到gridview的...
private void btnUpload_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtMsg.Text))
{
InsertBuyBackExceldata(txtMsg.Text);
}
}
在這裏,我們可以調用InsertBuyBackExceldata方法
void InsertBuyBackExceldata(string filePath)
{
if (buyBackServiceProxyController == null)
buyBackServiceProxyController = new ProxyController();
buyBackServiceServiceProxy = buyBackServiceProxyController.GetProxy();
ListBuyBackrequest = new List();
String[] a= GetExcelSheetNames(filePath); // This method for get sheet names
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", filePath);
//string a=filePath.
String sheetName = a[0];
var adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, sheetName);
DataTable data = ds.Tables[sheetName ];
BindGrid(data);
}
這裏我打電話一方法來獲取圖紙名稱。
private String[] GetExcelSheetNames(string excelFile)
{
OleDbConnection objConn = null;
System.Data.DataTable dt = null;
try
{
String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
objConn = new OleDbConnection(connString);
objConn.Open();
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
{
return null;
}
String[] excelSheets = new String[dt.Rows.Count];
int i = 0;
foreach (DataRow row in dt.Rows)
{
excelSheets[i] = row["TABLE_NAME"].ToString();
i++;
}
return excelSheets;
}
catch (Exception ex)
{
return null;
}
finally
{
if (objConn != null)
{
objConn.Close();
objConn.Dispose();
}
if (dt != null)
{
dt.Dispose();
}
}
}
// Excel中上傳到GridView控件
void BindGrid(DataTable Data)
{
try
{
// Adding one check box
DataGridViewCheckBoxColumn chkSelection = new DataGridViewCheckBoxColumn();
chkSelection.Name = "Selection";
dgItemsForBuyBackGrid.Columns.Add(chkSelection);
int intCount = Data.Rows.Count;
if (i==true)
{
if (intCount > 0)
{
ExcelGrid.DataSource = Data;
ExcelGrid.BindPage();
}
else
{
ExcelGrid.DataSource = null;
ExcelGrid.BindPage();
return;
}
// Here I am setting Grid colomns properties this name should equal to Excel //column names.
ExcelGrid.Columns["BI"].ReadOnly = true;
ExcelGrid.Columns["AAA"].ReadOnly = true;
ExcelGrid.Columns["AAB"].ReadOnly = true;
ExcelGrid.Columns["AAC"].ReadOnly = true;
ExcelGrid.Columns["AAD"].ReadOnly = true;
ExcelGrid.Columns["AAE"].ReadOnly = true;
ExcelGrid.Columns["AAF"].ReadOnly = true;
ExcelGrid.Columns["AAG"].ReadOnly = false;
}
else
{
// Some Code
}
}
catch (Exception ex)
{
}
}
}
}
Excel 2007和其他版本的.Net上傳來的GridView。
步驟: 1)AccessDatabaseEngine.exe - >(安裝) 而一些代碼更改從上面的代碼。
2)瀏覽單擊
private void btnBrowse_Click(object sender, EventArgs e)
{
-------
fileDialog.Filter ="Excel files (*.xls;*xlsx;*xlsb)|*.xls;*xlsx;*xlsb";
// Show those extentional files.
--------------
}
3)過程點擊
string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 12.0;";
謝謝:)
問題是關於* ASP.NET *。你應該不得不更新它。 – adatapost
- 1. 將數據綁定到中繼器
- 2. 綁定列表到數據中繼器
- 3. 將gridview格式化的數據綁定到新的gridview中
- 4. 將GridView綁定到動態數據表
- 5. 將兩個sql表數據綁定到一箇中繼器
- 6. 使用jquery將excel表格中的數據導出到gridview
- 7. 如何綁定中繼器內的gridview?
- 8. 將數據綁定到數據中繼器 - VB.NET?
- 9. 中繼器中的數據綁定到下拉列表C#
- 10. 將中繼器綁定到文件和/或文件夾列表
- 11. 將數據網格綁定到表格
- 12. 將數據表值綁定到GridView中的複選框
- 13. GridView中的數據綁定
- 14. 的GridView內的中繼器ondataitembound網格視圖重新綁定
- 15. 將序列化的JSON數據綁定到中繼器
- 16. 使用#eval()將多個表中的數據綁定到中繼器
- 17. 將數據庫數據綁定到ASP.Net中的GridView
- 18. 綁定中繼器的數據源
- 19. 將數據綁定到Access(或SQL)數據源的Excel字段
- 20. 將excel文件保存到磁盤後從中繼器綁定
- 21. 將GridView綁定到列表
- 22. 使用Ajax將數據綁定到中繼器
- 23. Asp.Net將SQL數據綁定到中繼器?
- 24. 將中繼器綁定到記錄?
- 25. 將DataReader綁定到ASP.NET中繼器
- 26. 綁定中繼器到堆棧列表
- 27. 將數據表綁定到jTable網格
- 28. 將數據綁定到gridview時出錯
- 29. 將IEnumerable數據綁定到gridview
- 30. 將gridview數據綁定到數據表時出現錯誤
你是如何閱讀Excel文件?使用OLEDB連接,Excel庫或COM對象? – Icarus
@Icarus我正在使用OLEDB連接來讀取excel。 – Abhijeet
@lcarus:如何在使用COM對象時綁定..? – Kulkarni