การแปลงข้อมูลข้อความธรรมดาเป็นเวิร์กบุ๊ก Excel ที่มีโครงสร้างเป็นงานที่พบบ่อยสำหรับนักพัฒนา Java ที่ต้องการวิเคราะห์หรือแชร์ข้อมูล Conholdate.Total for Java เป็น SDK ที่ทรงพลังซึ่งทำให้การแปลง TXT เป็น XLSX ในกระบวนการทำงานของ Java ง่ายขึ้นบนเซิร์ฟเวอร์หรือสภาพแวดล้อมเดสก์ท็อปใด ๆ ในคู่มือนี้คุณจะได้เรียนรู้วิธีตั้งค่าห้องสมุด, ผ่านแต่ละขั้นตอนการเขียนโค้ด, สำรวจตัวเลือกการแปลง, และใช้เคล็ดลับประสิทธิภาพเพื่อจัดการไฟล์ขนาดใหญ่อย่างมีประสิทธิภาพ.
ก่อนที่คุณจะเริ่ม: ข้อกำหนดเบื้องต้นและการติดตั้ง
เพื่อทำตามบทแนะนำนี้คุณต้องมี:
- Java Development Kit 8 หรือสูงกว่า
- IDE เช่น IntelliJ IDEA หรือ Eclipse
- Maven สำหรับการจัดการการพึ่งพา
- การเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลด artifacts ของ SDK
เพิ่มที่เก็บ Maven ของ Conholdate และการพึ่งพา SDK ลงในไฟล์ pom.xml ของคุณ:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
ดาวน์โหลดแพ็กเกจ SDK ล่าสุดจากหน้าอย่างเป็นทางการ: ดาวน์โหลด Conholdate.Total for Java. หลังจากที่การพึ่งพาถูกแก้ไขแล้ว คุณพร้อมที่จะเริ่มเขียนโค้ดแล้ว. ส่วนต่อไปจะอธิบายขั้นตอนการดำเนินการอย่างละเอียดทีละขั้นตอน.
สร้างขั้นตอนต่อขั้น: แปลง TXT เป็น XLSX ใน Java
ขั้นตอนที่ 1: ตรวจสอบว่าไฟล์อินพุตมีอยู่
ก่อนแรก ตรวจสอบให้แน่ใจว่าไฟล์ TXT ต้นทางมีอยู่ โค้ดจะตรวจสอบเส้นทางไฟล์และยกเลิกการทำงานหากไม่พบไฟล์
String inputPath = "sample.txt";
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
System.err.println("Input file not found: " + inputPath);
return;
}
ขั้นตอนที่ 2: ตั้งค่าตัวเลือกการแปลง
กำหนดวิธีที่ SDK ควรตีความข้อมูล TXT คุณสามารถตั้งค่าตัวคั่น (แท็บ, คอมม่า, เซมิโคลอน ฯลฯ) รักษาการจัดรูปแบบเดิม และเปิดใช้งานการแคชหน่วยความจำสำหรับไฟล์ขนาดใหญ่
XlsxConvertOptions options = new XlsxConvertOptions();
options.setDelimiter('\t'); // Tab‑delimited example
options.setPreserveOriginalFormatting(true);
options.setEnableMemoryCache(true);
สำหรับรายละเอียดเพิ่มเติม ดูที่ XlsxConvertOptions อ้างอิง API.
ขั้นตอนที่ 3: ดำเนินการแปลง
สร้างอินสแตนซ์ Conversion ด้วยไฟล์อินพุตและเรียก convert เพื่อสร้างผลลัพธ์เป็นไฟล์ XLSX.
String outputPath = "sample.xlsx";
try (Conversion conversion = new Conversion(inputFile)) {
conversion.convert(outputPath, options);
} catch (ConversionException | IOException e) {
System.err.println("Conversion failed: " + e.getMessage());
e.printStackTrace();
return;
}
คลาส Conversion จัดการการทำงานหนักเบื้องหลัง, แปลงแต่ละบรรทัดของไฟล์ TXT ให้เป็นแถวและคอลัมน์ในสเปรดชีต.
ขั้นตอนที่ 4: ตรวจสอบไฟล์ผลลัพธ์และบันทึกผล
หลังจากการแปลง ตรวจสอบว่าไฟล์ XLSX ถูกสร้างขึ้นและไม่ว่างเปล่า.
File outputFile = new File(outputPath);
if (outputFile.exists() && outputFile.isFile() && outputFile.length() > 0) {
System.out.println("Conversion succeeded. Output file: " + outputPath);
} else {
System.err.println("Conversion completed but output file is missing or empty.");
}
ขั้นตอนที่ 5: การตรวจสอบอย่างรวดเร็วด้วย Apache POI
โดยอาจใช้ Apache POI เพื่ออ่านเวิร์กบุ๊กที่สร้างขึ้นและยืนยันจำนวนแผ่นงานและแถว
try (XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(Paths.get(outputPath)))) {
int sheetCount = workbook.getNumberOfSheets();
System.out.println("Workbook contains " + sheetCount + " sheet(s).");
if (sheetCount > 0) {
Sheet sheet = workbook.getSheetAt(0);
int rowCount = sheet.getPhysicalNumberOfRows();
System.out.println("First sheet row count: " + rowCount);
}
} catch (IOException ex) {
System.err.println("Failed to read generated XLSX for validation: " + ex.getMessage());
}
เมื่อการแปลงเสร็จสมบูรณ์ คุณสามารถสำรวจตัวเลือกการกำหนดค่าเพิ่มเติมหรือขยายกระบวนการเพื่อแปลงไฟล์หลายไฟล์เป็นชุดได้
ตัวอย่างการทำงานเต็มสำหรับการแปลง TXT เป็น XLSX ใน Java
โค้ดต่อไปนี้แสดงการดำเนินการเต็มรูปแบบของการแปลง TXT เป็น XLSX ในเวิร์กโฟลว์ Java โดยใช้ Conholdate.Total for Java.
import com.groupdocs.conversion.Conversion;
import com.groupdocs.conversion.options.convert.XlsxConvertOptions;
import com.groupdocs.conversion.exceptions.ConversionException;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class TxtToXlsxConverter {
public static void main(String[] args) {
// Input TXT file and desired XLSX output paths
String inputPath = "sample.txt";
String outputPath = "sample.xlsx";
// Verify that the input file exists
File inputFile = new File(inputPath);
if (!inputFile.exists() || !inputFile.isFile()) {
System.err.println("Input file not found: " + inputPath);
return;
}
// Configure conversion options
XxlsxConvertOptions options = new XlsxConvertOptions();
// Set delimiter (tab, comma, semicolon, etc.). Here we use tab.
options.setDelimiter('\t');
// Preserve original formatting where possible
options.setPreserveOriginalFormatting(true);
// Enable memory cache to improve performance on large files
options.setEnableMemoryCache(true);
// Perform the conversion
try (Conversion conversion = new Conversion(inputFile)) {
conversion.convert(outputPath, options);
} catch (ConversionException | IOException e) {
System.err.println("Conversion failed: " + e.getMessage());
e.printStackTrace();
return;
}
// Validate that the XLSX file was created and is not empty
File outputFile = new File(outputPath);
if (outputFile.exists() && outputFile.isFile() && outputFile.length() > 0) {
System.out.println("Conversion succeeded. Output file: " + outputPath);
// Optional quick validation using Apache POI
try (XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(Paths.get(outputPath)))) {
int sheetCount = workbook.getNumberOfSheets();
System.out.println("Workbook contains " + sheetCount + " sheet(s).");
if (sheetCount > 0) {
Sheet sheet = workbook.getSheetAt(0);
int rowCount = sheet.getPhysicalNumberOfRows();
System.out.println("First sheet row count: " + rowCount);
}
} catch (IOException ex) {
System.err.println("Failed to read generated XLSX for validation: " + ex.getMessage());
}
} else {
System.err.println("Conversion completed but output file is missing or empty.");
}
}
}
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลักของฟังก์ชัน ก่อนนำไปใช้ในโครงการของคุณ โปรดตรวจสอบให้แน่ใจว่าได้อัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าการพึ่งพาทั้งหมดได้ถูกติดตั้งอย่างถูกต้อง และทำการทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อทีม สนับสนุน เพื่อขอความช่วยเหลือ.
กำหนดค่าตัวเลือกการแปลง
SDK เปิดเผยตัวเลือกหลายอย่างที่ช่วยให้คุณปรับแต่งกระบวนการแปลงได้อย่างละเอียด:
- Delimiter - กำหนดวิธีที่ SDK แบ่งแต่ละบรรทัดของไฟล์ TXT เป็นคอลัมน์ ตัวอย่างใช้ตัวอักษรแท็บ (
'\t'). คุณสามารถเปลี่ยนเป็นเครื่องหมายคอมม่า (',') หรืออักขระอื่นใดที่ตรงกับข้อมูลต้นทางของคุณได้ - PreserveOriginalFormatting - เมื่อกำหนดเป็น
trueSDK จะพยายามรักษาการจัดรูปแบบข้อความต้นฉบับ (เช่น ตัวหนาหรือเอียง) ไว้ในเซลล์ XLSX ที่ได้ - EnableMemoryCache - การเปิดใช้งานแฟล็กนี้จะช่วยปรับปรุงประสิทธิภาพสำหรับไฟล์ขนาดใหญ่โดยการแคชข้อมูลกลางในหน่วยความจำ
ตัวเลือกเหล่านี้ถูกกำหนดค่าผ่านอ็อบเจ็กต์ XlsxConvertOptions ตามที่แสดงในส่วนขั้นตอน‑โดย‑ขั้นตอนข้างต้น.
เพิ่มประสิทธิภาพการแปลง
เมื่อทำการแปลงไฟล์ TXT ขนาดใหญ่ ให้พิจารณาข้อแนะนำต่อไปนี้:
- เปิดใช้งานแคชหน่วยความจำ -
options.setEnableMemoryCache(true);ลดการทำ I/O ของดิสก์และเพิ่มความเร็วในการประมวลผล. - สตรีมอินพุต - SDK อ่านไฟล์ต้นทางในรูปแบบสตรีมมิ่ง แต่ควรหลีกเลี่ยงการโหลดไฟล์ทั้งหมดเข้าไปใน
Stringก่อนการแปลง. - ใช้อินสแตนซ์การแปลงซ้ำ - หากต้องการแปลงไฟล์หลายไฟล์ ให้สร้างอ็อบเจกต์
Conversionเพียงหนึ่งตัวต่อเธรดและใช้ซ้ำสำหรับแต่ละไฟล์เพื่อให้ลดภาระการสร้างอ็อบเจกต์. - ปรับขนาด Heap ของ JVM - สำหรับชุดข้อมูลขนาดใหญ่มาก ให้เพิ่มขนาด heap ของ JVM (
-Xmx2gหรือมากกว่านั้น) เพื่อป้องกันOutOfMemoryError.
การนำแนวปฏิบัติเหล่านี้ไปใช้จะทำให้การแปลง TXT เป็น XLSX ใน Java ทำงานได้เร็วและมีประสิทธิภาพด้านหน่วยความจำแม้กับไฟล์ต้นทางขนาดกิกะไบต์
สรุป
คุณได้เห็นวิธีแปลง TXT เป็น XLSX ใน Java โดยใช้ Conholdate.Total for Java แล้ว SDK จัดการการแยกตัวคั่น การรักษารูปแบบ และการจัดการหน่วยความจำ ทำให้คุณสามารถสร้างเวิร์กบุ๊ก Excel ระดับมืออาชีพโดยไม่ต้องพึ่งพา Microsoft Office สำหรับการใช้งานในสภาพแวดล้อมการผลิต อย่าลืมซื้อไลเซนส์ที่เหมาะสม; คุณสามารถตรวจสอบรายละเอียดราคาได้ที่ หน้าราคา และรับไลเซนส์ชั่วคราวสำหรับการทดสอบได้ที่ หน้าลิขสิทธิ์ชั่วคราว. ด้วยโค้ดและเคล็ดลับในคู่มือนี้ คุณสามารถผสานการแปลง TXT‑to‑XLSX เข้าไปในแอปพลิเคชัน Java ใดก็ได้, ทำให้การประมวลผลเป็นชุดอัตโนมัติ, และส่งมอบข้อมูลในรูปแบบที่ผู้ใช้ปลายสุดสามารถจัดการได้ง่าย
คำถามที่พบบ่อย
วิธีการแปลง TXT เป็น XLSX ใน Java ด้วย SDK?
ใช้คลาส Conversion ร่วมกับ XlsxConvertOptions. ตั้งค่าตัวคั่นที่ต้องการ, เปิดใช้งานแคชหน่วยความจำ, และเรียก conversion.convert(outputPath, options). ตัวอย่างเต็มถูกจัดเตรียมไว้ในส่วน “Full Working Example”.
ฉันสามารถแปลงไฟล์ TXT ที่คั่นด้วยตัวคั่นเป็น XLSX ได้โดยไม่ต้องเขียนโค้ดการแยกข้อมูลเองหรือไม่?
ได้. เมธอด XlsxConvertOptions.setDelimiter ของ SDK ช่วยให้คุณระบุตัวคั่น (คอมม่า, แท็บ, เซมิโคลอน ฯลฯ) เพื่อให้คุณสามารถแปลงไฟล์ TXT ที่คั่นด้วยตัวคั่นเป็น XLSX ใน Java ด้วยการเรียก API เพียงครั้งเดียว.
สามารถสร้างเวิร์กบุ๊กหลายชีตจากแหล่งข้อมูล TXT เพียงไฟล์เดียวได้หรือไม่?
แม้ว่าตัวอย่างพื้นฐานจะสร้างชีตเดียว คุณสามารถแยกข้อมูลอินพุตโดยโปรแกรมและเรียกการแปลงแยกกันสำหรับแต่ละส่วน แล้วรวมชีตที่ได้เป็นเวิร์กบุ๊ก XLSX หลายชีตโดยใช้ Apache POI หรือคุณลักษณะขั้นสูงของ SDK.
