Asp.net程式中產生Excel報表)

來源:互聯網
上載者:User
(轉自http://www.cnblogs.com/osamede/archive/2008/04/14/1153414.html)

,產生Excel,雖然可以對Excel檔案進行完全控制,可以產生任何複雜的格式,但是有個很大的缺點,這種方式會產生很多Excel進程,很難完全清除掉,特別是在出錯的時候,可能會使整個伺服器崩潰。本文為大家介紹一個C#寫的開源組件,並簡單說下office2003和以上版本支援的XML格式。

 一 操作Excel二進位格式

    OpenOffice.org發布過的倆個文檔Excel File Format (BIFF8)Specification和Microsoft CompoundDocument (OLE2) Format Specification對Excel的二進位格式做了一個比較詳細的說明,依靠這些資訊,我們可以直接操作Office二進位格式文檔。

  MyXls是一個C#寫的開源組件,可以用來產生具有很多表格且包含格式的Excel檔案。它提供了一套基於對象的API,非常容易使用。

1,產生一個空的表格

       

1 XlsDocument xls = new XlsDocument(); //建立一個空的Excel文檔
2        
3 xls.Send(); //將文檔發送到瀏覽器。

2, 建立一個複雜點表格 XlsDocument xls = new XlsDocument();
            xls.FileName = "Wacky.xls";

            //添加檔案屬性
            xls.SummaryInformation.Author = "Tim Erickson"; //作者
            xls.SummaryInformation.Subject = "A wacky display of Excel file generation";
            xls.DocumentSummaryInformation.Company = "in2bits.org";

            for (int sheetNumber = 1; sheetNumber <= 5; sheetNumber++)
            {
                string sheetName = "Sheet " + sheetNumber;
                int rowMin = sheetNumber;
                int rowCount = sheetNumber + 10;
                int colMin = sheetNumber;
                int colCount = sheetNumber + 10;
                //建立5個表格
                Worksheet sheet = xls.Workbook.Worksheets.AddNamed(sheetName);
                Cells cells = sheet.Cells;
                for (int r = 0; r < rowCount; r++)
                {
                    if (r == 0)
                    {
                        for (int c = 0; c < colCount; c++)
                        {
                            //在一行內建立colCount個儲存格
                            cells.Add(rowMin + r, colMin + c, "Fld" + (c + 1)).Font.Bold = true;
                        }
                    }
                    else
                    {
                        for (int c = 0; c < colCount; c++)
                        {
                            int val = r + c;
                            Cell cell = cells.Add(rowMin + r, colMin + c, val);
                            if (val % 2 != 0)
                            {
                                cell.Font.FontName = "Times New Roman";
                                cell.Font.Underline = UnderlineTypes.Double;//給文字下方加一個雙底線
                                cell.Rotation = 45;//儲存格文字旋轉45度
                            }
                        }
                    }
                }
            }

,一個Excel檔案包含五個表格

二 XML格式

office2003或以上版本才支援xml格式,這樣可以直接通過一些模板將內容轉化為Office可以識別的xml,限於時間,下次再與大家討論:-)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.