Apache POI-XSSF
קוד פתוח Java API עבור Microsoft® Excel XLSX Files
צור, ערוך והמר גיליונות אלקטרוניים של Excel XLSX לפורמטים של קבצי CSV ו-HTML באמצעות ספריית Java.
מהו Apache POI-XSSF?
Apache POI-XSSF הוא יישום Java טהור של פורמט הקובץ Excel 2007 XLSX. ה-API מספק נהלים ליצירה, קריאה, שינוי וכתיבת קבצי Excel XLSX. הוא מספק מבנים ברמה נמוכה לבעלי צרכים מיוחדים. זה גם מספק API של מודל אירועים לגישה יעילה לקריאה בלבד וכן ממשק API של מודל משתמש מלא ליצירה, קריאה ושינוי של קבצי XLSX. Apache POI-XSSF מספק תמיכה מצוינת בתכונות אקסל נוספות כגון עבודה עם גיליונות, נוסחאות, יצירת סגנונות תאים על ידי מילוי צבעים וגבולות, גופנים, כותרות עליונות ותחתונות, צורות, אימות נתונים, תמונות, היפר-קישורים ועוד רבים נוספים.
תחילת העבודה עם Apache POI XSSF
קודם כל, עליך להתקין את ערכת הפיתוח של Java (JDK) במערכת שלך. אם כבר יש לך את זה, המשך לדף הורדה של Apache POI כדי לקבל את המהדורה היציבה האחרונה בארכיון. חלץ את התוכן של קובץ ה-ZIP בכל ספרייה שממנה ניתן לקשר את הספריות הנדרשות לתוכנית Java שלך. זה הכל!
הפניה ל-Apache POI בפרויקט Java המבוסס על Maven היא אפילו פשוטה יותר. כל מה שאתה צריך הוא להוסיף את התלות הבאה ב-pom.xml שלך ולתת ל-IDE שלך לאחזר ולהפנות את קבצי Apache POI Jar.
Apache POI Maven תלות
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
צור גיליונות אלקטרוניים גדולים של Excel באמצעות Java API
Apache POI XSSF מציע טביעת רגל עם זיכרון נמוך באמצעות SXSSF API לטיפול בכתיבת נתונים גדולים לקובצי MS Excel. זה מאפשר כתיבת קבצים גדולים מאוד מבלי שיגמר הזיכרון שכן רק חלק ניתן להגדרה מהשורות נשמר בזיכרון בכל זמן נתון. POI-SXSSF משיגה את טביעת הזיכרון הנמוכה שלו על ידי הגבלת הגישה לשורות שנמצאות בתוך חלון הזזה, בעוד ש-XSSF נותן גישה לכל השורות במסמך. שורות ישנות יותר שאינן נמצאות עוד בחלון הופכות לבלתי נגישות, מכיוון שהן נכתבות לדיסק. אתה יכול ליצור קובץ אקסל גדול ב-java באמצעות השלבים הבאים
צור קובץ Excel גדול באמצעות Java
- צור ספר עבודה חדש SXSSF ושמור 100 שורות בזיכרון, השורות החורגות יעברו לדיסק
- צור גליון עבודה חדש באמצעות שיטת createSheet()
- הכנס נתונים ל-2000 שורות ו-2000 תאים באמצעות createRow(), createCell() ו-setCellValue("הנתונים שלך") בתוך לולאה מקוננת
- שמור קובץ באמצעות FileOutputStream() והעבר את שם קובץ הפלט
- כתוב לקובץ באמצעות שיטת SXSSFWorkbook.Write() והעבר את FileOutputStream כפרמטר
צור קובץ אקסל גדול
// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
Row row = sh.createRow(rownum);
// insert data in 20000 cells
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
}
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();
ממשקי API של Java עבור יצירת חוברות עבודה של Excel והוספת גיליונות
Apache POI XSSF מאפשר למתכנתי מחשבים ליצור חוברת עבודה חדשה של Excel בפורמט קובץ XLSX. ברגע שמפתחים יוצרים את חוברת העבודה, גליונות עבודה נוצרים ממופע קיים של חוברת העבודה, והגיליון החדש שנוצר מתווסף אוטומטית ברצף לחוברת העבודה.
צור חוברת עבודה של Excel והוסף גיליונות
// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
המר גיליון אלקטרוני של Excel ל-CSV ופורמט קובץ אחר
מפתחי Java ומתכנתים יכולים להמיר בקלות גיליון אלקטרוני של Excel לפורמט קובץ CSV באמצעות Apache POI XSSF API. CSV ראשי תיבות של Comma-Separated-Values והוא פורמט נפוץ מאוד המשמש להחלפת נתונים בין יישומים רבים. ראשית, מפתחים צריכים לקרוא את קובץ הקלט XLS באמצעות Apache POI XSSF API ולאחר מכן לכתוב מידע שחולץ לתוך קבצי CSV.
המר XLSX ל-CSV
// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through all rows and add ","
Iterator cellIterator = row.cellIterator();
StringBuffer stringBuffer = new StringBuffer();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (stringBuffer.length() != 0) {
stringBuffer.append(",");
}
stringBuffer.append(cell.getStringCellValue());
}
System.out.println(stringBuffer.toString());
}
workBook.close();
שיפור XSSF עבור כותרות עליונות ותחתונות
ל- Apache POI XSSF יש את היכולת לטפל בכותרות עליונות ותחתונות של עמוד ראשון, כמו גם בכותרות עליונות ותחתונות זוגיות/מוזרות. כותרות עליונות ותחתונות הן חלק חשוב מאוד בגיליון אלקטרוני של Excel. הוא מכיל בדרך כלל מידע נוסף כגון תאריכים, מספרי עמודים, שם המחבר והערות שוליים, המסייעים בשמירה על מסמכים ארוכים יותר מסודרים וקלים יותר לקריאה. ניתן לטפל בכל דגלי נכסי כותרת עליונה/תחתונה ב-XSSF. הכותרת העליונה והתחתונה המוזרות הן ברירת המחדל של הכותרת העליונה והתחתונה. הוא מוצג בכל העמודים שאינם מציגים כותרת בעמוד הראשון או כותרת זוגית.
מיזוג תאים וחילוץ טקסט בתוך קבצי XLSX של Excel
Apache POI XSSF מספק את היכולת המאפשרת למתכנתי Java למזג תאים מרובים לתא בודד בתוך גיליון אלקטרוני של Excel. הוא כלל שיטות שלוקחות אינדקסים של תאים כארגומנט וממזגות את התאים לתא גדול אחד. אחת התכונות התובעניות ביותר היא היכולת לחלץ טקסט מקובץ XLSX ולהשתמש בו בהתאם לצרכים שלך. Apache POI סיפקה חילוץ טקסט בסיסי עבור כל פורמטי הקבצים הנתמכים בפרויקט. לצורכי חילוץ טקסט מתקדמים, כולל מיצוי טקסט עשיר (כגון עיצוב וסגנון), יחד עם פלט XML ו-HTML, Apache POI עובד בשיתוף פעולה הדוק עם Apache Tika כדי לספק Tika Parsers המופעלים על ידי POI עבור כל פורמטי הקבצים הנתמכים בפרויקט.