Time of Update: 2018-12-05
讀寫資料都完成了,現在來看看如何產生用戶端介面。使用Atals的TabContainer是個不錯的選擇。比較的是如何保持儲存格原有的格式,特別是在有儲存格合并的情況下。首先,你得有一個TabContainer控制項在頁面中,然後需要根據工作表的數量添加相應的TabPanel。可以以如下方式添加:XmlNodeList sheet_node_list = xml.GetElementsByTagName("WORKSHEET");for (int m = 0; m < sheet_node_
Time of Update: 2018-12-05
我們可以為HTML表格增加編輯功能,具體表現為:當使用者單擊某個儲存格(術語:啟用),該儲存格位置上出現編輯框,背景也與其它未啟用的儲存格不同,以示區別,當使用者完成編輯後,儲存格內容被更新。如果使用者使用方向鍵,則變化儲存格的啟用狀態。整個情況類似於Excel中的操作。要實現上述目的,我們首先要處理儲存格的在啟用事件(onactivate)和去啟用事件(ondeactivate),具體實現如下:// 儲存格的在啟用事件function onCellActivate (){ var
Time of Update: 2018-12-05
當使用者編輯Excel工作表的時候,如果在正編輯的儲存格上按斷行符號或下鍵頭的時候,編輯焦點會自動向下滾動。當然Excel本身已經具有256X65535的空間,因此這不是什麼新鮮事。如果要在我們的HTML表格上實現這樣的功能,那就更像Excel了,而且這麼簡單的功能,沒有理由不來個錦上添花。設想一下,當使用者使用我們的表格編輯資料,來到最後一行,輸入,一按斷行符號,表格自動增加了一行,來到最後一列,再按右鍵頭,表格自動增加了一列,這樣的功能是不是很酷?由於HTML表格是半靜態,需要我們動態添加新
Time of Update: 2018-12-05
雖然MS不建議在網站中使用Automation來訪問Excel對象,但在只有很少訪問量的Intranet中應用一下也是可以的。要使用Excel Automation,首先要添加Microsoft.Office.Interop.Excel的引用。通過項目的“Add Reference”視窗, 找到"Microsoft Excel 12.0 Object"(這裡是Excel 2007,如果是Excel 2003版本,則為“Microsoft Excel 11.0 Object”)。
Time of Update: 2018-12-05
前面描述了如何在伺服器端產生HTML表格,本節就講述如何在用戶端完成同樣的工作。在用戶端實現這個功能,需要用到ScriptMethod方法,將XmlDocument返回到用戶端,用戶端使用JavaScript指令碼來完成表格的渲染工作。先實現伺服器端的WebService,假定為ReadDataService.asmx。其實現大致如下:using System.Xml;using System.Xml;.../// <summary>/// Summary description
Time of Update: 2018-12-05
預設情況下,ASP.NET以“NET SERVICE”來啟動Excel,如果沒有正確的設定許可權或使用模仿(Imperson),則會出現無法啟動Excel的錯誤。先看模仿(imperson)如何處理。模仿需要在web.config指定有許可權啟動和訪問Excel的使用者名稱和密碼,密碼是明文的,其格式如下:<system.web> .... <!-- 模仿的文法 --> <identity impersonate ="true" userName=
Time of Update: 2018-12-05
除了直接存取儲存格讀取資料的方法之外,也可以使用OleDBAdapter來讀取Excel工作表資料,注意,是工作表資料。使用這種方法,可以一次性擷取全部工作表資料集。使用Excel 2003的方法,注意連接字串中的單引號:using System.Data;using System.Data.OleDb;...OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "$]",
Time of Update: 2018-12-05
已經建立了Excel.Application對象,並開啟了工作薄,現在可以遍曆工作表和儲存格來擷取資料了。並不是所有的儲存格都有資料,大部分都是空的,因此XmlDocument來儲存取得的資料是個不錯的主意,還可以將XmlDocuemnt作為ScriptMethod的結果返回到用戶端瀏覽器,使用JavaScript來產生表格,表現結果。根據我的經驗,即使在服務端建立表格,也只消耗Excel操作的數百分之一的時間(實際資料:Excel操作耗時22.3秒,產生表格0.06秒,差距巨大)。可以通過以下
Time of Update: 2018-12-05
讀取資料之後,可以產生HTML的頁面,由使用者在用戶端瀏覽器進行線上編輯(產生表格和添加線上編輯功能將在後續章節中描述,如果這個主題讓大家感興趣的話),類似於Google的線上試算表功能。當然啦,我們只要很陽春的功能就可以了。編輯的結果,可以以XML的形式提交給伺服器端處理,這個處理主要是儲存為XLSX試算表。因為使用的是ASP.NET環境,配合Atlas會比較方便,使用ScriptMethod可以很容易的將用戶端的資料非同步提交。先定義用戶端提交的資料形式:<?xml version="
Time of Update: 2018-12-05
前面章節描述的使用Automation操作Excel的方法,採用每次new Excel.Application()的方式。這樣每訪問Excel一次,就要啟動一個Excel執行個體,會耗費很多時間在Excel的啟動上(我的環境下大致是用15秒來啟動Excel)。這個可以通過將Excel.Application類型變數申明為static來進行最佳化。通過這種方式,除第一次需要啟動Excel外,後續操作都不再啟動另外的Excel執行個體,這樣,不但只有一個Excel執行個體,節省了空間,而且也節省了“
Time of Update: 2018-12-05
上一節留了個尾巴,沒有說如何擷取表格的尺寸。其實表格尺寸的計算在讀取Excel工作表資料時就應該進行,同時進行的還有計算包含資料的儲存格的最大列號和行號。具體實現是:for (int r = rowRange.Count; r >= 1; r--){ XmlElement row_elem = xml.CreateElement("ROW"); double rowHeight = 18.5f; for (int c = 1; c < colRange.Count;
Time of Update: 2018-12-05
現在已經有了儲存格對象,我們來讀取儲存格資料:Excel.Range cell = (Excel.Range)range.get_Item(r, c); // 擷取儲存格對象if ( (bool)cell.HasFormula ) // 該儲存格式為公式{ // cell_elem為XmlElement對象 cell_elem.SetAttribute("hasFormula", "true"); cell_elem.SetAttribute("formula",
Time of Update: 2018-12-05
1.Calendar控制項 Label1_info.Text += "<br>你的生日:" + Calendar1.SelectedDate.ToString("D");2.FileUpload控制項FileUpload1.SaveAs(Server.MapPath("upload/"+FileUpload1.FileName));Label1_info.Text += FileUpload1.PostedFile.FileName + "<br>檔案大小 :" +
Time of Update: 2018-12-05
簡單通訊錄功能雖然簡單,卻包括了製作一個網站的準系統!各個模組可以作為新手入門的參考。簡單通訊錄實現功能:1.登入 2.註冊 3.後台管理 4.前台登入顯示 5.建立連絡人 6.密碼修改代碼下載:http://download.csdn.net/detail/wyz365889/5773253實現功能如下:主要代碼實現如下:1.底層資料模組using System;using System.Data;using System.Configuration;using
Time of Update: 2018-12-05
1、html伺服器控制項:其實就是html控制項的基礎上加上runat="server"所構成的控制項.它們的注意區別是運行方式不同,html控制項運行在用戶端,而html伺服器控制項是運行在伺服器端的。所有的HTML伺服器控制項都繼承HtmlControl類,在該類下,可以分為三種類型:HtmlInputControl(輸入控制項)、HtmlContainerControl(容器控制項)、HtmlImage(圖片控制項)。2、web伺服器控制項:也稱asp.net伺服器控制項,它能夠比HTML
Time of Update: 2018-12-05
使用c#語言在.net平台產生的dll是基於MSIL的二進位代碼,通常情況下是無法被native的語言和程式調用的(例如vb,vc,delphi)。但是一般來說windows上native的程式都是可以直接使用com對象的。通過.net平台提供的一些工具,可以為其偽造一個com介面並註冊到系統中。此時,可以在native的程式裡,通過這個偽com介面來實現此.net的dll的調用。1 使用C#建立.net的dll1.1 建立項目在.net中建立一個項目:TestCom。1.2
Time of Update: 2018-12-05
驗證控制項綜述 驗證控制項包括:RequiredFieldValidator(必填)、RangeValidator(範圍)、RegularExpressionValidator(Regex)、CompareValidator(比較與類型)、CustomValidator(自訂)、ValidationSummary(資訊提示匯總),總共六個驗證控制項。 驗證控制項的功能介紹:RequiredFieldValidator
Time of Update: 2018-12-05
在c# 代碼中調用dos命令:nbtstat -A 192.168.0.11然後在返回的字串中去截取mac地址即可。不過要注意,這個命令會緩衝一些資訊,一段時間後他會自動清理,但是如果伺服器的管理員把伺服器上緩衝設定得小,後面的c#還一直調用這個命令,會導致伺服器緩衝溢出並崩潰。(具體情況我也描述不清,我只是當時公司中出現了這個問題,我負責去尋找另外的方式來擷取mac代替上種方式,網上方式也有幾種,但都沒有找到完全合適的,等你碰到的時候回想起本條部落格說的有可能造成緩衝溢出就行了)
Time of Update: 2018-12-05
發布日期: 2006-3-1 | 更新日期: 2006-3-1Matt GibbsDevelopment Lead, Web Platform and Tools適用於:ASP.NET 2.0Visual Studio 2005ASP.NET 控制項的開發人員利用 ViewState 和控制項狀態來保持瀏覽器發出的各請求之間的狀態資訊。通常,該資訊作為由頁面呈現的 HTML
Time of Update: 2018-12-05
C#代碼public partial class _Default : System.Web.UI.Page, ICallbackEventHandler...{ private string result; protected void Page_Load(object sender, EventArgs e) ...{ if (!Page.IsPostBack) ...{ strin