لماذا جافا هي الأداة المثالية للأتمتة؟
هل سبق لك أن أمضيت نصف يوم في إعادة تسمية 200 ملف في مجلد؟ أو نسخت البيانات يدويًا من عشرات جداول Excel إلى تقرير؟ مألوف؟ إذن هذه المقالة لك.
جافا ليست مجرد لغة للأنظمة المؤسسية الضخمة. إنها أداة قوية ومستقرة ومتعددة المنصات، وهي مناسبة تمامًا لـ أتمتة المهام الروتينية. على عكس لغات البرمجة النصية، تعمل برامج جافا بسرعة، وسهلة الصيانة، والنظام البيئي الضخم للمكتبات (Maven Central) يسمح بحل أي مشكلة تقريبًا "من الصندوق".
في هذه المقالة، لن نتحدث عن النظرية. سنستعرض 5 سيناريوهات حقيقية للأتمتة باستخدام جافا مع كود جاهز يمكنك نسخه وتكييفه لاحتياجاتك. هيا بنا!
1. أتمتة التعامل مع نظام الملفات (إعادة التسمية، الفرز، التنظيف)
المهمة الأكثر شيوعًا هي ترتيب الملفات. تخيل: لديك مجلد به تقارير مثل report_2024_01_15.xlsx و report_2024_01_16.xlsx وهكذا. تحتاج إلى نقلها إلى مجلدات حسب الشهر. يدويًا - 15 دقيقة. باستخدام جافا - ثانيتان.
مثال: الفرز التلقائي للملفات حسب التاريخ
import java.io.IOException;import java.nio.file.*;import java.time.LocalDate;import java.time.format.DateTimeFormatter;import java.util.regex.Matcher;import java.util.regex.Pattern;
public class FileSorter { public static void main(String[] args) throws IOException { Path sourceDir = Paths.get("C:/reports"); Pattern pattern = Pattern.compile("report_(\\\\d{4})_(\\\\d{2})_(\\\\d{2})\\\\.xlsx");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(sourceDir, "*.xlsx")) { for (Path file : stream) { Matcher matcher = pattern.matcher(file.getFileName().toString()); if (matcher.matches()) { String year = matcher.group(1); String month = matcher.group(2); Path targetDir = sourceDir.resolve(year).resolve(month); Files.createDirectories(targetDir); Files.move(file, targetDir.resolve(file.getFileName()), StandardCopyOption.REPLACE_EXISTING); System.out.println("تم النقل: " + file.getFileName()); } } } System.out.println("تم! تم فرز الملفات في المجلدات."); }}ماذا يفعل هذا الكود؟ يقوم بمسح المجلد، والعثور على جميع الملفات المطابقة للنمط، واستخراج السنة والشهر من الاسم، وإنشاء مجلدات فرعية، ونقل الملفات. كل شيء بسيط وموثوق.
يمكنك بسهولة تكييف هذا الكود لاحتياجاتك: تغيير النمط، إضافة تسجيل، أو عمل مسح متكرر للمجلدات الفرعية. هذه هي القاعدة لأي أتمتة مهام باستخدام جافا تتعلق بالملفات.
2. تحليل ومعالجة ملفات Excel (Apache POI)
Excel هو الأداة "المفضلة" للمحاسبين والمديرين والمحللين. وغالبًا ما تحتاج إلى جمع البيانات من 10 ملفات في ملف واحد، أو العكس - تقسيم ملف كبير إلى عدة ملفات. مكتبة Apache POI هي المعيار الفعلي للتعامل مع Excel في جافا.
مثال: قراءة البيانات من Excel وإنشاء تقرير موجز
import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.HashMap;import java.util.Map;
public class ExcelAggregator { public static void main(String[] args) throws IOException { Map<String, Double> summary = new HashMap<>();
// قراءة ثلاثة ملفات String[] files = {"sales_q1.xlsx", "sales_q2.xlsx", "sales_q3.xlsx"}; for (String fileName : files) {