עבודה עם Spreadsheet Management

עבודה עם Spreadsheet Management

עבודה עם Spreadsheet Management

מדריך זה מראה כיצד ליצור, להעלות, לשנות ולשמור את ספרי העבודה של Excel באמצעות Aspose.Cells FOSS עבור Java. Workbook, WorksheetCollection, Worksheet, Cells, ו Cell לימודי ניהול מסוף-עד סוף.


יצירת ספר עבודה חדש

השתמש במבנה ללא תיאורים כדי ליצור ספר עבודה ריק. שם Sheet1 הוספת באופן אוטומטי.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
System.out.println("Sheet name: " + sheet.getName()); // Sheet1

הורדת ספר עבודה מתוך קובץ

עבר מסלול קובץ אל Workbook(fileName) המפעל פותח את הקיימת .xlsx או .ods קובץ - שימוש Workbook(fileName, options) לספק LoadOptions כאשר אתה צריך כדי לשלוט בזיהוי פורמט או ניהול סיסמה.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.LoadOptions;

// Simple load
Workbook workbook = new Workbook("data/report.xlsx");

// Load with explicit options
LoadOptions opts = new LoadOptions();
Workbook workbookWithOpts = new Workbook("data/report.xlsx", opts);

להעלות ספר עבודה מתוך זרם

Workbook(stream) ו Workbook(stream, options) קבלו כל אחד java.io.InputStream. זה שימושי כאשר הקובץ מגיע ממקור רשת, בלב מסד נתונים או בזיכרון ביט אררי.

import com.aspose.cells.foss.Workbook;
import java.io.FileInputStream;
import java.io.InputStream;

try (InputStream is = new FileInputStream("data/template.xlsx")) {
    Workbook workbook = new Workbook(is);
    System.out.println("Worksheets: " + workbook.getWorksheets().getCount());
}

גישה וניהול של לוח עבודה

Workbook.getWorksheets() חוזר א WorksheetCollection.• לחזור על ידי אינדיקטור או על פי שם, לגרד מעל כל הלוחות ולהוסיף או להסיר את הלוח כפי שצריך.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();

// Access by index
Worksheet first = sheets.get(0);
System.out.println(first.getName()); // Sheet1

// Add a named sheet
int idx = sheets.add("Summary");
Worksheet summary = sheets.get(idx);
summary.setName("Summary");

// Iterate all sheets
for (Worksheet ws : sheets) {
    System.out.println("Sheet: " + ws.getName());
}

// Remove a sheet by name
sheets.removeAt("Sheet1");
System.out.println("Remaining sheets: " + sheets.getCount());

קריאה וכתבה ערכים תאים

ניווט לתוך תא באמצעות Worksheet.getCells(),אשר חוזר א Cells אוסף →. להגדיל את A Cell על שם (לדוגמה). "A1"• על ידי אפס בסיס שורה / מדד עמוד. putValue() להקריב ערכים ראשוניים ו getValue() / getStringValue() כדי לקרוא הם חזרו.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Worksheet;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
Cells cells = sheet.getCells();

// Write values
cells.get("A1").putValue("Product");
cells.get("B1").putValue("Units Sold");

// Write by row/column index (0-based)
Cell a2 = cells.get(1, 0);
a2.putValue("Widget A");

Cell b2 = cells.get(1, 1);
b2.putValue(1200);

// Read back
System.out.println(a2.getStringValue()); // Widget A
System.out.println(b2.getValue());       // 1200

הגדרת תבניות סלולריות

להקצות רצועת טופס לתא באמצעות setFormula().תאי Aspose.Cells Evaluate Formula כאשר ספר העבודה נשמר או כאשר החישוב מופעל באופן מפורש.

import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;

Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Cells cells = sheets.get(0).getCells();

cells.get("A1").putValue(100);
cells.get("A2").putValue(200);

Cell a3 = cells.get("A3");
a3.setFormula("=SUM(A1:A2)");
System.out.println("Formula: " + a3.getFormula()); // =SUM(A1:A2)

לחסוך ספר עבודה

שימוש Workbook.save(fileName) כדי לכתוב את ספר העבודה על הדיסק.הפורמט היציאה הוא הגדרת הרחבת הקובץ; שימוש .xlsx ספר עבודה Excel.

import com.aspose.cells.foss.Workbook;

Workbook workbook = new Workbook();
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello");

// Save to file -- format inferred from .xlsx extension
workbook.save("output/result.xlsx");

שחרור משאבים

Workbook יישום AutoCloseable.השתמש בלוק של משאבים מנסה כדי להבטיח את המשאבים הפנימיים של ספר העבודה שוחררו מיד לאחר השימוש.

import com.aspose.cells.foss.Workbook;

try (Workbook workbook = new Workbook("data/large.xlsx")) {
    workbook.save("output/large_modified.xlsx");
}
// workbook.close() called automatically

טיפים ושיטות טובות

  • כל הזמן משתמשים במשאבים (try (Workbook wb = new Workbook(...))• עבור גדול כדי למנוע את הפתיחה של קבצים.
  • מעדיפים cells.get(row, column) מעבר cells.get(cellName) ב- Hot Loops - המקום יתר על המידה של כל התאים נמנעת מפריסה חוזרת.
  • שיחת טלפון workbook.getWorksheets().getCount() לפני גישה לדיסקים על ידי אינדיקטור כדי להימנע IndexOutOfBoundsException.
  • שמו של המכתב באופן ברור עם setName() לאחר add() כך ניתן להוריד את הקוד תראו אותם על ידי שם ולא על פי אינדיקטורים פגומים.
  • אל תסתמכו על התוצאות של המוצר מיד לאחר setFormula();• תחילה או להעלות מחדש אם אתה צריך ערכים מחושבים באותו ישיבה.

בעיות נפוצות

נושאסיבהקבע
WorkbookLoadException על new Workbook(fileName)מסלול קובץ לא נכון או קבצים סגוריםבדוק את המסלול קיים והוא קריא; סגור יישומים אחרים שמחזיקים בקובץ
get(index) לירות IndexOutOfBoundsExceptionמדד מעבר למדינות getCount() - 1צפו sheets.getCount() לפני גישה; שימוש add() כדי ליצור רשימה חדשה
תבנית חוזרת ריקה getValue()תבניות שאינן מחושבות באופן אוטומטי בזיכרוןשמור את ספר העבודה ולהעלות אותו מחדש כדי לקבל תוצאות טופס
קובץ ההפעלה הוא שחית לאחר save()הרחבה לא נכונה של קובץלהבטיח כי שם הקובץ נגמר עם .xlsx;• התכנית מתבססת על הרחבה

FAQ

איך אני קורא מחדש את לוח העבודה?

להחזיר את Worksheet אובייקטים לפי אינדיקטור WorksheetCollection וקוראים setName(name) עם שם המופע החדש:

workbook.getWorksheets().get(0).setName("Sales Data");

איך אני יכול לבדוק כמה עמודים ספר עבודה יש?

שיחת טלפון getCount() על The WorksheetCollection חזרה על ידי Workbook.getWorksheets() כדי לקבל את המספר הכולל של לוח העבודה:

int count = workbook.getWorksheets().getCount();

האם אני יכול להוסיף מספר שורות באותו שיחה?

לא, צלצול worksheets.add(sheetName) כל שיחה חוזרת את האינדקס של שורה חדשה שנבנתה.

כיצד ניתן לבדוק את סוג הערך של תא?

להחזיר את Cell על ידי שם ושיחה getType(),אשר חוזר א CellValueType ערך ה- Enum :

Cell cell = cells.get("A1");
System.out.println(cell.getType()); // CellValueType enum value

סיכום התייחסות API

שיעור / שיטהתיאור
Workbook()יצירת ספר עבודה ריק עם דף לבן אחד
Workbook(fileName)הורד ספר עבודה מתוך מסלול קובץ
Workbook(stream)מחדש את ספר העבודה מאחד InputStream
Workbook(fileName, options)להעלות ספר עבודה עם LoadOptions
Workbook.getWorksheets()חוזרים ל WorksheetCollection
Workbook.save(fileName)חיסכון לקובץ (פורמט שנגרם מתוך הרחבה)
Workbook.save(stream, format)חוסך לתוך זרם עם הסבר ברור SaveFormat
WorksheetCollection.get(index)החזרה של הדף על בסיס אפס אינדיקטור
WorksheetCollection.get(name)החזרה של השם לפי שם
WorksheetCollection.add(sheetName)הוספת רשימה בשם; מחזירה את האינדקס שלה
WorksheetCollection.getCount()מספר המכתבים בספר העבודה
WorksheetCollection.removeAt(sheetName)להסיר את השם לפי שם
Worksheet.getCells()חוזרים ל Cells אוסף עבור הדף הזה
Worksheet.getName() / setName()קבל או הקלד את שם השולחן
Cells.get(cellName)חזרה א Cell על פי שם (לדוגמה, “A1”)
Cells.get(row, column)חזרה א Cell על ידי שורה / עמוד מבוסס אפס
Cell.putValue(value)כתיבת ערך לתא
Cell.getValue()קורא את הערך של התא כ Object
Cell.getStringValue()קורא את הערך של התא כ- A String
Cell.setFormula(formula)הגדרת שורת נוסחה (לדוגמה, “=SUM(A1:A2)”)
LoadOptionsהגדרת עבודה עבור Workbook Loading
SaveFormat• מספר קבועים של פורמט (פורמט נלקח מתוך הרחבת הקובץ; לא עבר ל- save())

ראה גם

 עברית