网站建设资讯

NEWS

网站建设资讯

vb点虐 类型库 vbnet class

vb点虐 2008中怎样将数据导出到excel中

如何从web页面导入excel单元格数据、又如何把查询出来的数据放到web页面上显示成客户需要的图表?并且导出到excel中?

成都创新互联专注于孟津网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供孟津营销型网站建设,孟津网站制作、孟津网页设计、孟津网站官网定制、小程序定制开发服务,打造孟津网络公司原创品牌,更为您提供孟津网站排名全网营销落地服务。

有两种方案:

1.用Excel自动化技术。

引用Excel的类型库生成.Net的包装类。导入时采用页面放上传文件按钮的方法,在服务器端收到文件后,用excel自动化类打开excel文件,再学会VBA语法,书写大量的代码读取单元格,然后连接数据库保存。导出时,查询数据库,启动excel自动化对象,通过VBA语法填写单元格,保存成excel文件,再用Response.OutputStream输出到页面上,触发excel文件的下载保存框。缺点:容易在服务器端产生excel死进程,代码编写复杂、代码量大、还要掌握VBA语法,用户需要上传、下载操作

有人会说,显示数据时可以用网页直接显示,不用导出成excel。其实也很麻烦:用网页显示复杂的报表格式,网页设计工作量大;如果客户要求导出excel,这个工作就省不了;如果客户要求打印、打印预览、页面设置,比起excel浏览器的打印就捉襟见肘了。

2.用微软Office中间件——SOAOffice。(建议使用最新版的)

用SOAOffice输出Excel,就不会再有上述烦恼。通过SOAOffice不仅能够动态填充excel,读取excel单元格,而且还能在浏览器里直接浏览excel、或者下载、另存。SOAOffice提供标准C#.Net组件,组件在服务器端不使用自动化调用,稳定支持大量web并发访问,这是用com调用无法实现的。组件的属性方法都比较简单,易于调用,你完全不用去掌握复杂的VBA调用。

由于是纯.Net组件,所以服务器端不需安装office。 SOAOffice的excel组件SOAExcel含有Sheet、Cell等类似Excel的简化接口,调用简单。SOAExcel不但能能把数据库字段值动态填充到Excel单元格,还能把用户输入的单元格的值提出给开发者保存到数据库。

SOAExcel能够在客户端浏览器的网页里通过SOAOffice直接显示生成的Excel,用户不必先下载再打开观看内容。

举个导出excel的例子:

SOAOfficeX.ExcelResponse SOAExcel = new SOAOfficeX.ExcelResponse();

SOAOfficeX.ExcelResSheet sheet1 = SOAExcel.openSheet("Sheet1"); // 打开一个Sheet

sheet1.openCell("D"+String.valueOf(8+i)).setValue(rs.getString("Count")); //循环填充数据。

SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl(response);

SOACtrl.assign(SOAExcel); // 绑定数据

// 打开模板并生成最终的excel报表

SOACtrl.webOpen("doc/test.xls", 1, UserName, "Excel.Sheet");

上述代码不但动态填充生成excel,而且在网页里直接显示生成的Excel给终端用户,由于使用了1打开模式,Excel是只读显示的。

读取excel单元格的代码也很简单:

SOAOfficeX.ExcelRequest SOAExcel = new SOAOfficeX.ExcelRequest();

SOAOfficeX.IExcelReqSheet sheetOrder = SOAExcel.OpenSheet("销售订单");

SOAOfficeX.IExcelReqCell cell1;

cell1 = sheetOrder.OpenCell("I5");//订单编码

string sOrderNum = cell1.Value;//cell1.Value就是读取的结果

vb点虐 如何引用自定义类库

在项目A里添加引用,在“添加引用”对话框里找到项目B就可以了。也可以先把项目B生成dll文件,然后在项目A中添加对这个dll文件的引用。

VB.NET Word创建表格并录入文字

‘首先,创建一个VB.NET项目,再点击菜单”项目“-”添加引用“,在”Com“-”类型库“里,选择Microsoft.Word 14.0 Object Library(对应Office版本为2010),将以下代码复制粘贴到Form1窗体替换原代码。

’PS:以下代码仅创建表格,将第行2至4列合并,添加1个文字,其他的你自己分析。

Imports Microsoft.Office.Interop

Imports Microsoft.Office.Interop.Word  '引入Word

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Dim DWrd As New Word.Application, DDoc As Word.Document '定义Word及文档对象

DDoc = DWrd.Documents.Add '新增文档

Dim DTbl As Word.Table  '定义表格对象

DTbl = DDoc.Tables.Add(DDoc.Range, 7, 4)  '新增表格

DTbl.Style = "网格型"  '表格的样式

DTbl.Cell(1, 2).Select()  '选择起始单元格为第1行/第2列

DWrd.Selection.MoveRight(, 2, SelectionMode.MultiExtended)  '向右扩展两个单元格(即选择第1行的第2至4列)

DWrd.Selection().Cells.Merge()  '单元格合并

DTbl.Cell(1, 1).Range.Text = 1  '在第1个单元格填写文本

DWrd.Visible = True '显示Word

End Sub

End Class


网站名称:vb点虐 类型库 vbnet class
分享URL:http://njwzjz.com/article/ddscsoh.html