fengyuxiu0925 2023-07-28 09:01 采纳率: 75%
浏览 8

VB.NET 复制表格问题

我用VB.NET 写的程序 需要复制表格内容到微信聊天窗口发送,之前用Excel库实现的,发现电脑没有安装表格软件无法使用,如何使用EPPLUS或者OPOI库实现同样的功能,是复制表格的内容到剪切板,然后再粘贴到微信聊天窗口。

 ' 打开Excel文件
        Dim excelApp As New Excel.Application()
        Dim workbook As Excel.Workbook = excelApp.Workbooks.Open(OpenFileDialog1.FileName)
        Dim worksheet As Excel.Worksheet = workbook.Sheets(3)
        If 行数2 = 1 Then
            worksheet.Range(复制1).Copy()            ' 选择复制1区域并复制到剪切板
            Threading.Thread.Sleep(500)                       ' 延时500毫秒
            SendKeys.Send("^v")                                     ' 模拟按键CTRL+V
            Threading.Thread.Sleep(500)                        ' 延时500毫秒
            SendKeys.Send("{ENTER}")                             ' 按下回车键
            ' 关闭Excel文件
            workbook.Close(False)
            excelApp.Quit()
            ' 释放资源
            System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
            ' 清空剪切板
            Clipboard.Clear()
        End If

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-28 12:18
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答由chatgpt基于相关博客总结生成:

      解决方案:

      要使用EPPlus或POI库来复制表格内容并粘贴到微信聊天窗口,您需要做以下步骤:

      1. 首先,您需要从nuget库中安装EPPlus或POI库,以获取这些库的最新版本。在Visual Studio中,可以通过"工具" -> "NuGet包管理器" -> "程序包管理器控制台",然后运行适当的安装命令来完成安装。下面是安装EPPlus和POI库的命令:

      EPPlus安装命令: Install-Package EPPlus

      POI安装命令: Install-Package NPOI

      1. 在代码中引入适当的命名空间:

      2. 对于VB.NET和EPPlus,使用: vb.net Imports OfficeOpenXml Imports System.IO

      3. 对于VB.NET和POI,使用: vb.net Imports NPOI.SS.UserModel Imports NPOI.XSSF.UserModel

      4. 根据您的选择使用EPPlus或POI库进行相应的代码更改。

      5. EPPlus:

        ```vb.net ' 打开Excel文件 Dim excelPackage As New ExcelPackage(New FileInfo(OpenFileDialog1.FileName)) Dim worksheet As ExcelWorksheet = excelPackage.Workbook.Worksheets(3)

      If 行数 = 2 Then Dim range As ExcelRangeBase = worksheet.Cells(复制1) Dim copiedData As Object = range.Value ' 复制1区域的值 Clipboard.SetDataObject(copiedData) ' 将复制的数据放入剪贴板

         Threading.Thread.Sleep(500) ' 延时500毫秒
         SendKeys.Send("^v") ' 粘贴剪贴板中的数据
         Threading.Thread.Sleep(500) ' 延时500毫秒
         SendKeys.Send("{ENTER}") ' 按下回车键
      
         ' 关闭Excel文件
         excelPackage.Dispose()
      
         ' 清空剪切板
         Clipboard.Clear()
      

      End If ```

      • POI:

      ```vb.net ' 打开Excel文件 Dim fs As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read) Dim workbook As IWorkbook = New XSSFWorkbook(fs) Dim worksheet As ISheet = workbook.GetSheetAt(2) ' 从0开始索引,所以这里是2

      If 行数 = 2 Then Dim range As ICellRange = worksheet.GetCellRangeByName(复制1) Dim copiedData As Object = range.Value ' 复制1区域的值 Clipboard.SetDataObject(copiedData) ' 将复制的数据放入剪贴板

         Threading.Thread.Sleep(500) ' 延时500毫秒
         SendKeys.Send("^v") ' 粘贴剪贴板中的数据
         Threading.Thread.Sleep(500) ' 延时500毫秒
         SendKeys.Send("{ENTER}") ' 按下回车键
      
         ' 关闭Excel文件
         fs.Close()
      
         ' 清空剪切板
         Clipboard.Clear()
      

      End If ```

      请注意,POI库在VB.NET中使用可能需要额外的配置和引用。您可以通过在NuGet程序包管理器控制台中运行以下命令来安装所需的POI库:

      Install-Package NPOI -Version 2.5.1

      1. 保存并运行您的代码,它将使用EPPlus或POI库将表格内容复制到微信聊天窗口。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 7月28日

悬赏问题

  • ¥15 安装TIA PortalV15.1报错
  • ¥15 能把水桶搬到饮水机的机械设计
  • ¥15 Android Studio中如何把H5逻辑放在Assets 文件夹中以实现将h5代码打包为apk
  • ¥15 使用小程序wx.createWebAudioContext()开发节拍器
  • ¥15 关于#爬虫#的问题:请问HMDB代谢物爬虫的那个工具可以提供一下吗
  • ¥15 vue3+electron打包获取本地视频属性,文件夹里面有ffprobe.exe 文件还会报错这是什么原因呢?
  • ¥20 用51单片机控制急停。
  • ¥15 孟德尔随机化结果不一致
  • ¥15 在使用pyecharts时出现问题
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路