ASP.NET用MyXls實現Excel數據導出

fefef123 10年前發布 | 5K 次閱讀 C# Excel

MyXls是用C#開源項目,可以應用于asp.net 或者 .net應用程序上。它根據微軟公開的Excle文檔格式文件(BIFF),以二進制格式直接生成excel文檔,支持Excel versions 97 - 2007 。這意味著你可以不用在服務器上安裝office就能夠以excle格式輸出數據庫中存儲的數據了,這對于許多項目來說都是很有用的。

關于MyXls它的主頁上是這樣描述的:

Writes and now Reads Excel files quickly and easily, including formatting. Generate Excel files for ASP.NET sites or .NET applications. Doesn't require Excel on the server or any licensing $. Compatible with Excel versions >= 97.

其功能之強大也不是誰能一時就能掌握的,我在這里主要介紹一下如何用它實現數據導出,關于用它讀取和生成Excel我還沒有用過也就不做過多發言了,各位需要可以再google一下!

第一步,當然是下在MyXls,地址:http://sourceforge.net/projects/myxls/

第二步,添加引用org.in2bits.MyXls.dll

第三步,實現數據導出,我這里是將一個DataTable作為數據導出,導出后內容格式和DataTable一致,具體代碼如下:

    private void Output(DataTable dt)  
    {  
        org.in2bits.MyXls.XlsDocument doc = new org.in2bits.MyXls.XlsDocument();  
        doc.FileName = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + ".xls";//excel文件名稱  
        org.in2bits.MyXls.Worksheet sheet = doc.Workbook.Worksheets.AddNamed("sheet1");//Excel工作表名稱  
        org.in2bits.MyXls.Cells cells = sheet.Cells;  
        int colnum = dt.Columns.Count;//獲取DataTable列數  

        for (int i = 0; i < colnum; i++)  
        {  
            cells.Add(1, (i + 1), dt.Columns[i].Caption.ToString());//導出DataTable列名  
        }  
        for (int i = 0; i < dt.Rows.Count; i++)  
        {  
            for (int j = 0; j < colnum; j++)  
            {  
                cells.Add((i + 2), (j + 1), dt.Rows[i][j].ToString());  
            }  
        }  
        //doc.Save(@"D:\");  //保存到指定位置  
        doc.Send();//把寫好的excel文件輸出到客戶端  
    }  

 本文由用戶 fefef123 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!