עבודה עם 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()) |