在数据处理和分析中,TXT 文件常被用作一种简单的数据存储格式,但它们缺乏结构化布局和强大的数据分析功能。与此相比,Excel 文件具有更高的可操作性,支持更丰富的数据分析、排序、过滤及图表功能。因此,将 TXT 文件转换为 Excel 格式,能够使数据更加易于管理和分析。
本文将介绍如何使用 Java 和 Spire.XLS for Java 库实现将 TXT 文件转换为 Excel 表格,帮助您更高效地处理和分析数据。
目录
为什么要将 TXT 转换为 Excel?
虽然 TXT 文件因其简单性而广泛使用,但它们通常不适用于复杂的数据分析和报表生成。将 TXT 文件转换为 Excel 格式有以下几大优势:
- 自动化处理:可以通过代码自动处理大规模数据,节省人工操作时间。
- 结构化数据:Excel 支持表格形式的组织,可以对数据进行格式化和排序,更便于后续分析。
- 高级功能:Excel 提供了强大的功能,例如数据透视表、图表、公式计算等,帮助您从数据中提取有价值的信息。
- 系统集成:可以将转换功能集成到 Java 应用程序中,满足不同的业务需求。
准备工作
在开始之前,确保您已经安装了 Java 开发环境,并将 Spire.XLS for Java 库添加到您的项目中。以下是详细步骤。
安装 JDK(Java Development Kit)
首先,您需要安装 Java。可以从 Oracle 官方网站 下载并安装最新版本的 Java 开发工具包(JDK)。安装完成后,可以在命令行中运行 java -version 检查安装是否成功。
引入 Spire.XLS for Java库
Spire.XLS 是一款功能强大的 Java 库,可轻松实现 Excel 文件的读取、编辑和保存。要在项目中使用 Spire.XLS,您可以下载Spire.Xls.jar,并将其手动添加到项目中。或者通过 Maven 引入依赖,只需在 pom.xml 文件中添加以下内容:
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>15.10.5</version>
    </dependency>
</dependencies>
准备 TXT 文件
确保您的 TXT 文件具有一致的结构,通常每一行代表一条记录,列与列之间使用某种分隔符(如逗号、制表符或空格)隔开。例如,以下是一个示例 TXT 文件:

如何使用 Java 将 TXT 文件转换为 Excel
接下来,我们将详细介绍如何使用 Java 和 Spire.XLS 将 TXT 文件转换为 Excel 格式。以下是详细实现步骤。
步骤 1:导入相关类
首先,导入 Spire.XLS for Java 库的类和其他所使用到的类:
import com.spire.xls.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
步骤 2:读取 TXT 文件
我们将使用 Java 的 BufferedReader 类来读取 TXT 文件的内容,并使用分隔符将每行拆分成列。假设 TXT 文件使用制表符(Tab)作为分隔符:
// 读取 TXT 文件
BufferedReader reader = new BufferedReader(new FileReader("数据.txt"));
String line;
 List<String[]> data = new ArrayList<>();
        
while ((line = reader.readLine()) != null) {
     // 使用制表符拆分每一行的数据
    String[] row = line.split("\t");
    data.add(row);
}
reader.close();
在该代码中,我们使用 split("\t") 方法按制表符分割每一行。如果您的 TXT 文件使用其他分隔符(如逗号或空格),只需修改 split() 方法中的参数。
步骤 3:创建 Excel 工作簿
接下来,我们创建一个 Excel 工作簿对象,并获取其第一个工作表:
// 创建 Excel 工作簿
Workbook workbook = new Workbook();
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
步骤 4:将数据写入 Excel 工作表
使用 Spire.XLS 提供的 API,将从 TXT 文件中读取的数据逐行逐列写入 Excel 工作表:
// 将数据写入工作表
for (int i = 0; i < data.size(); i++) {
    String[] rowData = data.get(i);
    for (int j = 0; j < rowData.length; j++) {
        sheet.getCellRange(i + 1, j + 1).setValue(rowData[j]);
        sheet.getCellRange(1, j + 1).getStyle().getFont().isBold(true);
    }
}
注意,Excel 单元格的索引从 1 开始,因此我们在 getCellRange(i + 1, j + 1) 中加了 1 来确保正确定位单元格。
步骤 5:保存 Excel 文件
完成数据写入后,可以将工作簿保存为 Excel 文件。Spire.XLS 支持保存为 .xlsx 和 .xls 格式:
// 将工作簿保存为 Excel 文件
workbook.saveToFile("转换后的数据.xlsx", ExcelVersion.Version2016);
TXT 转 Excel完整代码示例
以下是完整的代码示例,展示了如何在 Java 中将 TXT 文件转换为 Excel 文件:
import com.spire.xls.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class TxtToExcel {
    public static void main(String[] args) throws Exception {
        // 读取 TXT 文件
        BufferedReader reader = new BufferedReader(new FileReader("数据.txt"));
        String line;
        List<String[]> data = new ArrayList<>();
        while ((line = reader.readLine()) != null) {
            // 使用制表符拆分每一行的数据
            String[] row = line.split("\t");
            data.add(row);
        }
        reader.close();
        // 创建 Excel 工作簿
        Workbook workbook = new Workbook();
        // 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);
        // 将数据写入工作表
        for (int i = 0; i < data.size(); i++) {
            String[] rowData = data.get(i);
            for (int j = 0; j < rowData.length; j++) {
                sheet.getCellRange(i + 1, j + 1).setValue(rowData[j]);
                sheet.getCellRange(1, j + 1).getStyle().getFont().isBold(true);
            }
        }
        // 保存为 Excel 文件
        workbook.saveToFile("转换后的数据.xlsx", ExcelVersion.Version2016);
    }
}
生成的Excel文档如下图所示:

TXT 文本转 Excel 的进阶技巧
处理不同的分隔符
在 Java 中,split() 方法可以用来根据特定的分隔符将字符串拆分成数组。假设您的 TXT 文件使用不同的分隔符,如逗号、空格或分号,您可以根据需要修改 split() 方法的参数。
例如,如果文件使用逗号分隔,您可以这样处理:
String[] row = line.split(",");  // 如果使用逗号作为分隔符
格式化单元格
在 Spire.XLS for Java 中,您可以通过访问单元格的 Style 属性来设置格式化选项,例如背景颜色、字体加粗、文本颜色等。以下是设置单元格背景颜色和字体加粗的正确 Java 写法:
// 设置单元格背景颜色为黄色
sheet.getCellRange(1, 1).getStyle().setColor(Color.YELLOW);
// 设置字体加粗
sheet.getCellRange(1, 1).getStyle().getFont().isBold(true);
自适应列宽
在 Spire.XLS for Java 中,可以通过 AutoFitColumns() 方法来自动调整列宽以适应内容。正确的 Java 代码如下:
// 自动调整列宽
sheet.getAllocatedRange().autoFitColumns();
总结
通过使用 Spire.XLS for Java,您可以轻松地将 TXT 文件转换为 Excel 格式,进而优化数据管理、分析和报表生成的流程。无论是日志数据、财务记录,还是大规模数据集的处理,这种方法都能够显著提升工作效率,减少人工操作。
此外,Spire.XLS 提供了强大的功能,您可以在转换过程中进一步自定义格式、处理不同的分隔符,并进行细致的数据分析和处理,帮助您充分发挥数据的价值。
申请临时 License
如您需要去除生成文档中的评估提示或解除功能限制,请联系销售获取有效期 30 天的临时许可证。
 
    


 
					



