将多个txt文件批量导入到同个excel的不同sheet中

本人菜鸟一枚,无编程基础,因为有时项目需要会找一些代码来改,希望能慢慢进步~

项目任务,开始需要把多个txt文件转成excel文件并筛选“Station_Id_d”列中指定字符所在的行,第一步就是先把txt转换为excel来进行筛选。数据如下图所示。

本来想做的是将多个txt文件批量转换成多个excel文件,但是我没找到合适的代码,所以现在这个也是个能行得通的方法。

参考了python-读取目录下所有txt文件并转化为一个excel的多个sheet_SLUMBER_PARTY_的博客-CSDN博客这个教程,但是我的txt文件的分隔符不是‘,’是空格,所以把sep=‘,’换成了delim_whitespace=True(用空格分隔每行数据)

代码如下

import os
import pandas as pd

writer = pd.ExcelWriter("E:\my_excel.xls", engine='openpyxl')#我要生成的excel的文件路径是my_excel.xls
num = 1
for root, dirs, files in os.walk('E:\EVP202007-202012'):  
    print(root) #当前目录路径  
    print(dirs) #当前路径下所有子目录  
    print(files) #当前路径下所有非目录子文件
    for file in files:
        tmp=pd.read_csv("E:\EVP202007-202012/%s"%(file),delim_whitespace=True)
        tmp.to_excel(excel_writer=writer, sheet_name=file)
    writer.save()

结果如下:

不过这个操作看起来并不能完全解决我的问题。下一篇我会换一个方法,把多个txt合并成csv然后筛选我想要的行。 

可以使用Apache POI库来实现在Java批量导入Excel并且Excel包含多个sheet。以下是一个简单的示例代码: ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelReader { public static void main(String[] args) { try { // 指定Excel文件路径 String filePath = "path/to/excel/file.xlsx"; // 创建文件对象 File file = new File(filePath); // 创建文件输入流 FileInputStream inputStream = new FileInputStream(file); // 创建工作簿对象 Workbook workbook = WorkbookFactory.create(inputStream); // 获取工作簿的所有sheet int numberOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numberOfSheets; i++) { Sheet sheet = workbook.getSheetAt(i); // 处理每个sheet的数据 // TODO: 处理代码 } // 关闭输入流和工作簿对象 inputStream.close(); workbook.close(); } catch (IOException ex) { ex.printStackTrace(); } } } ``` 在上面的示例代码,我们首先创建一个文件对象,然后创建一个文件输入流来读取Excel文件。接下来,我们使用`WorkbookFactory.create()`方法来创建工作簿对象。通过调用`workbook.getNumberOfSheets()`方法可以获取工作簿sheet的数量。然后我们可以使用`workbook.getSheetAt()`方法来获取特定的sheet对象。最后,我们可以在`for`循环处理每个sheet的数据。处理完毕后,我们必须调用`close()`方法来关闭输入流和工作簿对象。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值