c#dev操作讀取excel方法


一:使用spreadsheetControl1 方法

1:打開excel;

  private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            //if (Convert.ToInt32(trv_menu.SelectedNode.Tag) == 0)
            //{
            //    MessageBox.Show("請先選擇業務", "提示信息", MessageBoxButtons.OK);
            //    return;
            //}
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "(*.xls)|*.xls|(*.xlsx)|*.xlsx|(*.csv)|*.csv";
            openFileDialog1.RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                spreadsheetControl1.LoadDocument(openFileDialog1.FileName);
            }
            spreadsheetControl1.ReadOnly = true;
        }

2:讀取按行讀取excel 處理每行中列的數值

 private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
         
          //    status1.Visible = true;
            //讀取Excele方法  
            //當前數據行數  
            int rowCount = spreadsheetControl1.ActiveWorksheet.Cells.CurrentRegion.RowCount;
            //當前數據列數  
            int columnCount = spreadsheetControl1.ActiveWorksheet.Cells.CurrentRegion.ColumnCount;
            if (rowCount == 1 && columnCount == 1)
            {
                MessageBox.Show("內容不能為空", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            for (int i = 0; i < rowCount; i++)
            {
                string sr = spreadsheetControl1.ActiveWorksheet.Cells[i, 0].Value.ToString();
                if (sr == "")
                {
                    //  blankcount++;
                    blankcountEvent(this, e);
               //     btnblank.Text = blankcount.ToString(); ;
                    continue;
                }
                //for (int j = 0; j < columnCount; j++)
                //{
                string zyzsId = spreadsheetControl1.ActiveWorksheet.Cells[i, 0].Value.ToString();  //這里取的是指定列的值. 第一列,第六列和第七列 然后做上傳
                string parentId = spreadsheetControl1.ActiveWorksheet.Cells[i, 5].Value.ToString();
                string parentName = spreadsheetControl1.ActiveWorksheet.Cells[i, 6].Value.ToString();
                string ip= "192.168.1.115";
                //}
                string url = "xxxxxxxxxx" + parentName;
                string data =""/;
                string result = HttpPost(url, data);
                 if(result=="ok")
                {
                  //  successcount++;
                    successcountEvent(this, e);
             //       btnupsuccount.Text= successcount.ToString();
                }
                else if(result == "fail")
                {
                    //    failedcount++;
                    failedcountEvent(this, e);
           //         btnfailedcount.Text = failedcount.ToString();
                }

            }
        }

總結:由於數據倒入到spreadsheetControl1  顯示在窗體中沒有實際操作,占用了資源.在上傳時有卡頓現象,卡頓也有其他原因.總之這種是現實方式方式不值得推薦.

二:文件文件名加載到gridcontrol中 ,顯示進度的方式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM