
正文
vb.net导出wps vb导出excel
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net 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就是读取的结果
相关问答
Q1: 请问怎样用VB操作WPS文件,获得路径
1:打开wps文件,你首先要了解wps文件头的定义格式,一般vb不是特别的好
实现,因为牵扯到位操作,vb对wei操作不是特别的灵活,这个功能最好使
用c或者c++语言来实现,执行效率要高的多。
2:使用vb
api函数:getfullpathname
Public
Declare
Function
GetFullPathName
Lib
"kernel32"
Alias
"GetFullPathNameA"
(ByVal
lpFileName
As
String,
ByVal
nBufferLength
As
Long,
ByVal
lpBuffer
As
String,
ByVal
lpFilePart
As
String)
As
Long
Q2: 关于VB.net和excel数据导入导出的问题,主要是导出!!
可以参考下面这段代码,把数据集的值换成文本框中的值就行,应该能走通:
Dim myExcel As Excel.Application = New Excel.Application
myExcel.Application.Workbooks.Add(True)
myExcel.Application.Worksheets(1).name = "产品列表(" + Me.UcClassTree1.m_CurrentClassName + ")"
myExcel.Visible = True
myExcel.ActiveWorkbook.Styles("常规").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter '**此属性取决于安装字体!!!
myExcel.Range("A1").Value = "图号"
myExcel.Range("B1").Value = "名称"
myExcel.Range("C1").Value = "所属产品号"
myExcel.Range("D1").Value = "规格"
myExcel.Range("E1").Value = "是否总成"
myExcel.Range("F1").Value = "版本"
myExcel.Range("G1").Value = "状态"
myExcel.Range("H1").Value = "加工方式"
myExcel.Range("I1").Value = "创建者"
myExcel.Range("J1").Value = "创建时间"
If Me.UcObjectList1.gridObjects.Rows.Count Then
For i As Int16 = 0 To UcObjectList1.gridObjects.Rows.Count - 1
myExcel.Range("A" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells(Me._ObjectExpression).Value.ToString
myExcel.Range("B" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("ObjectName").Value.ToString
myExcel.Range("C" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("ObjectCode").Value.ToString
myExcel.Range("D" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("Spec").Value.ToString
myExcel.Range("E" + (i + 2).ToString).Value = "'" + IIf(CBool(UcObjectList1.gridObjects.Rows(i).Cells("HasBom").Value.ToString), "是", "否") '前台不能true,false
myExcel.Range("F" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("Version").Value.ToString
myExcel.Range("G" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("State").Value.ToString
myExcel.Range("H" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("mType").Value.ToString
myExcel.Range("I" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("CreateUser").Value.ToString
myExcel.Range("J" + (i + 2).ToString).Value = "'" + UcObjectList1.gridObjects.Rows(i).Cells("CreateTime").Value.ToString
Next
End If
Q3: vb.net不能对wps表格进行操作吗?怎么创建 读写啊?
1。选择工作表左上角的“全选”按钮vb.net导出wps,选定所有单元格,选择“审阅”选项卡中的“保护单元格”命令,取消所有单元格锁定。
2。再选择不允许填充内容的单元格区域,选择“审阅”选项卡中的“保护单元格”命令,将不允许修改的单元格锁定。
3。选择“审阅”选项卡中的“保护工作表”命令,在弹出的对话框中“确定”即可(如果不想让vb.net导出wps他人修改,这里可以设置密码)。
关于vb.net导出wps和vb导出excel的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






