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();
"application/vnd.ms-excel";
"Content-Disposition", "inline;filename='我的文件'");
        Response.WriteFile(FileName);//FileName为Excel文件所在地址
        Response.Flush();
        Response.Close();

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

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

<iframeid="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、上下标格式的控制;

代码:

//控制输出样式为下标
true;
//控制输出样式为上标
true;

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

代码:

//单元格水平,垂直居中
XlHAlign.xlHAlignCenter;
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属性的值进行合并。

代码:

//合并单元格
true;

F、字体设置

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

代码:

//加粗字体
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;
//设置字体
"隶书";
//设置成斜体
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();
true;

H、      公式输入栏的隐藏

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

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

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

J、网格的隐藏

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

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

//设置是否显示水平滚动条
false;
//设置是否显示垂直滚动条
false;

L、页的隐藏Sheet

//设置是否显示Sheet页
false;

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

 

3、        向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
Workbook myBook = myExcel.Workbooks[1];
Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1];
Range r = mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[DT.Rows.Count + 2, DT.Columns.Count - 3]);
        r.Select();
//不单独显示Excel,最后在IE中显示
false;
//第一行为报表的标题
"用模板导出的报表";
//逐行写入数据,数组中第一行为报表的列标题
for (int
        {
            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() ;
//设置不出现保存提示框
true;
      myExcel.Application.Workbooks.Close();