当前位置:首页 > Excel与OWC做报表总结

Excel与OWC做报表总结

点击次数:1462  更新日期:2010-12-30
\n

1. 技术要点


\n

1.1. Excel试验:


\n

A. Excel嵌入网页的方法。


\n

1. 在后台用流的方式返回给前台页面展现;


\n

2. 在后台讲Excel格式数据定好保存到本地,在前台页面用html标签加载展示;


\n

B. Excel显示格式的控制。


\n

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


\n

2. 上下标格式的控制;


\n

3. 单元格水平垂直对齐方式;


\n

4. 单元格边框设置;


\n

5. 单元格合并;


\n

6. 字体设置,包括字体的颜色、大小、粗体、斜体、字体、下划线等;


\n

7. 冻结行列;


\n

8. 公式栏的显示与隐藏;


\n

9. 行标题和列表题的显示与隐藏;


\n

10. 网格的显示与隐藏;


\n

11. 水平滚动条和垂直滚动条的显示与隐藏;


\n

12. Sheet页的显示与隐藏;


\n

C. 向Excel中填充数据,并导出为临时文件。


\n

1.2. OWC试验:


\n

A. OWC组件在web页面展示的方法。


\n

1. 将OWC中Sheet导出为本地Excel文件,再将导出的文件呈现到Web页面;


\n

2. 后台把配置好的Sheet直接以流文件方式返回到Web页面展现;


\n

3. 用html标签将OWC展现在Web页面,加载后台程序导出到本地的文件(xml、html、csv格式)来显示数据;


\n

B. 在OWC中的电子表格类中填充数据的方法。


\n

C. OWC中显示数据格式的控制。


\n

1. 电子表格外观控制:工具栏的显示、Office图标的显示、列标题的显示、行标题的显示、水平滚动条的显示、垂直滚动条的显示、网格的显示、网格颜色设置;


\n

2. 单元格水平对齐方式;


\n

3. 单元格垂直对齐方式;


\n

4. 单元格合并;


\n

5. 单元格字体设置:字体、字形、字号、字体颜色、字体加粗、下划线(多种样式);


\n

6. 单元格边框设置;


\n

2. 主要模块


\n

2.1. Excel


\n

1、Excel嵌入网页的方法:


\n

A、将后台定制好的Excel文件在后台用流的方式返回给前台页面展现,代码如下


\n

Response.ClearContent();


\n

Response.ClearHeaders();


\n

Response.ContentType = “application/vnd.ms-excel”;


\n

Response.AddHeader(“Content-Disposition”, “inline;filename=’我的文件’”);


\n

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


\n

Response.Flush();


\n

Response.Close();


\n

运行效果:整个页面都充满了Excel。


\n

B、在前台页面框架中直接加在,代码:


\n

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


\n

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


\n

2、 Excel显示格式控制。


\n

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


\n

代码:


\n

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


\n

//设置单元格格式为文本类型,文本类型可设置上下标


\n

r.NumberFormat = “@”;


\n

//设置单元格格式为数值类型,小数点后2位


\n

r.NumberForma = “0.00_ “


\n

//设置单元格格式为货币类型,小数点后2位


\n

r.NumberForma = “¥#,##0.00;¥-#,##0.00″


\n

//设置单元格格式为会计专用类型,小数点后2位


\n

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


\n

//设置单元格格式为日期类型


\n

r.NumberForma = “yyyy-m-d”


\n

//设置单元格格式为时间类型


\n

r.NumberForma = “[-F400]h:mm:ss AM/PM”


\n

//设置单元格格式为百分比类型,小数点后2位


\n

r.NumberForma = “0.00%”


\n

//设置单元格格式为分数类型,分母为一位数


\n

r.NumberForma = “# ?/?”


\n

//设置单元格格式为科学技术类型,小数位数为2


\n

r.NumberForma = “0.00E+00″


\n

//设置单元格格式为特殊类型


\n

r.NumberForma = “000000″


\n

B、上下标格式的控制;


\n

代码:


\n

//控制输出样式为下标


\n

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;


\n

//控制输出样式为上标


\n

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;


\n

C、 单元格水平垂直对齐方式;


\n

代码:


\n

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


\n

r.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;


\n

r.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;


\n

上面代码中,枚举XLHAlign的值还有:


\n

// 右对齐


\n

xlHAlignRight,


\n

// 左对齐.


\n

xlHAlignLeft,


\n

// 两端对齐.


\n

xlHAlignJustify,


\n

// 分散对齐(缩进)


\n

xlHAlignDistributed,


\n

// 居中对齐


\n

xlHAlignCenter,


\n

// 依照数据类型对齐,常规


\n

xlHAlignGeneral,


\n

// 填充


\n

xlHAlignFill,


\n

// 跨列对齐.


\n

xlHAlignCenterAcrossSelection = 7,


\n

枚举XLVAlign的值还有:


\n

// 靠上对齐


\n

xlVAlignTop,


\n

//两端对齐.


\n

xlVAlignJustify = -4130,


\n

//分散对齐.


\n

xlVAlignDistributed,


\n

//居中对齐.


\n

xlVAlignCenter,


\n

//靠下对齐.


\n

xlVAlignBottom = -4107,


\n

D、 单元格边框设置;


\n

代码:


\n

//设置边框


\n

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


\n

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


\n

枚举XlLineStyle中还有下面线形:


\n

//没边框线


\n

xlLineStyleNone,


\n

//双线.


\n

xlDouble,


\n

//点状线.


\n

xlDot,


\n

//虚线.


\n

xlDash,


\n

//连续线.


\n

xlContinuous,


\n

//点线交互型


\n

xlDashDot,


\n

//两点一线型


\n

xlDashDotDot,


\n

//斜线.


\n

xlSlantDashDot,


\n

E、单元格合并


\n

用get_Range方法获取要合并的单元格,再设置MergeCells属性的值进行合并。


\n

代码:


\n

//合并单元格


\n

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


\n

F、字体设置


\n

先用get_Range方法选中要设置字体的某个单元格或者或者直接用get_Characters方法直接选中要设置的字符进行设置;


\n

代码:


\n

//加粗字体


\n

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


\n

//设置字体大小


\n

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


\n

//设置字体的颜色


\n

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


\n

//设置字体


\n

myExcel.get_Range(myExcel.Cells[1, 1], myExcel.Cells[1, 1]).Font.Name = “隶书”;


\n

//设置成斜体


\n

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


\n

//设置下划线


\n

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


\n

G、冻结行列


\n

用get_Range方法获取单元格,再设置其Freezepanes属性为true,就把该单元格右上方的行和列都冻结了,取消冻结将其值设为false即可。


\n

//冻结行列


\n

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


\n

myExcel.ActiveWindow.FreezePanes = true;


\n

H、 公式输入栏的隐藏


\n

//设置是否显示Excel公式输入栏,默认为true


\n

myExcel.DisplayFormulaBar = false;


\n

I、 列标题与行标题的隐藏


\n

//设置是否显示行和列的标题,默认为true


\n

myExcel.ActiveWindow.DisplayHeadings = false;


\n

J、网格的隐藏


\n

//设置是否显示网格,默认为true


\n

myExcel.ActiveWindow.DisplayGridlines = false;


\n

K、 水平、垂直滚动条的隐藏


\n

//设置是否显示水平滚动条


\n

myExcel.ActiveWindow.DisplayHorizontalScrollBar = false;


\n

//设置是否显示垂直滚动条


\n

myExcel.ActiveWindow.DisplayVerticalScrollBar = false;


\n

L、Sheet页的隐藏


\n

//设置是否显示Sheet页


\n

myExcel.ActiveWindow.DisplayWorkbookTabs = false;


\n

经过格式设置以后,展示在页面上的效果如下图:

\n

\n