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 מספק תמיכה מצוינת בתכונות אקסל נוספות כגון עבודה עם גיליונות, נוסחאות, יצירת סגנונות תאים על ידי מילוי צבעים וגבולות, גופנים, כותרות עליונות ותחתונות, צורות, אימות נתונים, תמונות, היפר-קישורים ועוד רבים נוספים.

Previous Next

תחילת העבודה עם 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

  1. צור ספר עבודה חדש SXSSF ושמור 100 שורות בזיכרון, השורות החורגות יעברו לדיסק
  2. צור גליון עבודה חדש באמצעות שיטת createSheet()
  3. הכנס נתונים ל-2000 שורות ו-2000 תאים באמצעות createRow(), createCell() ו-setCellValue("הנתונים שלך") בתוך לולאה מקוננת
  4. שמור קובץ באמצעות FileOutputStream() והעבר את שם קובץ הפלט
  5. כתוב לקובץ באמצעות שיטת 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 עבור כל פורמטי הקבצים הנתמכים בפרויקט.

 עִברִית