我怎样才能从Excel文件读取

请你能用我的脚本来帮助我。 我已经做了select从Excel文件,但现在我不知道我怎么能增加价值到我的名单。 我不仅从一个文件中获取来自更多文件的数据。

这是我的实际脚本:

基本button启动事件进行读取。

private void next_Click(object sender, EventArgs e) { for (int i = 0; i < UniqueValue.traceToFile.Count; i++) { ReadFromExcel read = new ReadFromExcel(); read.ReadData(UniqueValue.traceToFile[i]); } } 

下一步之后是这样的:

 class ReadFromExcel : Config { public void ReadData(string fullpath) { DataSet da = new DataSet(); OleDbDataAdapter adapter = new OleDbDataAdapter(); string cell = "C7"; string name = "List1"; string FileName = fullpath; string _ConnectionString = string.Empty; string _Extension = Path.GetExtension(FileName); // Checking for the extentions, if XLS connect using Jet OleDB if (_Extension.Equals(".xls", StringComparison.CurrentCultureIgnoreCase)) { _ConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0};Extended Properties=Excel 8.0", FileName); } // Use ACE OleDb else if (_Extension.Equals(".xlsx", StringComparison.CurrentCultureIgnoreCase)) { _ConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", FileName); } OleDbConnection con = new OleDbConnection(_ConnectionString); string strCmd = "SELECT * FROM [" + name + "$" + cell + "]"; OleDbCommand cmd = new OleDbCommand(strCmd, con); try { con.Open(); da.Clear(); adapter.SelectCommand = cmd; adapter.Fill(da); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { con.Close(); } } } 

现在我需要把这个结果写到我的列表中。 我从每个文件只读一个单元格。

结果列表是

 public static List<int> money = new List<int>(); 

我非常感谢所有可以帮助我的答案。

我想下面的代码将帮助你。 在这个例子中,dt,dt2和dt3将考虑从你的函数ReadData函数返回excel中的数据。

 public static List<int> money = new List<int>(); protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(Int32)); dt.Columns.Add("Name"); dt.Rows.Add(); dt.Rows[dt.Rows.Count - 1]["ID"] = 1; dt.Rows[dt.Rows.Count - 1]["Name"] = "Test1"; DataTable dt2 = new DataTable(); dt2.Columns.Add("ID", typeof(Int32)); dt2.Columns.Add("Name"); dt2.Rows.Add(); dt2.Rows[dt2.Rows.Count - 1]["ID"] = 2; dt2.Rows[dt2.Rows.Count - 1]["Name"] = "Test2"; DataTable dt3 = new DataTable(); dt3.Columns.Add("ID", typeof(Int32)); dt3.Columns.Add("Name"); dt3.Rows.Add(); dt3.Rows[dt3.Rows.Count - 1]["ID"] = 3; dt3.Rows[dt3.Rows.Count - 1]["Name"] = "Test2"; money = (from row in dt.AsEnumerable() select Convert.ToInt32(row["ID"])).ToList(); money.AddRange((from row in dt2.AsEnumerable() select Convert.ToInt32(row["ID"])).ToList()); money.AddRange((from row in dt3.AsEnumerable() select Convert.ToInt32(row["ID"])).ToList()); } 
 Excel.Application excel; Excel.Workbook wb; Excel.Worksheet sh; DataTable dt=new DataTable(); excel = new Excel.Application(); excel.Visible = true; wb = excel.Workbooks.Open("File Path"); sh = wb.Sheets.Add(); sh.Name = "Data"; count = 2; sh.Cells[count, "A"].Value2 = "Column Name 1"; sh.Cells[count, "B"].Value2 = "Column Name 2"; sh.Cells[count, "C"].Value2 = "Column Name 3"; sh.Cells[count, "D"].Value2 = "Column Name 4"; sh.Cells[count, "E"].Value2 = "Column Name 5"; sh.Range["A" + count + "", "E" + count + ""].Font.Size = 12; sh.Range["A" + count + "", "E" + count + ""].Borders.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); sh.Range["I2"].WrapText = true; try { con.Open(); da.Clear(); adapter.SelectCommand = cmd; adapter.Fill(dt); foreach (DataRow row in dt.Rows) { sh.Cells[count, "A"].Value2 = row["Column Name"].ToString(); sh.Cells[count, "B"].Value2 = row["Column Name"].ToString(); sh.Cells[count, "C"].Value2 = row["Column Name"].ToString(); sh.Cells[count, "D"].Value2 = row["Column Name"].ToString(); sh.Cells[count, "E"].Value2 = row["Column Name"].ToString(); } wb.SaveAs("File Path" + "File Nmae" + ".xls"); excel.Workbooks.Close(); excel.Quit(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { con.Close(); }