Excel嵌入WebForm.docx
- 文档编号:7751667
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:20
- 大小:84.85KB
Excel嵌入WebForm.docx
《Excel嵌入WebForm.docx》由会员分享,可在线阅读,更多相关《Excel嵌入WebForm.docx(20页珍藏版)》请在冰豆网上搜索。
Excel嵌入WebForm
1. 技術要點
1.1. Excel試驗:
A. Excel嵌入網頁的方法。
1. 在後臺用流的方式返回給前臺頁面展現;
2. 在後臺講Excel格式資料定好保存到本地,在前臺頁面用html標籤載入展示;
B. Excel顯示格式的控制。
1. Excel單元格格式設置,默認為常規類型;
2. 上下標格式的控制;
3. 單格水準垂直對齊方式;
4. 單格邊框設置;
5. 單格合併;
6. 字體設置,包括字體的顏色、大小、粗體、斜體、字體、下劃線等;
7. 凍結行列;
8. 公式欄的顯示與隱藏;
9. 行標題和列表題的顯示與隱藏;
10. 網格的顯示與隱藏;
11. 水準捲軸和垂直捲軸的顯示與隱藏;
12. Sheet頁的顯示與隱藏;
C. 向Excel中填充數據,並導出為暫存檔案。
1.2. OWC試驗:
A. OWC元件在web頁面展示的方法。
1. 將OWC中Sheet導出為本地Excel檔,再將導出的檔呈現到Web頁面;
2. 後臺把配置好的Sheet直接以流檔方式返回到Web頁面展現;
3. 用html標籤將OWC展現在Web頁面,載入後臺程式導出到本地的檔(xml、html、csv格式)來顯示資料;
B. 在OWC中的試算表類中填充資料的方法。
C. OWC中顯示資料格式的控制。
1. 試算表外觀控制:
工具欄的顯示、Office圖示的顯示、列標題的顯示、行標題的顯示、水準捲軸的顯示、垂直捲軸的顯示、網格的顯示、網格顏色設置;
2. 單格水準對齊方式;
3. 單格垂直對齊方式;
4. 單格合併;
5. 單格字體設置:
字體、字形、字型大小、字體顏色、字體加粗、下劃線(多種樣式);
6. 單格邊框設置;
2. 主要模組
2.1. Excel
1、Excel嵌入網頁的方法:
A、將後臺定制好的Excel檔在後臺用流的方式返回給前臺頁面展現,代碼如下:
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();
運行效果:
整個頁面都充滿了Excel。
B、在前臺頁面框架中直接加在,代碼:
運行效果:
可隨意控制Excel在頁面的顯示位置。
2、 Excel顯示格式控制。
A、單元格格式設置,默認為常規類型;Excel
代碼:
Excel.Ranger=mySheet.get_Range(mySheet.Cells[1,1],mySheet.Cells[DT.Rows.Count+2,DT.Columns.Count-3]);
//設置單元格格式為文本類型,文本類型可設置上下標
r.NumberFormat="@";
//設置單元格格式為數值類型,小數點後2位
r.NumberForma="0.00_"
//設置單元格格式為貨幣類型,小數點後2位
r.NumberForma="¥#,##0.00;¥-#,##0.00"
//設置單元格格式為會計專用類型,小數點後2位
r.NumberForma=_"_¥*#,##0.00_;_¥*-#,##0.00_;_¥*""-""?
?
_;_@_"
//設置單元格格式為日期類型
r.NumberForma="yyyy-m-d"
//設置單元格格式為時間類型
r.NumberForma="[$-F400]h:
mm:
ssAM/PM"
//設置單元格格式為百分比類型,小數點後2位
r.NumberForma="0.00%"
//設置單元格格式為分數類型,分母為一位數
r.NumberForma="#?
/?
"
//設置單元格格式為科學技術類型,小數位數為2
r.NumberForma="0.00E+00"
//設置單元格格式為特殊類型
r.NumberForma="000000"
B、上下標格式的控制;
代碼:
//控制輸出樣式為下標
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;
//控制輸出樣式為上標
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,
//分散對齊(縮進)
xlHAlignDistributed,
//居中對齊
xlHAlignCenter,
//依照資料類型對齊,常規
xlHAlignGeneral,
//填充
xlHAlignFill,
//跨列對齊.
xlHAlignCenterAcrossSelection=7,
枚舉XLVAlign的值還有:
//靠上對齊
xlVAlignTop,
//兩端對齊.
xlVAlignJustify=-4130,
//分散對齊.
xlVAlignDistributed,
//居中對齊.
xlVAlignCenter,
//靠下對齊.
xlVAlignBottom=-4107,
D、 單格邊框設置;
代碼:
//設置邊框
Excel.Ranger=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,
//點狀線.
xlDot,
//虛線.
xlDash,
//連續線.
xlContinuous,
//點線交互型
xlDashDot,
//兩點一線型
xlDashDotDot,
//斜線.
xlSlantDashDot,
E、單格合併
用get_Range方法獲取要合併的單格,再設置MergeCells屬性的值進行合併。
代碼:
//合併單格
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,4]).MergeCells=true;
F、字體設置
先用get_Range方法選中要設置字體的某個單格或者或者直接用get_Characters方法直接選中要設置的字元進行設置;
代碼:
//加粗字體
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.Bold=true;
//設置字體大小
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.Size=16;
//設置字體的顏色
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.ColorIndex=3;
//設置字體
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.Name="隸書";
//設置成斜體
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.Italic=true;
//設置下劃線
myExcel.get_Range(myExcel.Cells[1,1],myExcel.Cells[1,1]).Font.Underline=true;
G、凍結行列
用get_Range方法獲取單格,再設置其Freezepanes屬性為true,就把該單格右上方的行和列都凍結了,取消凍結將其值設為false即可。
//凍結行列
myExcel.get_Range(myExcel.Cells[3,1],myExcel.Cells[3,1]).Activate();
myExcel.ActiveWindow.FreezePanes=true;
H、 公式輸入欄的隱藏
//設置是否顯示Excel公式輸入欄,默認為true
myExcel.DisplayFormulaBar=false;
I、 列標題與行標題的隱藏
//設置是否顯示行和列的標題,默認為true
myExcel.ActiveWindow.DisplayHeadings=false;
J、網格的隱藏
//設置是否顯示網格,默認為true
myExcel.ActiveWindow.DisplayGridlines=false;
K、 水準、垂直捲軸的隱藏
//設置是否顯示水準捲軸
myExcel.ActiveWindow.DisplayHorizontalScrollBar=false;
//設置是否顯示垂直捲軸
myExcel.ActiveWindow.DisplayVerticalScrollBar=false;
L、頁的隱藏Sheet
//設置是否顯示Sheet頁
myExcel.ActiveWindow.DisplayWorkbookTabs=false;
經過格式設置以後,展示在頁面上的效果如下圖:
3、 向Excel中填充資料,並保存為暫存檔案
代碼:
Excel.ApplicationmyExcel=newExcel.Application();
//打開範本檔
myExcel.Application.Workbooks.Open(mode.FullName,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
//選中有數據的Cells
Excel.WorkbookmyBook=myExcel.Workbooks[1];
Excel.WorksheetmySheet=(Excel.Worksheet)myBook.Worksheets[1];
Excel.Ranger=mySheet.get_Range(mySheet.Cells[1,1],mySheet.Cells[DT.Rows.Count+2,DT.Columns.Count-3]);
r.Select();
//不單獨顯示Excel,最後在IE中顯示
myExcel.Visible=false;
//第一行為報表的標題
myExcel.Cells[1,1]="用範本導出的報表";
//逐行寫入資料,陣列中第一行為報表的列標題
for(inti=0;i
{
myExcel.Cells[2,1+i]=DT.Columns[i].Caption;;
}
//在當前目錄下指定一個暫存檔案
stringFileName=Server.MapPath("~")+"""Temp.xls";
if(File.Exists(FileName))
{
File.Delete(FileName);
}
myExcel.Save(FileName);
mySheet.Cells.Clear();
//設置不出現保存提示框
myBook.Saved=true;
myExcel.Application.Workbooks.Close();
2.2. OWC組件
1、 OWC組建在Web頁面的展現方法;
A、將OWC中Sheet導出為本地Excel檔,再將導出的檔呈現到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頁面展現;
代碼如下:
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標籤將OWC展現在Web頁面,載入後臺程式導出到本地的檔(xml、html、csv格式)來顯示資料;
代碼如下:
0002E559-0000-0000-C000-000000000046"width="600"id="Spreadsheet1"height="200"> 2、 為OWC中的SpreadSheet類中填充資料的方法: 獲取Sheet的Cell或者ActiveCell,直接給裏面填充資料,代碼如下: OWC11.SpreadsheetClassSheet=newOWC11.SpreadsheetClass(); //第一行為報表的標題 Sheet.ActiveCell[1,1]="用範本導出的報表"; //逐行寫入資料,陣列中第一行為報表的列標題 for(inti=0;i { Sheet.Cells[2,1+i]=DT.Columns[i].Caption;; } //為報表填充資料並設置顯示上下標格式 for(inti=0;i { for(intj=0;j { Sheet.ActiveCell[3+i,1+j]=DT.Rows[i][j]; } stringa=DT.Rows[i][DT.Columns.Count-4].ToString(); stringb=DT.Rows[i][DT.Columns.Count-3].ToString(); stringc=DT.Rows[i][DT.Columns.Count-2].ToString(); Sheet.ActiveCell[3+i,DT.Columns.Count-3]=a+b+c; Sheet.Columns.AutoFit(); } 3、 OWC中資料顯示格式的控制: A、 試算表外觀控制: 是否顯示工具欄預設值為true Sheet.DisplayToolbar=false; 取消顯示Office圖示 Sheet.DisplayOfficeLogo=false; 是否顯示列標題,默認是true Sheet.DisplayColumnHeadings=false; 是否顯示行標題,默認是true Sheet.DisplayRowHeadings=false; 是否顯示水準捲軸,默認為true Sheet.DisplayHorizontalScrollBar=false; 是否顯示垂直捲軸,默認為true Sheet.DisplayVerticalScrollBar=false; 試算表是否顯示網格,默認為true Sheet.Displ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 嵌入 WebForm