一:使用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中 ,顯示進度的方式