إذا كنت مطور تطبيق Java يعمل مع Excel من داخل تطبيقات Java ، فستكون مهتمًا بتوفير وظائف معالجة بيانات Excel في تطبيقك. يتيح لك Excel تنسيق تصميم الخلايا ، وتعيين نوع الخلية على أنواع البيانات المختلفة ، وملء خلية بألوان مختلفة ، وما إلى ذلك. يعمل Apache POI كجسرك بين Java و Excel ، حيث يقدم أدوات لمعالجة Excel XLSX Files برمجيًا. في سلسلة المدونات هذه ، سنكشف عن فن معالجة خلايا Excel باستخدام Apache POI في Java. دعنا نغوص واكتشف تآزر الكود وجداول البيانات!
جدول المحتويات
في جميع أنحاء المدونة ، سوف نمر من خلال عينات التعليمات البرمجية وشرح نفسه لما يلي:
- إنشاء خلايا في ملف Excel
- إنشاء خلايا التاريخ في Excel
- العمل مع أنواع مختلفة من الخلايا
- تعيين مظهر الخلية
العمل مع الخلايا في ملف 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 كما هو موضح في الخطوات التالية.
- يتم إنشاء صف في الفهرس 2 على الورقة باستخدام \
**createrow** (2) \
. ثم يتم ملء الخلايا داخل هذا الصف مع البيانات التالية. - يتم تعيين الخلية الأولى (الفهرس 0) قيمة عشرية 1.1 باستخدام طريقة \
**setCellValue** \
. - في الخلية الثانية (الفهرس 1) ، يتم إدخال التاريخ والوقت الحاليين باستخدام كائن \
date \
عبر طريقة \**setCellValue** \
. - الخلية الثالثة (الفهرس 2) تحتوي على تاريخ ووقت من مثيل \
التقويم \
، تعيين باستخدام طريقة \**setCellValue** \
. - الخلية الرابعة (الفهرس 3) تحمل النص “سلسلة”.
- تم تعيين الخلية الخامسة (الفهرس 4) لقيمة منطقية “صواب”.
- المضي قدمًا ، يتم تعيين نوع خلية محددة للخلية السادسة (الفهرس 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 على الورقة باستخدام \
createrow (1) \
. يتم إجراء التغييرات التالية على الخلايا داخل هذا الصف. - بالنسبة للخلية الأولى (الفهرس 1) ، يتم إنشاء نمط خلية مخصصة باستخدام \
wb.createcellstyle () \
. تم تكوين هذا النمط بلون خلفية أكوا باستخدام \setFillBackgroundColor \
و \indexedColors.aqua.getIndex () \
. تم تعيين نمط الخلفية على “البقع الكبيرة” باستخدام \setFillPattern (FillPatterntype.big_spots) \
. يتم إنشاء خلية في هذا الصف في الفهرس 1 ومملوءة القيمة “X”. يتم تطبيق النمط الذي تم إنشاؤه مسبقًا على هذه الخلية باستخدام \setCellStyle \
. - بالنسبة للخلية الثانية (الفهرس 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 ، لذلك ترقبوا.