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格式)来显示数据;
代码如下:
<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类中填充数据的方法:
获取Sheet的Cell或者ActiveCell,直接给里面填充数据,代码如下:
OWC11.SpreadsheetClass Sheet = new OWC11.SpreadsheetClass();
//第一行为报表的标题
Sheet.ActiveCell[1, 1] = "用模板导出的报表";
//逐行写入数据,数组中第一行为报表的列标题
for (int i = 0; i < DT.Columns.Count - 3; i++)
{
Sheet.Cells[2, 1 + i] = DT.Columns[i].Caption; ;
}
//为报表填充数据并设置显示上下标格式
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中数据显示格式的控制:
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.DisplayGridlines = false;
设置行的颜色
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);
}
做了上面的设置,效果如下图:
B、 单元格水平对齐
用Get_Range方法获取要设置的单元格,用set_HorizontalAlignment方法设置对齐方式;
代码如下:
//单元格水平居中
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,
//常规
xlHAlignGeneral1,
//填充对齐:
xlHAlignFill
C、 单元格垂直对齐
用Get_Range方法获取要设置的单元格,用set_VerticalAlignment方法设置对齐方式;
代码如下:
//单元格垂直居中
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方法进行合并。
代码如下:
//标题行合并单元格
Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, DT.Columns.Count - 3]).set_MergeCells(true);
E、 字体设置;
用get_Range方法先获取要合并的单元格,设置该单元格字体:字体、字形、字号、字体颜色、字体加粗、带下划线(下划线有多种样式)等。
代码如下:
//标题行加粗字体
Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Bold(true);
//设置字体大小
Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Size(16);
//设置字体颜色
Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_ColorIndex(3);
//设置字体
Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Name("隶书");
//设置字体为斜体
Sheet.get_Range(Sheet.Cells[1, 1], Sheet.Cells[1, 1]).Font.set_Italic(true);
//设置字体下划线
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方法设置边框的类型即可。
代码如下:
//画边线
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,
运行效果如下:
3.2. OWC
服务端和客户端都必须安装 Microsoft Office Web Components,它可随 Office 2003 一起安装,或者,如果用户的公司具有 Office 2003 站点许可证,则可以通过公司的 Intranet 下载 Office Web 组件,用户还必须使用 Microsoft Internet Explorer 5.01 (Service Pack 2) 或更高版本。
分享到:
相关推荐
本篇文章将深入探讨OWC11 Spreadsheet的功能、使用方法以及常见操作,帮助用户充分利用这一工具提升工作效率。 ### 1. **基本功能** - **创建工作簿**:用户可以快速创建新的空白工作簿或基于模板的新工作簿。 - *...
OWC SpreadSheet可被嵌入到网页中,与其他Web应用程序集成,如内容管理系统、项目管理工具等,提供在线的电子表格服务。开发者可以通过JavaScript API进行自定义操作,实现与服务器的交互,如数据的导入导出、保存...
OWC11(Office Web Components 11)是微软提供的一组组件,允许开发者在Web应用程序中嵌入和操作Microsoft Office文档,如Excel、Word和PowerPoint。这些组件提供了与Office应用程序类似的接口,使得在网页上展示和...
- **生成Excel文件**:使用OWC对象,如`Spreadsheet`,将处理后的数据填充到Excel单元格中,并设置单元格的格式、样式等。 - **保存并下载**:将生成的Excel文件保存到服务器上的`chart`目录,并生成一个HTTP响应...
`Spreadsheet.txt`可能是一份关于如何使用OWC11创建和操作电子表格的文本指南。 通过深入学习OWC11的属性、对象和方法,并结合VBA编程,开发者可以创建出强大且灵活的Web应用程序,将Excel的功能延伸到互联网平台,...
除了设置单元格的值,我们还可以进行更复杂的操作,如格式化单元格、插入图表、应用公式等。例如,为单元格设置背景色: ```csharp spreadsheet.ActiveSheet.Range["A1"].Interior.ColorIndex = 6; // 黄色 ``` 当...
Office Web Component v11.0 Spreadsheet 是微软在2003年推出的Web应用程序开发工具,它允许开发者在网页上嵌入电子表格功能,为用户提供类似于Microsoft Excel的在线体验。这个程序例子结合了AJAX(Asynchronous ...
不过,需要注意的是,OWC控件自Office 2003以来就没有更新,可能不支持较新的操作系统和浏览器,因此在新项目中可能需要考虑使用其他现代的数据可视化库,如WPF的DataVisualization组件、.NET框架的System.Windows....
#### 二、OWC的主要组件 OWC包含了以下几个关键组件: 1. **Spreadsheet(电子数据表)组件**:这是一个功能强大的电子表格处理工具,能够支持各种数据操作,如排序、过滤、计算等。它还支持复杂的公式和函数。 ...
这个类初始化时会创建一个`OWC.Spreadsheet`对象,该对象是OWC提供的用于在Web页面上创建和操作Excel工作表的接口。`iColOffset`和`iRowOffset`属性用于定义数据在工作表中的起始位置。 `GenerateWorksheet`方法...
需要明确标题“OWCSpreadsheet单元格编辑方式的改进”与描述中提及的“VSTO开发中关于OWC组件使用Spreadsheet编程的技巧”实际上指的是在使用Office Web Components (OWC) 中的Spreadsheet组件进行编程时,通过...
这个类利用了Office Web Components(OWC)提供的Spreadsheet对象,能够动态创建和填充Excel工作表。通过设置单元格的值、字体样式和列宽自动适应等功能,可以高效地将记录集(Recordset)中的数据转换成Excel格式。...
3. **格式化设置**:能够对生成的Excel进行字体、边框、合并单元格等格式化操作,确保数据的可视化效果。 4. **文件导出与读取**:支持将数据以XML Spreadsheet格式导出,并能读取Excel文件作为数据源。 #### 技术...