1. 程式人生 > 其它 >【資料結構】——交換排序演算法:氣泡排序、快速排序

【資料結構】——交換排序演算法:氣泡排序、快速排序

技術標籤:C#教程c#教程

最近在專案中,遇到一些需求,就是將資料匯出來,以Excel檔案為主:就自己簡單的做一些demo:供初學者來學習:

  1             // 定義一個儲存檔案的路徑位置
  2             SaveFileDialog dlgPath = new SaveFileDialog();
  3             string sPath = string.Empty;
  4             // 需要儲存的格式
  5             dlgPath.Filter = "Excel檔案(*.xls)|*.xls"
; 6 7 // 對Excel相應的操作定義變數 8 ApplicationClass app = new ApplicationClass(); 9 Microsoft.Office.Interop.Excel._Workbook _workBook = null; 10 11 try 12 { 13 // 彈出要儲存檔案的位置(可選擇也可以預設路徑) 14 if (dlgPath.ShowDialog
() == System.Windows.Forms.DialogResult.OK) 15 { 16 sPath = dlgPath.FileName; 17 } 18 else 19 { 20 return; 21 } 22 23 24 Workbooks workBooks = app.Workbooks;
25 _workBook = workBooks.Add(true); 26 27 Sheets sheets = _workBook.Sheets; 28 29 Worksheet sheet = (Worksheet)sheets[1]; 30 31 //判斷表頭是為空 32 if (!string.IsNullOrEmpty(dt.TableName)) 33 { 34 sheet.Name = dt.TableName; 35 } 36 37 char sExcelColn = 'A'; 38 char sExcelColnEx = 'A'; 39 for (int i = 0; i < dt.Columns.Count; i++) 40 { 41 // 設定Excel某列單元格的文字格式,從第二行開始 42 for (int index = 2; index < dt.Rows.Count+2; index++) 43 { 44 if (i > 25) 45 { 46 Range objRange = sheet.get_Range("A" + sExcelColnEx + index.ToString(), Type.Missing); 47 if (null!=objRange) 48 { 49 objRange.NumberFormatLocal = "@"; 50 } 51 else { 52 break; 53 } 54 } 55 else 56 { 57 Range objRange = sheet.get_Range("A" + sExcelColn + index.ToString(), Type.Missing); 58 if (null != objRange) 59 { 60 objRange.NumberFormatLocal = "@"; 61 } 62 } 63 } 64 if (i<=25) 65 { 66 sExcelColn++; 67 }else 68 { 69 sExcelColnEx++; 70 } 71 } 72 int x = 1, y = 1; 73 foreach (DataColumn cloumn in dt.Columns) 74 { 75 // 如果Caption不為空表頭輸出使用Caption,否則使用ColumnName 76 if (string.IsNullOrEmpty(cloumn.Caption.ToString())) 77 { 78 sheet.Cells[x, y++] = cloumn.ColumnName.ToString(); 79 } 80 else 81 { 82 83 sheet.Cells[x, y++] = cloumn.Caption.ToString(); 84 } 85 } 86 x++; 87 y = 1; 88 89 foreach (DataRow row in dt.Rows) 90 { 91 foreach (DataColumn column in dt.Columns) 92 { 93 sheet.Cells[x,y++] = row[column.ColumnName].ToString(); 94 } 95 x++; 96 y = 1; 97 } 98 _workBook.SaveAs(sPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 99 XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 100 101 } 102 catch (Exception ex) 103 { 104 105 throw ex; 106 } 107 finally 108 { 109 if (_workBook!=null) 110 { 111 _workBook.Close(Type.Missing, Type.Missing, Type.Missing); 112 } 113 if (app!=null) 114 { 115 app.Quit(); 116 } 117 }

上面的程式碼是將資料轉換成Excel的過程:

我們在做一組假資料,看看效果:

 1             // 表格資料
 2             System.Data.DataTable dt = new System.Data.DataTable();
 3             dt.Columns.Add("name");
 4             dt.Columns.Add("age");
 5             dt.Columns.Add("sex");
 6             dt.Columns.Add("weight");
 7             dt.Columns.Add("height");
 8             dt.Columns.Add("adress");
 9             dt.Columns.Add("phone");
10             dt.Columns.Add("workAdress");
11 
12             DataRow dr = dt.NewRow();
13             dr["name"] = "萬三竇";
14             dr["age"] = "28";
15             dr["sex"] = "男";
16             dr["weight"] = "68kg";
17             dr["height"] = "167cm";
18             dr["adress"] = "豐臺區大井";
19             dr["phone"] = "13866669999";
20             dr["workAdress"] = "金堂國際大廈配樓301";
21             dt.Rows.Add(dr);

我上面是用WindowForm做的demo:只需在介面加個按鈕呼叫下,就可以,我們來看下效果
在這裡插入圖片描述

vb.net教程c#教程python基礎教程

若有不正確的地方,請大家多多指教!