إذا كنت مطور تطبيق Java يعمل مع Excel من داخل تطبيقات Java ، فستكون مهتمًا بتوفير وظائف معالجة بيانات Excel في تطبيقك. يتيح لك Excel تنسيق تصميم الخلايا ، وتعيين نوع الخلية على أنواع البيانات المختلفة ، وملء خلية بألوان مختلفة ، وما إلى ذلك. يعمل Apache POI كجسرك بين Java و Excel ، حيث يقدم أدوات لمعالجة Excel XLSX Files برمجيًا. في سلسلة المدونات هذه ، سنكشف عن فن معالجة خلايا Excel باستخدام Apache POI في Java. دعنا نغوص واكتشف تآزر الكود وجداول البيانات!

جدول المحتويات

في جميع أنحاء المدونة ، سوف نمر من خلال عينات التعليمات البرمجية وشرح نفسه لما يلي:

  1. إنشاء خلايا في ملف Excel
  2. إنشاء خلايا التاريخ في Excel
  3. العمل مع أنواع مختلفة من الخلايا
  4. تعيين مظهر الخلية

العمل مع الخلايا في ملف Excel في Java

إنشاء خلايا في ملف Excel

//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

يوضح مقتطف كود Java أعلاه استخدام Apache POI API للعمل مع الخلايا في مصنف Excel. يقوم الرمز بإنشاء مصنف Excel جديد (\ **xssfworkbook** \) ، وتهيئة ورقة داخل المصنف ، ثم يملأ الخلايا بأنواع مختلفة من البيانات. أولاً ، يقوم الرمز بإنشاء ورقة جديدة تسمى " ورقة جديدة “. ثم يقوم بإنشاء صف في الفهرس 0 على الورقة ويستمر في ملء الخلايا داخل هذا الصف. يتم تعيين الخلية الأولى (الفهرس 0) قيمة عدد صحيح من 1 باستخدام طريقة \ **setCellValue** \. في المقابل ، يتم تعيين الخلية الثانية (الفهرس 1) على قيمة عشرية 1.2 مباشرة داخل الطريقة \ **CreateCell** \. تحتوي الخلية الثالثة (الفهرس 2) على قيمة سلسلة “هذه سلسلة” تم إنشاؤها باستخدام طريقة \ **createrichtextstring** \ من \ **xssfcreationhelper** \ مثيل. أخيرًا ، يتم ملء الخلية الرابعة (الفهرس 3) مع القيمة المنطقية “TRUE”. بعد تعيين قيم الخلية ، يكتب الرمز المصنف الناتج إلى ملف Excel يسمى “Workbook.xlsx” باستخدام \ **fileOutputStream** \.

إنشاء نوع تاريخ الخلية

XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it.  The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time).  It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

تعرض مقتطفات رمز Java استخدام Apache POI API للعمل مع خلايا من نوع التاريخ في مصنف Excel. يبدأ الرمز بإنشاء مصنف Excel جديد (\ **xssfworkbook** \). تهدف الخلية الأولى (الفهرس 0) إلى الاحتفاظ بقيمة تاريخ. يتم تعيين كائن \ * ***\ الذي يمثل التاريخ والوقت الحاليين كقيمة للخلية باستخدام طريقة \ ** setCellValue**\. هذه الخلية ليست مصممة بشكل صريح كتاريخ. بالنسبة للخلية الثانية (الفهرس 1) ، يتم إنشاء نمط خلية جديد (\ cellstyle \) باستخدام طريقة \ createCellstyle \ للمصنف. يتم بعد ذلك تكوين هذا النمط لتنسيق تاريخ ووقت محددين باستخدام طريقة setDataFormat \ . تقوم عملية \ createAtaFormat (). يتم تعيين الخلية الثانية في الموعد الحالي والقيمة الزمنية ، ويتم تطبيق نمط الخلية الذي تم إنشاؤه حديثًا عليه باستخدام طريقة setCellStyle \ . توضح الخلية الثالثة (الفهرس 2) طريقة بديلة لملء الخلايا من نوع التاريخ باستخدام \ java.util.calendar `. على غرار الخلية الثانية ، يتم تطبيق نمط الخلية المخصصة على هذه الخلية أيضًا.

العمل مع أنواع مختلفة من الخلايا

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR);		// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

في عينة الرمز هذه ، يتم تطبيق أنماط الخلايا المختلفة على الخلايا في ملف Excel باستخدام Apache POI API كما هو موضح في الخطوات التالية.

  1. يتم إنشاء صف في الفهرس 2 على الورقة باستخدام \ **createrow** (2) \. ثم يتم ملء الخلايا داخل هذا الصف مع البيانات التالية.
  2. يتم تعيين الخلية الأولى (الفهرس 0) قيمة عشرية 1.1 باستخدام طريقة \ **setCellValue** \.
  3. في الخلية الثانية (الفهرس 1) ، يتم إدخال التاريخ والوقت الحاليين باستخدام كائن \ date \ عبر طريقة \ **setCellValue** \.
  4. الخلية الثالثة (الفهرس 2) تحتوي على تاريخ ووقت من مثيل \ التقويم \ ، تعيين باستخدام طريقة \ **setCellValue** \.
  5. الخلية الرابعة (الفهرس 3) تحمل النص “سلسلة”.
  6. تم تعيين الخلية الخامسة (الفهرس 4) لقيمة منطقية “صواب”.
  7. المضي قدمًا ، يتم تعيين نوع خلية محددة للخلية السادسة (الفهرس 5) من خلال استدعاء طريقة \ **setCelltype** \. تم تكوين هذه الخلية كخلية خطأ باستخدام \ **celltype.error** \ التعداد ، مما يشير إلى أنه سيعرض قيمة خطأ. أخيرًا ، تتم كتابة المصنف المعدل إلى ملف يسمى “Workbook.xlsx” باستخدام \ **fileOutputStream** \. باختصار ، يوضح مثال الرمز هذا كيفية إنشاء مصنف Excel ، وتطبيق أنماط الخلايا المختلفة لاستيعاب أنواع البيانات المختلفة ، وحفظ المصنف المعدل في النهاية على ملف. يعرض هذا التوضيح العملي قدرات مكتبة Apache POI للعمل مع ملفات Excel في Java.

ضبط مظهر الخلية

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}
wb.close();

يوضح مقتطف الرمز هذا كيفية معالجة ظهور الخلايا في ملف Excel باستخدام مكتبة Apache POI في Java. يتم تحقيق ذلك باستخدام الخطوات التالية.

  1. يتم إنشاء صف في الفهرس 1 على الورقة باستخدام \ createrow (1) \. يتم إجراء التغييرات التالية على الخلايا داخل هذا الصف.
  2. بالنسبة للخلية الأولى (الفهرس 1) ، يتم إنشاء نمط خلية مخصصة باستخدام \ wb.createcellstyle () \. تم تكوين هذا النمط بلون خلفية أكوا باستخدام \ setFillBackgroundColor \ و \ indexedColors.aqua.getIndex () \. تم تعيين نمط الخلفية على “البقع الكبيرة” باستخدام \ setFillPattern (FillPatterntype.big_spots) \. يتم إنشاء خلية في هذا الصف في الفهرس 1 ومملوءة القيمة “X”. يتم تطبيق النمط الذي تم إنشاؤه مسبقًا على هذه الخلية باستخدام \ setCellStyle \.
  3. بالنسبة للخلية الثانية (الفهرس 2) ، يتم إنشاء نمط خلية جديد. تم تصميم هذا النمط بلون مقدمة برتقالي باستخدام \ setFillForeGroundColor \ و \ indexedColors.orange.getIndex () \. يتم تعيين نمط التعبئة على “المقدمة الصلبة” باستخدام \ setFillPattern (FillPatterntype.solid_foreground) \. يتم إنشاء خلية أخرى في الفهرس 2 في نفس الصف وتملأ مع القيمة “X”. ثم يتم تعيين النمط الذي تم إنشاؤه حديثًا إلى هذه الخلية باستخدام \ setCellStyle \. بعد تكوين مظاهر الخلية ، تتم كتابة المصنف المعدل إلى ملف يسمى “Workbook.xlsx” باستخدام \ fileOtputStream \. باختصار ، يعرض مثال الرمز هذا كيفية استخدام مكتبة Apache POI لمعالجة مظاهر الخلايا في ملف Excel. تتضمن التقنيات الموضحة إنشاء أنماط خلية مخصصة للتحكم في الخلفية والألوان المقدمة ، بالإضافة إلى أنماط ملء ، مما يوفر المرونة في تخصيص جداول بيانات Excel بصريًا باستخدام Java.

الخاتمة

في جميع أمثلة Java المذكورة أعلاه لمكتبة Apache POI ، لقد أوضحنا كيفية العمل مع محتويات ملف Excel من داخل تطبيق Java الخاص بك. أظهرت عينات التعليمات البرمجية كيفية إنشاء خلايا في ملف Excel ، وتعيين مظهر هذه ، وضبط نمط الخلية على أنواع البيانات المختلفة مثل السلسلة ، والرقم ، والعشرية ، وما إلى ذلك ، وكيفية تعيين نوع الخلية حتى الآن نوع الخلية. سنضيف المزيد من الأمثلة للعمل مع ملفات Excel باستخدام Apache POI لـ Java ، لذلك ترقبوا.

انظر أيضًا