Read Excel Sheet Data Into DataTable - CodeProject
Read Excel Sheet Data Into DataTable - CodeProject
http://www.codeproject.com/Questions/445400/Read-Excel-Sheet-Data...
manuu
2K
Sign out
home
articles
quick answers
discussions
features
community
help
Ask a Question
FAQ
Next
Your status enables you to edit this question. Alternatively, if the question is incomplete or simply isn't a question, then please report it.
Your Filters
Interested Ignored Save Filters
Thank's in advance
Posted 23 Aug '12 - 0:55 pranathis012 Improve question Permalink
Add a Solution
5 solutions Solution 1
follow this process..
Vote:
public static DataTable exceldata(string filePath) { DataTable dtexcel = new DataTable(); bool hasHeaders = false; string HDR = hasHeaders ? "Yes" : "No"; string strConn; if (filePath.Substring(filePath.LastIndexOf('.')).ToLower() == ".xlsx") strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\""; else strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\""; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); //Looping Total Sheet of Xl File /*foreach (DataRow schemaRow in schemaTable.Rows) { }*/ //Looping a first Sheet of Xl File DataRow schemaRow = schemaTable.Rows[0]; string sheet = schemaRow["TABLE_NAME"].ToString(); if (!sheet.EndsWith("_")) { string query = "SELECT * FROM [" + sheet3 + "]"; OleDbDataAdapter daexcel = new OleDbDataAdapter(query, conn); dtexcel.Locale = CultureInfo.CurrentCulture; daexcel.Fill(dtexcel); }
1 of 4
25/05/2013 01:10
http://www.codeproject.com/Questions/445400/Read-Excel-Sheet-Data...
Improve solution
Permalink
Solution 2
It works same as in case of database. like
Vote:
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(@"~\data\cocustomerdetails.xlsx") + "; Extended Properties=Excel 12.0;"); OleDbCommand oconn = new OleDbCommand("select * from [Sheet1$]", cnn); cnn.Open(); OleDbDataAdapter adp = new OleDbDataAdapter(oconn); DataTable dt = new DataTable(); adp.Fill(dt);
Improve solution
Permalink
Solution 3
refer this link Read Excel in ASP.NET[^] and just replace sheet1 to sheet3 may be this will help u thank you @ChetanV@
Vote:
Improve solution
Permalink
Solution 4
Vote:
Hello, It is very easy to export excel data into datatable using [Commercial Spam Link Removed]. Take a look at this C# example:
Collapse | Copy Code
ExcelWorkbook Wbook = ExcelWorkbook.ReadXLS(@"c:\test.xls"); ExcelWorksheet Wsheet = Wbook.Worksheets["Sheet3"]; DataTable dt = new DataTable(); dt = Wsheet.WriteToDataTable();
2 of 4
25/05/2013 01:10
http://www.codeproject.com/Questions/445400/Read-Excel-Sheet-Data...
Improve solution
Permalink
Solution 5
You can use below code:
Vote:
namespace DataFromWorkbookToDB { class Program { static void Main(string[] args) { Workbook workbook = new Workbook(); workbook.LoadFromFile(@"..\..\Sample.xlsx"); string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;data Source=sample.accdb; Persist Security Info=False;"; DataTable dt = workbook.Worksheets[0].ExportDataTable(); DataTable dt2 = workbook.Worksheets[1].ExportDataTable(); using (OleDbConnection conn = new OleDbConnection(connStr)) { conn.Open(); OleDbCommand command = new OleDbCommand(); command.Connection = conn; command.CommandText = "CREATE TABLE report(Name VARCHAR(225), Capital VARCHAR(225) ,Continent VARCHAR(225),Area VARCHAR(225),Population VARCHAR(225))"; command.ExecuteNonQuery(); command.CommandText = "CREATE TABLE lists(PartNo VARCHAR(225), VendorNo VARCHAR(225) ,Description VARCHAR(225),OnHand VARCHAR(225),OnOrder VARCHAR(225))"; command.ExecuteNonQuery(); for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; string commd = "insert into [report] (Name,Capital,Continent,Area,Population) values('" + row[0].ToString() + "','" + row[1].ToString() + " ','" + row[2].ToString() + "','" + row[3].ToString() +"','"+ row[4].ToString() + "')"; command.CommandText = commd; command.ExecuteNonQuery(); } for (int i = 0; i < dt2.Rows.Count; i++) { DataRow row = dt2.Rows[i]; string commd = "insert into [lists] (PartNo,VendorNo,Description,OnHand,OnOrder) values('" + row[0].ToString() + "','" + row[1].ToString() + " ','" + row[2].ToString() + "','" + row[3].ToString() + "','" + row[4].ToString() + "')"; command.CommandText = commd; command.ExecuteNonQuery(); } } } } }
please note that above code needs this excel library Spire.XLS for .NET, you can give it a try,
Improve solution
Permalink
small
<
>
&
Preview
3 of 4
25/05/2013 01:10
http://www.codeproject.com/Questions/445400/Read-Excel-Sheet-Data...
When answering a question please: 1. Read the question carefully. 2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar. 3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome. Let's work to help developers, not make them feel stupid.
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
4 of 4
25/05/2013 01:10