小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Excel嵌入網(wǎng)頁

 mastereye 2018-09-06

Excel嵌入網(wǎng)頁(一)

1.            技術(shù)要點(diǎn)

1.1.    Excel試驗(yàn):

A.       Excel嵌入網(wǎng)頁的方法。

1.       在后臺用流的方式返回給前臺頁面展現(xiàn);

2.       在后臺講Excel格式數(shù)據(jù)定好保存到本地,在前臺頁面用html標(biāo)簽加載展示;

B.       Excel顯示格式的控制。

1.       Excel單元格格式設(shè)置,默認(rèn)為常規(guī)類型;

2.       上下標(biāo)格式的控制;

3.       單元格水平垂直對齊方式;

4.       單元格邊框設(shè)置;

5.       單元格合并;

6.       字體設(shè)置,包括字體的顏色、大小、粗體、斜體、字體、下劃線等;

7.       凍結(jié)行列;

8.       公式欄的顯示與隱藏;

9.       行標(biāo)題和列表題的顯示與隱藏;

10.    網(wǎng)格的顯示與隱藏;

11.    水平滾動(dòng)條和垂直滾動(dòng)條的顯示與隱藏;

12.    Sheet頁的顯示與隱藏;

C.       向Excel中填充數(shù)據(jù),并導(dǎo)出為臨時(shí)文件。

1.2.    OWC試驗(yàn):

A.       OWC組件在web頁面展示的方法。

1.       將OWC中Sheet導(dǎo)出為本地Excel文件,再將導(dǎo)出的文件呈現(xiàn)到Web頁面;

2.       后臺把配置好的Sheet直接以流文件方式返回到Web頁面展現(xiàn);

3.       用html標(biāo)簽將OWC展現(xiàn)在Web頁面,加載后臺程序?qū)С龅奖镜氐奈募▁ml、html、csv格式)來顯示數(shù)據(jù);

B.       在OWC中的電子表格類中填充數(shù)據(jù)的方法。

C.       OWC中顯示數(shù)據(jù)格式的控制。

1.       電子表格外觀控制:工具欄的顯示、Office圖標(biāo)的顯示、列標(biāo)題的顯示、行標(biāo)題的顯示、水平滾動(dòng)條的顯示、垂直滾動(dòng)條的顯示、網(wǎng)格的顯示、網(wǎng)格顏色設(shè)置;

2.       單元格水平對齊方式;

3.       單元格垂直對齊方式;

4.       單元格合并;

5.       單元格字體設(shè)置:字體、字形、字號、字體顏色、字體加粗、下劃線(多種樣式);

6.       單元格邊框設(shè)置;

2.            主要模塊

2.1.    Excel

1、Excel嵌入網(wǎng)頁的方法:

       A、將后臺定制好的Excel文件在后臺用流的方式返回給前臺頁面展現(xiàn),代碼如下

Response.ClearContent();

        Response.ClearHeaders();

        Response.ContentType = "application/vnd.ms-excel";

        Response.AddHeader("Content-Disposition", "inline;filename='我的文件'");

        Response.WriteFile(FileName);//FileName為Excel文件所在地址

        Response.Flush();

        Response.Close();

        運(yùn)行效果:整個(gè)頁面都充滿了Excel。

      B、在前臺頁面框架中直接加在,代碼:

      <iframe id="myExcelHtml" src ="Nomarl.xls" width = "600" height ="300" align ="middle"> </iframe>

       運(yùn)行效果:可隨意控制Excel在頁面的顯示位置。

2、 Excel顯示格式控制。

A、單元格格式設(shè)置,默認(rèn)為常規(guī)類型;Excel

代碼:

Excel.Range r = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]);

              //設(shè)置單元格格式為文本類型,文本類型可設(shè)置上下標(biāo)

r.NumberFormat = "@";

//設(shè)置單元格格式為數(shù)值類型,小數(shù)點(diǎn)后2位

r.NumberForma = "0.00_ "

    //設(shè)置單元格格式為貨幣類型,小數(shù)點(diǎn)后2位

 r.NumberForma = "¥#,##0.00;¥-#,##0.00"

    //設(shè)置單元格格式為會計(jì)專用類型,小數(shù)點(diǎn)后2位

 r.NumberForma = _"_ ¥* #,##0.00_ ;_ ¥* -#,##0.00_ ;_ ¥* ""-""??_ ;_ @_ "

    //設(shè)置單元格格式為日期類型

 r.NumberForma = "yyyy-m-d"

    //設(shè)置單元格格式為時(shí)間類型

 r.NumberForma = "[$-F400]h:mm:ss AM/PM"

    //設(shè)置單元格格式為百分比類型,小數(shù)點(diǎn)后2位

 r.NumberForma = "0.00%"

    //設(shè)置單元格格式為分?jǐn)?shù)類型,分母為一位數(shù)

 r.NumberForma = "# ?/?"

    //設(shè)置單元格格式為科學(xué)技術(shù)類型,小數(shù)位數(shù)為2

 r.NumberForma = "0.00E+00"

    //設(shè)置單元格格式為特殊類型

     r.NumberForma = "000000"

B、上下標(biāo)格式的控制;

代碼:

//控制輸出樣式為下標(biāo)

            mySheet.get_Range(mySheet.Cells[i + 3, DT.Columns.Count - 3], mySheet.Cells[i + 3, DT.Columns.Count - 3]).get_Characters(a.Length + 1, b.Length).Font.Subscript = true;

            //控制輸出樣式為上標(biāo)

 mySheet.get_Range(mySheet.Cells[i + 3, DT.Columns.Count - 3], mySheet.Cells[i + 3, DT.Columns.Count - 3]).get_Characters(a.Length + b.Length + 1, c.Length).Font.Superscript = true;

C、              單元格水平垂直對齊方式;

代碼:

//單元格水平,垂直居中

           r.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;

     r.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;

     上面代碼中,枚舉XLHAlign的值還有:

        // 右對齊

        xlHAlignRight,

        // 左對齊.

        xlHAlignLeft,

        // 兩端對齊.

        xlHAlignJustify,

        // 分散對齊(縮進(jìn))

        xlHAlignDistributed,

        // 居中對齊

        xlHAlignCenter,

        // 依照數(shù)據(jù)類型對齊,常規(guī)

        xlHAlignGeneral,

        // 填充

        xlHAlignFill,

        // 跨列對齊.

         xlHAlignCenterAcrossSelection = 7,

      枚舉XLVAlign的值還有:

            // 靠上對齊

          xlVAlignTop,

          //兩端對齊.

          xlVAlignJustify = -4130,

          //分散對齊.

          xlVAlignDistributed,

          //居中對齊.

          xlVAlignCenter,

          //靠下對齊.

 xlVAlignBottom = -4107,

D、              單元格邊框設(shè)置;

代碼:

//設(shè)置邊框

 Excel.Range r = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]);

r.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;

              枚舉XlLineStyle中還有下面線形:

                       //沒邊框線

                   xlLineStyleNone,

                   //雙線.

                   xlDouble,

                   //點(diǎn)狀線.

                   xlDot,

                   //虛線.

                   xlDash,

                   //連續(xù)線.

                   xlContinuous,

                   //點(diǎn)線交互型

                   xlDashDot,

                   //兩點(diǎn)一線型

                   xlDashDotDot,

                   //斜線.

                   xlSlantDashDot,

E、單元格合并

用get_Range方法獲取要合并的單元格,再設(shè)置MergeCells屬性的值進(jìn)行合并。

代碼:

              //合并單元格

       myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1,4]).MergeCells = true;

F、字體設(shè)置

先用get_Range方法選中要設(shè)置字體的某個(gè)單元格或者或者直接用get_Characters方法直接選中要設(shè)置的字符進(jìn)行設(shè)置;

代碼:

//加粗字體

        myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1, 1]).Font.Bold = true;

        //設(shè)置字體大小

        myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.Size = 16;

        //設(shè)置字體的顏色

        myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1, 1]).Font.ColorIndex = 3;

        //設(shè)置字體

        myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1, 1]).Font.Name = "隸書";

        //設(shè)置成斜體

        myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1, 1]).Font.Italic = true;

        //設(shè)置下劃線

myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1, 1]).Font.Underline = true;

G、凍結(jié)行列

用get_Range方法獲取單元格,再設(shè)置其Freezepanes屬性為true,就把該單元格右上方的行和列都凍結(jié)了,取消凍結(jié)將其值設(shè)為false即可。

//凍結(jié)行列

                   myExcel.get_Range(myExcel.Cells[3,1],myExcel.Cells[3,1]).Activate();

         myExcel.ActiveWindow.FreezePanes = true;

H、      公式輸入欄的隱藏

//設(shè)置是否顯示Excel公式輸入欄,默認(rèn)為true

                   myExcel.DisplayFormulaBar = false;

I、 列標(biāo)題與行標(biāo)題的隱藏

                   //設(shè)置是否顯示行和列的標(biāo)題,默認(rèn)為true

                   myExcel.ActiveWindow.DisplayHeadings = false;

J、網(wǎng)格的隱藏

                  //設(shè)置是否顯示網(wǎng)格,默認(rèn)為true

                  myExcel.ActiveWindow.DisplayGridlines = false;

K、  水平、垂直滾動(dòng)條的隱藏

                 //設(shè)置是否顯示水平滾動(dòng)條

                 myExcel.ActiveWindow.DisplayHorizontalScrollBar = false;

                 //設(shè)置是否顯示垂直滾動(dòng)條

                 myExcel.ActiveWindow.DisplayVerticalScrollBar = false;

L、頁的隱藏Sheet

                //設(shè)置是否顯示Sheet頁

                myExcel.ActiveWindow.DisplayWorkbookTabs = false;

       經(jīng)過格式設(shè)置以后,展示在頁面上的效果如下圖:

 

3、        向Excel中填充數(shù)據(jù),并保存為臨時(shí)文件

      代碼:

        Excel.Application myExcel = new Excel.Application();

        //打開模板文件

        myExcel.Application.Workbooks.Open(mode.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);

        //選中有數(shù)據(jù)的Cells

        Excel.Workbook myBook = myExcel.Workbooks[1];

        Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1];

        Excel.Range r = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]);

        r.Select();

        //不單獨(dú)顯示Excel,最后在IE中顯示

        myExcel.Visible = false;

        //第一行為報(bào)表的標(biāo)題

        myExcel.Cells[1, 1] = "用模板導(dǎo)出的報(bào)表";

        //逐行寫入數(shù)據(jù),數(shù)組中第一行為報(bào)表的列標(biāo)題

        for (int i = 0; i < DT.Columns.Count - 3; i++)

        {

            myExcel.Cells[2, 1 + i] = DT.Columns[i].Caption; ;

       }

//在當(dāng)前目錄下指定一個(gè)臨時(shí)文件

        string FileName = Server.MapPath("~") + """Temp.xls";

        if (File.Exists(FileName))

        {

            File.Delete(FileName);

        }

        myExcel.Save(FileName);

        mySheet.Cells.Clear() ;

        //設(shè)置不出現(xiàn)保存提示框

        myBook.Saved = true;

      myExcel.Application.Workbooks.Close();

Excel嵌入網(wǎng)頁(二)

2.2.    OWC組件

1、        OWC組建在Web頁面的展現(xiàn)方法;

A、將OWC中Sheet導(dǎo)出為本地Excel文件,再將導(dǎo)出的文件呈現(xiàn)到Web頁面;

代碼如下:

        Sheet.Export(FileName, OWC11.SheetExportActionEnum.ssExportActionNone, OWC11.SheetExportFormat.ssExportHTML);//Sheet為OWC11中SpreadsheetClass類的對象

        Response.ClearContent();

        Response.ClearHeaders();

        Response.ContentType = "application/vnd.ms-excel";

        Response.AddHeader("Content-Disposition", "inline;filename='我的文件'");

        Response.WriteFile(FileName);

        Response.Flush();

Response.Close();

B、后臺把配置好的Sheet直接以文件方法返回到Web頁面展現(xiàn);

代碼如下:

Response.Clear();

         Response.Buffer = true;

         Response.ContentEncoding = System.Text.Encoding.Default;

         //Response.Charset = "utf-8";

         Response.ContentType = "application/vnd.ms-excel";

         Response.Write(Sheet.HTMLData);

         this.EnableViewState = false;

Response.End();

C、用html標(biāo)簽將OWC展現(xiàn)在Web頁面,加載后臺程序?qū)С龅奖镜氐奈募▁ml、html、csv格式)來顯示數(shù)據(jù);

代碼如下:

<object classid="clsid:0002E559-0000-0000-C000-000000000046" width="600" id="Spreadsheet1" height="200">

                  <param name="DataType" value="HTMLURL"/>

                  <param name="HTMLURL" value="<%=FileName%>"/>

</object>

2、        為OWC中的SpreadSheet類中填充數(shù)據(jù)的方法:

     獲取Sheet的Cell或者ActiveCell,直接給里面填充數(shù)據(jù),代碼如下:

OWC11.SpreadsheetClass Sheet = new OWC11.SpreadsheetClass();

//第一行為報(bào)表的標(biāo)題

        Sheet.ActiveCell[1, 1] = "用模板導(dǎo)出的報(bào)表";

        //逐行寫入數(shù)據(jù),數(shù)組中第一行為報(bào)表的列標(biāo)題

        for (int i = 0; i < DT.Columns.Count - 3; i++)

        {

            Sheet.Cells[2, 1 + i] = DT.Columns[i].Caption; ;

        }

       

        //為報(bào)表填充數(shù)據(jù)并設(shè)置顯示上下標(biāo)格式

        for (int i = 0; i < DT.Rows.Count; i++)

        {

            for (int j = 0; j < DT.Columns.Count - 4; j++)

            {

                Sheet.ActiveCell[3 + i, 1 + j] = DT.Rows[i][j];

            }

            string a = DT.Rows[i][DT.Columns.Count - 4].ToString();

            string b = DT.Rows[i][DT.Columns.Count - 3].ToString();

            string c = DT.Rows[i][DT.Columns.Count - 2].ToString();

            Sheet.ActiveCell[3 + i,DT.Columns.Count - 3] = a + b + c;

            Sheet.Columns.AutoFit();

    }

3、        OWC中數(shù)據(jù)顯示格式的控制:

A、 電子表格外觀控制:

是否顯示工具欄默認(rèn)值為 true

        Sheet.DisplayToolbar = false;

        取消顯示Office圖標(biāo)

        Sheet.DisplayOfficeLogo = false;

        是否顯示列標(biāo)題,默認(rèn)是true

        Sheet.DisplayColumnHeadings = false;

        是否顯示行標(biāo)題,默認(rèn)是true

        Sheet.DisplayRowHeadings = false;

        是否顯示水平滾動(dòng)條,默認(rèn)為true

        Sheet.DisplayHorizontalScrollBar = false;

        是否顯示垂直滾動(dòng)條,默認(rèn)為true

        Sheet.DisplayVerticalScrollBar = false;

        電子表格是否顯示網(wǎng)格,默認(rèn)為true

        Sheet.DisplayGridlines = false;

        設(shè)置行的顏色

        for (int i = 1; i < DT.Columns.Count - 2; i += 2)

        {

            Sheet.get_Range(Sheet.Rows.Cells[i, 1], Sheet.Rows.Cells[i, DT.Columns.Count - 3]).Interior.set_ColorIndex(2);

}

       做了上面的設(shè)置,效果如下圖:

 

B、 單元格水平對齊

用Get_Range方法獲取要設(shè)置的單元格,用set_HorizontalAlignment方法設(shè)置對齊方式;

代碼如下:

//單元格水平居中

Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]).set_HorizontalAlignment(OWC11.XlHAlign.xlHAlignCenter);

枚舉XLHAlign的值分別是:

   //右對齊

xlHAlignRight,

//左對齊:

        xlHAlignLeft,

        //居中對齊:

        xlHAlignCenter,

        //常規(guī)

        xlHAlignGeneral1,

        //填充對齊:

xlHAlignFill

C、 單元格垂直對齊

用Get_Range方法獲取要設(shè)置的單元格,用set_VerticalAlignment方法設(shè)置對齊方式;

代碼如下:

//單元格垂直居中

Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]).set_VerticalAlignment(OWC11.XlVAlign.xlVAlignCenter);

枚舉XLHAlign的值分別是:

     // 靠上對齊

xlVAlignTop,

// 居中對齊

              xlVAlignCenter,

              // 靠下對齊

      xlVAlignBottom

D、 單元格合并;

用get_Range方法先獲取要合并的單元格,再用set_MergeCells方法進(jìn)行合并。

代碼如下:

//標(biāo)題行合并單元格

Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, DT.Columns.Count - 3]).set_MergeCells(true);

E、 字體設(shè)置;

用get_Range方法先獲取要合并的單元格,設(shè)置該單元格字體:字體、字形、字號、字體顏色、字體加粗、帶下劃線(下劃線有多種樣式)等。

代碼如下:

//標(biāo)題行加粗字體

        Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Bold(true);

        //設(shè)置字體大小  

        Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Size(16);

        //設(shè)置字體顏色

        Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_ColorIndex(3);

        //設(shè)置字體

        Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Name("隸書");

        //設(shè)置字體為斜體

        Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Italic(true);

        //設(shè)置字體下劃線

 Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Underline(OWC11.XlUnderlineStyle.xlUnderlineStyleDouble);

枚舉XLUnderlineStyle的值分別為:

xlUnderlineStyleNone,

        xlUnderlineStyleDouble,

        xlUnderlineStyleSingle,

        xlUnderlineStyleSingleAccounting,

xlUnderlineStyleDoubleAccounting,

F、 添加邊框

       用get_Range方法先獲取要添加邊框的單元格,用Borders.set_LineStyle方法設(shè)置邊框的類型即可。

      代碼如下:

        //畫邊線

        Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]).Borders.set_LineStyle(OWC11.XlLineStyle.xlContinuous);

        邊框類型有一下幾種:

        xlLineStyleNone,

        xlDot,

        xlDash,

        xlContinuous,

        xlDashDot,

        xlDashDotDot,

運(yùn)行效果如下:

 

3.2.    OWC

服務(wù)端和客戶端都必須安裝 Microsoft Office Web Components,它可隨 Office 2003 一起安裝,或者,如果用戶的公司具有 Office 2003 站點(diǎn)許可證,則可以通過公司的 Intranet 下載 Office Web 組件,用戶還必須使用 Microsoft Internet Explorer 5.01 (Service Pack 2) 或更高版本。

 

 

 

 

 

我走啊走 走啊走......

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多