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 、在前台页面框架中直接加在,代码:

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

运行效果:可随意控制Excel在页面的显示位置。

2、 Excel 显示格式控制。

A、 单元格格式设置,默认为常规类型; Excel

Excel. Range r = 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:ss AM/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. 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,

// 点状线.

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. 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);

// 选中有数据的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();

// 不单独显示Excel,最后在IE中显示

myExcel.Visible = false;

// 第一行为报表的标题

myExcel.Cells[1, 1] = " 用模板导出的报表" ;

// 逐行写入数据,数组中第一行为报表的列标题

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

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

// 在当前目录下指定一个临时文件

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

if ( File .Exists(FileName))

File.Delete(FileName);

myExcel.Save(FileName);

mySheet.Cells.Clear() ;

// 设置不出现保存提示框

myBook.Saved = true;

myExcel.Application.Workbooks.Close();

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