首页 > 编程语言 >如何通过 C#/VB.NET 代码将 Excel 工作表拆分为单独的文件

如何通过 C#/VB.NET 代码将 Excel 工作表拆分为单独的文件

时间:2022-09-28 16:02:13浏览次数:71  
标签:VB wb C# newWb Excel Workbook Worksheets Spire

随着数据的不断扩大,有的数据表的规模会以几何级增长,当数据达到一定规模时,数据的查询,读取性能就会变得缓慢,这时就需要拆分数据表,接下来在文章中将为大家详细介绍您将学习如何通过C#/VB.NET代码将 Excel 工作表拆分为单独的Excel文件。下面是我整理的思路及具体步骤,希望对大家有所帮助。

使用工具: ​​Free Spire.XLS for .NET​​(免费版)
程序环境:

本次测试时,在程序中引入 Free Spire.XLS for .NET。可通过以下方法引用Spire.XLS.dll文件:

方法1:将 Free Spire.XLS for .NET 下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的Spire.XLS.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。

方法2:通过​​NuGet​​安装。可通过以下2种方法安装:

(1)可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.XLS”,点击“安装”。等待程序安装完成。

(2)将以下内容复制到PM控制台安装。

Install-Package FreeSpire.XLS -Version 12.7

具体步骤
  • 创建一个Workbook对象。
  • 使用 Workbook.LoadFromFile()方法加载示例 Excel 文件。
  • 声明一个新的 Workbook 变量,用于创建新的 Excel 工作簿。
  • 循环遍历文档中的工作表。
  • 初始化 Workbook 对象,并将源文档的特定工作表的副本添加到其中。
  • 使用 Workbook.SaveToFile()方法将工作簿保存到 Excel 文件。
 完整代码

C#

using Spire.Xls;
using System;

namespace SplitWorksheets
{
class Program
{
static void Main(string[] args)
{
//创建Workbook对象
Workbook wb = new Workbook();

//加载示例 Excel 文件
wb.LoadFromFile("企业营业数据表.xlsx");

//声明一个新的 Workbook 变量
Workbook newWb;

//声明一个字符串变量
String sheetName;

//指定用于存储生成的 Excel 文件的文件夹路径
String folderPath = "C:\\Users\\Tina\\Desktop\\输出结果\\";

//循环遍历源文件中的工作表
for (int i = 0; i < wb.Worksheets.Count; i++)
{

//初始化Workbook对象
newWb = new Workbook();

//删除默认工作表
newWb.Worksheets.Clear();

//将源文档的特定工作表添加到新工作簿
newWb.Worksheets.AddCopy(wb.Worksheets[i]);

//获取worksheet名称
sheetName = wb.Worksheets[i].Name;

//将新工作簿保存到指定文件夹
newWb.SaveToFile(folderPath + sheetName + ".xlsx", ExcelVersion.Version2013);
}
}
}
}

​​VB.NET

Imports Spire.Xls

Namespace SplitWorksheets
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建Workbook对象
Dim wb As Workbook = New Workbook()

'加载示例 Excel 文件
wb.LoadFromFile("企业营业数据表.xlsx")

'声明一个新的 Workbook 变量
Dim newWb As Workbook

'声明一个字符串变量
Dim sheetName As String

'指定用于存储生成的 Excel 文件的文件夹路径
Dim folderPath = "C:\Users\Tina\Desktop\输出结果\"

'循环遍历源文件中的工作表
For i As Integer = 0 To wb.Worksheets.Count - 1

'初始化Workbook对象
newWb = New Workbook()

'删除默认工作表
newWb.Worksheets.Clear()

'将源文档的特定工作表添加到新工作簿
newWb.Worksheets.AddCopy(wb.Worksheets(i))

'获取worksheet名称
sheetName = wb.Worksheets(i).Name

'将新工作簿保存到指定文件夹
newWb.SaveToFile(folderPath & sheetName & ".xlsx", ExcelVersion.Version2013)
Next
End Sub
End Class
End Namespace
效果图

如何通过 C#/VB.NET 代码将 Excel 工作表拆分为单独的文件_数据

注意:测试代码中的文件路径为程序Debug路径,仅供参考,文件路径可自定义为其他路径。

标签:VB,wb,C#,newWb,Excel,Workbook,Worksheets,Spire
From: https://blog.51cto.com/u_15656056/5719657

相关文章

  • docker镜像
    外网+dockerlogin查看镜像列表#dockerimages查看镜像详细信息#dockerinspecttest:b19基础镜像的制作,使用ISO作为yum源创建一个用于打包image的目录#mkd......
  • 如何用 docker 搭建虚拟环境
    简述Docker是一个开源的应用容器引擎,基于Go语言开发。它的容器是进程级别完全使用沙箱机制,相互之间无任何调用,更为重要的是容器性能开销极低,不同容器之间又可以共享同一......
  • 使用 Scrapy + Selenium 爬取动态渲染的页面
    在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过......
  • Echarts销毁方法
    在调取Echarts实例时判断是否存在,存在就销毁if(this.launchEchart!=null&&this.launchEchart!=""&&this.launchEchart!=undefined){  this.launchEchar......
  • 解决Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver cl
    解决Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.Thedriverisautomaticallyregisteredviat......
  • Spring MVC框架:第一章:SpringMVC概述及初步体会SpringMVC使用过程
    第一节SpringMVC在知识体系中的坐标在我们学习框架知识以前,JavaSE+JDBC+JavaWeb+SQL这样的技术组合已经可以实现任何业务逻辑了。为什么还要学习SSM这样的框架呢?很简单,M......
  • docker容器
    新建容器#dockercreate-itkylin-server-v10:b19/bin/bash新建并启动容器#dockerrun-itkylin-server-v10:ABI-Build02-cyx/bin/bash查看正在运行的容器#d......
  • 视频融合平台EasyCVR设备管理分页显示有异常,是什么原因?
    EasyCVR视频融合云服务支持多协议、多类型设备的接入,包括国标GB/T28181、RTMP、RTSP/Onvif协议,以及厂家私有协议,如:海康SDK、大华SDK、海康Ehome等。平台可对前端接入的设备......
  • vue3中inject无法获取provide传递的最新的值
    //爷组件 import{defineComponent,reactive,toRefs,onMounted,provide,computed}from'vue'; conststate=reactive({   tableData:[], });......
  • 【C++】关于智能指针的简单学习
    智能指针示例类:classString{private: stringm_value;public: String(stringstr):m_value(str){ cout<<"构造"<<m_value<<"\n"; } friendostream&o......