2017-10-11 33 views
1

我希望得到您的幫助,因爲我在C#和Visual Studio中完全是新手。我想加載沒有第一行的Excel表格。這裏是我的代碼到目前爲止:將數據從excel加載到數據庫,而不是第一行

namespace Calculate_Overtime_Load_in_DB 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void btnImport_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog ope = new OpenFileDialog(); 
      ope.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm"; 
      if (ope.ShowDialog() == DialogResult.Cancel) 
       return; 

      FileStream stream = new FileStream(ope.FileName, FileMode.Open); 

      IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 

      excelReader.IsFirstRowAsColumnNames = false; 
      DataSet result = excelReader.AsDataSet(); 

      DataClasses1DataContext conn = new DataClasses1DataContext(); 
      foreach (DataTable table in result.Tables) 
      { 
       foreach (DataRow dr in table.Rows) 
       { 
        SCE_Overtime addtable= new SCE_Overtime() 
        { 
         Date = Convert.ToString(dr[0]), 
         Name = Convert.ToString(dr[1]), 
         Work_Shift = Convert.ToString(dr[2]), 
         Approved_Overtime = Convert.ToString(dr[3]), 
         Holiday = Convert.ToString(dr[4]), 
         Final_Overtime = Convert.ToString(dr[5]) 
        }; 

        conn.SCE_Overtimes.InsertOnSubmit(addtable); 
       } 
      } 

      conn.SubmitChanges(); 
      excelReader.Close(); 
      stream.Close(); 
      MessageBox.Show("Table has been laoded!"); 
     } 
    } 
} 

如何跳過Excel表的第一行?

+0

*「沒有第一行」* ='跳過(1)'。 – Sinatr

+0

[從DataTable選擇第二組20行的可能的重複](https://stackoverflow.com/questions/14717644/selecting-second-set-of-20-row-from-datatable) – Sinatr

回答

0

我一直在上網的解決方案,我已經找到了兩件事情:

  1. 的一篇文章,可以幫助你解決你的問題:

https://codereview.stackexchange.com/questions/47227/reading-data-from-excel-sheet-with-exceldatareader

  • 還有另一種方式來讀取excel文件,通過使用OLEDB可以轉換行名稱中的第一行值(但可以避免),所以,看看這個其他問題,考慮到指望。2-15,這傢伙已經在他的連接字符串類型:
  • Importing Excel data into C# without first row becoming column names?

    我希望它能幫助,

    胡安

    0
    for (int i = 0; i < table.Rows.Count; i++) 
    { 
        if(i > 0){ 
         //Your Code 
        } 
    } 
    
    0

    是很常見忽略第一行,因爲它包含頭。

    您有以下代碼。

    excelReader.IsFirstRowAsColumnNames = false; 
    

    是否改變這個...

    excelReader.IsFirstRowAsColumnNames = true; 
    

    ...刪除需要忽略第一行?

    +0

    謝謝!!!解決了我的問題!!!!! :) – Tasos

    相關問題