
(1)建立Table規格:
(2)設定存檔名稱

我們常常會做「匯出」的功能,但是匯出的時候有一種狀況會出問題,就是如果資料的第一個字元是 0 但是你必須要留著的話,用 CSV 格式匯出再用 Excel 打開後,前面的 0 就會不見(被 Excel 視為是數字格式而吃掉了)。
這裡有一些連結說明各種不同的作法,蠻不錯的!
A Very Easy to Use Excel XML Export Library
http://www.codeproject.com/KB/office/excelxmllibrary.aspxHow to transfer data to an Excel workbook by using Visual C# 2005 or Visual C# .NET
http://support.microsoft.com/kb/306023/en-us如何將資料傳送至 Excel 活頁簿藉由使用 Visual C# 2005 或 Visual C# . NET
http://support.microsoft.com/kb/306023/zh-twConsiderations for server-side Automation of Office
http://support.microsoft.com/kb/257757/en-usOffice 伺服器端自動化的考量因素
http://support.microsoft.com/kb/257757/zh-twHow to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/kb/301982/en-us如何從 Visual Basic . NET Microsoft Excel 自動化
http://support.microsoft.com/kb/301982/zh-tw
當然還有其他方式,以前用的方式是在 Excel 中開一個新檔案,把你資料庫中的欄位都打在第一列,然後輸入一筆資料到第二列,當然也可以新增好幾個工作表(Worksheet),之後另存新檔成 XML 格式,你再去看這個檔案的內容(XML格式),格式很容易了解,你照著這個格式重新將從資料庫讀出來的資料轉成這個 Excel XML 格式就可以指定每一個儲存格的格式了!
資料來源
http://blog.miniasp.com/post/2007/11/28/How-to-transfer-data-to-an-Excel-workbook-by-using-Visual-Studio-2005.aspx
如果你要匯出資料成檔案,作法通常有很多種,之前曾經有篇文章【如何用 C# 將資料匯出到 Excel】介紹一些匯出的方式,但今天這個作法應該是最簡單的,也就是透過 GridView 控制項所輸出的 HTML 就可以讓 Excel 開啟了。
在 Excel 或 Word 中本來就看的懂 HTML 語法,你甚至可以試著將隨便一個網頁的副檔名改成 *.doc 然後用 Word 開啟,就可以看的到內容了。當然在 Excel 能看懂得就有一格一格的 <table> 語法啦!
以下的程式碼是寫在 Generic Handler 裡的片段:
GridView gvExport = new GridView();
gvExport.DataSource = getDataTable(strQuery);
gvExport.DataBind();
string strExportFilename = "ExportedData.xls";
Response.Clear();
Response.AddHeader("content-disposition",
"attachment;filename=" + strExportFilename + ".xls");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";
Response.Charset = "big5";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
gvExport.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString().Replace("<div>", "").Replace("</div>", ""));
Response.End();
通常你可以寫一支 Generic Handler (泛型處理常式) 專門用來做網站所有資料匯出的動作,若匯出資料有權限上的限制,也可以統一在同一支程式裡判斷。
取得兩個日期之間的「天數」(不足一天者採「無條件刪去法」)
new TimeSpan(date1.Ticks - date2.Ticks).Days
取得兩個日期之間的「天數」(回傳型別為 double 雙精確度)
new TimeSpan(date1.Ticks - date2.Ticks).TotalDays
取得兩個日期之間的「小時數」(回傳型別為 double 雙精確度)
new TimeSpan(date1.Ticks - date2.Ticks).TotalHours
取得兩個日期之間的「分鐘數」(回傳型別為 double 雙精確度)
new TimeSpan(date1.Ticks - date2.Ticks).TotalMinutes
備註事項
在 TimeSpan 成員中,只要是 Total 開頭的屬性,都是回傳兩個時間差的「總天數」、「總時數」、「總分鐘數」、「總秒數」、「總豪秒數」,而且以 double 型別回傳,若無法整除都會有小數點出現。
另外 Days 屬性是回傳不足一天者採「無條件刪去法」的天數外 (整數型別),其餘的像是 Hours, Minutes, Seconds, Milliseconds 等屬性都是以用來描述該差異天數中的餘數進行表示。舉個例子說明會比較清楚:
[code:c#]DateTime date1 = new DateTime(2008, 12,31, 23,59,59, DateTimeKind.Local);
DateTime date2 = new DateTime(2003, 2,13, 23,59,59, DateTimeKind.Local);
TimeSpan s = new TimeSpan(date1.Ticks - date2.Ticks);[/code]
上述例子中,因為回傳的「差異天數」剛好為「整數」,並沒有時、分、秒、豪秒等餘數,所以 s.Hours, s.Minutes, s.Seconds, s.Milliseconds 等屬性回傳值都會是 0 喔!
參考資料:
http://blog.miniasp.com/post/2008/01/Find-the-difference-between-two-DateTime.aspx
//可加入 [WebMethod] public string HelloWorld() { return "Hello World"; } /// <summary> /// 加總功能 /// </summary> /// <param name="inA">第1個數</param> /// <param name="inB">第2個數</param> /// <returns></returns> [WebMethod] public int SumNumber(int inA, int inB) { return inA+inB; } |

DateTimePicker
NumericUpDown
RadioButton