说来VB.Net这个也是之前的一个项目中用到的。今天拿来总结下用途,项目需求,不让在服务器安装Office办公软件。这个也是煞费了一顿.

主要的思路就是 在导出的时候,利用DataTable做中间变量导出

下边这个是使用时候的代码 getData()方法是我获取的DataTable "defaultPickUpLocation"
是表的名字

    '導出Excel
Protected Sub btnExport_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExport.Click
Dim dt As DataTable = getData()
GridViewHelper.ExportToExcel(dt, "defaultPickUpLocation_")
End Sub

下边接下来是导出的方法 GridView 是自定义的类文件

        Shared Sub ExportToExcel(ByVal dataTable As Data.DataTable, ByVal fileName As String)
For Each dataRow As DataRow In dataTable.Rows
For i As Integer = 0 To dataRow.ItemArray.Count - 1
If Not IsDBNull(dataRow.Item(i)) Then
dataRow.Item(i) = removeHTMLTagat(CType(dataRow.Item(i), String))
End If
Next
Next
Export2Excel(dataTable, fileName)

因为数据库中总有一些是Table的字节 现在要删除

        Private Shared Function removeHTMLTagat(ByVal HTML As String) As String
Dim Codehtml() As KeyValuePair(Of String, String) = New KeyValuePair(Of String, String)() {
New KeyValuePair(Of String, String)("<", "<"),
New KeyValuePair(Of String, String)(">", ">"),
New KeyValuePair(Of String, String)(" ", " ")
}
For Each keyValuePair As KeyValuePair(Of String, String) In Codehtml
Dim regex As New Regex(keyValuePair.Key)
HTML = regex.Replace(HTML, keyValuePair.Value)
Next
Dim aryReg() As String = New String() {
"<[^>]*>"}
For Each pattern As String In aryReg
Dim regex As New Regex(pattern)
HTML = regex.Replace(HTML, "")
Next
Return HTML
End Function

还有Export2Excel的具体导出Excel的方法

        Private Shared Sub Export2Excel(ByVal _dataTable As DataTable, ByVal _filename As String)
Dim fileName = String.Format("{0}{1}.xls", _filename, DateTime.Now.ToString("yyMMddHHmmssffff"))
Dim sNewFullFile = String.Format("{0}Downfiles/{1}", HttpContext.Current.Request.PhysicalApplicationPath, fileName)
File.Copy(String.Format("{0}format_files/{1}format.xls", HttpContext.Current.Request.PhysicalApplicationPath, _filename), sNewFullFile)
Dim strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=True;Data Source=" + sNewFullFile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'"
Dim conn = New OleDbConnection(strConn)
Dim cmd As OleDbCommand = Nothing
Dim bRet = False
conn.Open()
Dim insertDataStr = "INSERT INTO [Sheet1$] ("
Dim insertValueStr = "values("
For i As Integer = 0 To _dataTable.Columns.Count - 1
insertDataStr = String.Format("{0} [{1}],", insertDataStr, _dataTable.Columns(i).ColumnName)
insertValueStr = String.Format("{0}{1},", insertValueStr, "?")
Next
insertValueStr = String.Format("{0})", insertValueStr.Trim(","c))
insertDataStr = String.Format("{0}) {1}", insertDataStr.Trim(","c), insertValueStr) cmd = New OleDbCommand(insertDataStr, conn)
For i As Integer = 0 To _dataTable.Columns.Count - 1
cmd.Parameters.Add(i.ToString(), OleDbType.LongVarChar)
Next
For Each row As DataRow In _dataTable.Rows
For i As Integer = 0 To _dataTable.Columns.Count - 1
Dim value = row(_dataTable.Columns(i).ColumnName).ToString()
If value.Length > 100 Then
value = String.Format("{0}……", value.Substring(0, 100))
End If cmd.Parameters(i).Value = value
Next
cmd.ExecuteNonQuery()
Next
bRet = True cmd.Dispose()
conn.Dispose()
If bRet Then
HttpContext.Current.Response.Redirect(String.Format("Downfiles/{0}", fileName))
End If End Sub

现在就写了这个文件,等把导入再写。如有问题 请回复  祝君成功。

VB.NET导出Excel 轻松实现Excel的服务器与客户端交换 服务器不安装Office的更多相关文章

  1. Java导出带格式的Excel数据到Word表格

    前言 在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用 ...

  2. 如何使用NPOI 导出到excel和导入excel到数据库

    近期一直在做如何将数据库的数据导出到excel和导入excel到数据库. 首先进入官网进行下载NPOI插件(http://npoi.codeplex.com/). 我用的NPOI1.2.5稳定版. 使 ...

  3. c# 高效率导出多维表头excel

    [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThread ...

  4. C#导出Excel,并且设置Excel单元格格式,合并单元格.

    注:要添加COM组件 Microsoft Excel 11.0 Object Library  引用. 具体代码如下: using System; using System.Collections.G ...

  5. thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片

    <?php class GetpriceAction extends AdministratorAction { // 文件保存路径 protected $savepath; // 允许上传的文 ...

  6. ASP.NET导出Excel(利用NPOI和EPPlus库,无需安装Office)

    网上提供了很多Asp.net中操作Excel的方法,其中大部分是调用微软的Office组件,下面提供三个无须安装Office即可从Asp.net输出Excel的方法. 1 简单方法 //下面代码输出的 ...

  7. 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

    -----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...

  8. PHP导出MySQL数据到Excel文件

    PHP导出MySQL数据到Excel文件 转载 常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存 ...

  9. ASP.NET导出EXCEl方法使用COM.EXCEL不使用EXCEl对象

    第一种:导出gridVIEW中的数据,用hansTABLE做离线表,将数据库中指定表中的所有数据按GRIDVIEW中绑定的ID导出 只能导出数据不能去操作相应的EXCEl表格,不能对EXCEL中的数据 ...

随机推荐

  1. 自动发现项目中的url

    def check_url_exclude(url): """ 判断url是否需要自动被发现,如果不是则移除 :param url: 自动发现的url :return: ...

  2. 前端最常用的跨域方式--jsonp

    jsonp通过动态创建script标签的方式来实现跨域通信.原理是浏览器允许html标签在不同的域名下加载资源. <script> var script = document.create ...

  3. [已解决]报错: Windows下Redis服务无法启动,错误 1067 进程意外终止解决方案

    启动redis时出现的报错内容: 解决方法: 找到登录状态 如果是网络服务,直接双击此服务,修改为本地系统服务即可启动!

  4. 2014 SummerTrain Beautiful Garden

    There are n trees planted in lxhgww's garden. You can assume that these trees are planted along the ...

  5. String是个啥?

    String是个啥? 字符串?不可变字符串?今天想起来这个又意思的东西,所以来记录一下.我们说String是不可变字符串,那他就真的不可变吗? public class StringDemo { pu ...

  6. 基于Zookeeper实现客户端动态监听服务器上下线

    一.在具体实现之前,先来了解一下Zookeeper的监听器的原理: 图中Main()线程作为客户端,当在主线程中创建Zookeeper客户端时,会默认创建两个子线程:Listener和connect, ...

  7. C#设计模式:组合模式(Composite Pattern)

    一,C#设计模式:组合模式(Composite Pattern) using System; using System.Collections.Generic; using System.Linq; ...

  8. Maven Filter与Profile隔离生产环境与开发环境

    Maven Filter与Profile隔离生产环境与开发环境 在不同的开发阶段,我们一般用到不同的环境,开发阶段使用开发环境的一套东西,测试环境使用测试环境的东西,可能有多个测试环境,生产环境使用的 ...

  9. Linux就该这么学08学习笔记

    参考链接:https://www.linuxprobe.com/chapter-08.html 防火墙管理工具 众所周知,相较于企业内网,外部的公网环境更加恶劣,罪恶丛生.在公网与企业内网之间充当保护 ...

  10. Zabbix学习笔记(yum源安装)

    Zabbix学习笔记(yum源安装) 链接:https://pan.baidu.com/s/19RXhumkB-ulpI4BGOa5b_A 提取码:115h 复制这段内容后打开百度网盘手机App,操作 ...