把excel中的数据,按条件分割成多个文件

本文介绍如何使用VBA代码将一个Excel文件中的数据根据某列的相同值拆分成多个单独的文件。代码执行后,会在当前文件同级目录创建'拆分出的表格'文件夹,所有新生成的文件都会存储在此处。针对宏可能被禁用的问题,文章提供了解决方法链接。
摘要由CSDN通过智能技术生成

要求

有个excel文件,把文件中的数据按照某列,将相同的数据存为一个excel文件。

VBA代码

执行下面的代码后,会在该excel的同级目录下创建一个新文件夹“拆分出的表格”,拆分后生成的新文件会存在这个目录下。

我拆分了30个文件,大约一分钟时间。请耐心等待。
如果你感觉没有进度,你可以看一下同级目录下“拆分出的表格”文件夹中是否在缓慢生成新的文件。

Sub 拆分成多个文件()

    '输入用户想要拆分的工作表
    Dim sheet_name
    sheet_name = Application.InputBox("请输入拆分工作表的名称:")
    Worksheets(sheet_name).Select

    '输入获取拆分需要的条件列
    Dim col_name
    col_name = Application.InputBox("请输入拆分依据的列号(如A):")

    '输入拆分的开始行,要求输入的是数字
    Dim start_row As Integer
    start_row = Application.InputBox(prompt:="请输入拆分的开始行:", Type:=1)

    '暂停屏幕更新
    Application.ScreenUpdating = False

    '工作表的总行数
    Dim end_row
    end_row = 
Laravel本身不支持多线程操作,但是可以通过使用PHP的多线程扩展来实现多线程操作。对于大量数据的导入,可以考虑使用队列来异步处理任务,以避免阻塞导致的性能瓶颈。 以下是一个基本的实现步骤: 1. 将Excel文件上传到服务器上; 2. 分割Excel文件多个文件; 3. 将每个小文件分配给一个独立的线程进行导入; 4. 使用队列来异步处理任务,以避免阻塞导致的性能瓶颈。 在实现多线程导入Excel文件的过程,需要注意以下几点: 1. 在多线程之间共享数据时,需要使用锁机制来保证数据的一致性; 2. 在多线程使用数据库时,需要注意数据库的并发访问; 3. 在多线程出现异常时,需要及时捕获并处理异常。 以下是一个简单的示例代码: ```php //分割Excel文件,将每个小文件分配给一个独立的线程进行导入 public function importExcel() { $file = request()->file('file'); $path = $file->store('temp'); $excelData = Excel::toArray(new ExcelImport(), $path); $data = collect($excelData[0])->chunk(100); foreach ($data as $chunk) { dispatch(new ImportExcelJob($chunk)); } } //导入Excel文件的任务 class ImportExcelJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $data; public function __construct($data) { $this->data = $data; } public function handle() { foreach ($this->data as $row) { DB::table('table_name')->insert($row); } } } ``` 在这个示例,我们首先将Excel文件分割多个文件,然后将每个小文件分配给一个独立的线程进行导入。具体地,我们使用Laravel的队列系统来异步处理任务,以避免阻塞导致的性能瓶颈。在导入Excel文件的任务,我们使用Laravel内置的DB类来将数据插入到数据。需要注意的是,在多线程操作数据库时,需要注意数据库的并发访问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值