در این جلسه تیم کدگیت را با آموزش نوشتن در فایل اکسل با جاوا همراهی کنید. پیش نیاز های این قسمت شامل موارد زیر است:
اکسل
مایکروسافت اکسل: جزء برنامههای صفحه گسترده است. این نرمافزار، توسط شرکت مایکروسافت نوشته، توسعه و پخش میشود.این نرمافزار برای سیستم عامل مایکروسافت ویندوز و اواس ده اپل ارائه شده است.
البته نسخهای از این نرمافزار در مجموعهٔ ویندوز فون آفیس ارائه شده است که مخصوص سیستم عامل تلفن همراه ویندوز فون میباشد.نسخهای از این نرمافزار نیز در مجموعه مایکروسافت آفیس لایو ارائه شده است که به صورت رایانش ابری، اجرا میشود.این برنامه برای محاسبات ریاضی (با قابلیت انجام محاسبات دشوار ریاضی) و ترسیم نمودار به وسیله ابزارهای گرافیکی به کار میرود. اکسل بعد از نسخه ۵ در ۱۹۹۳، جزئی از مایکروسافت آفیس شد.
فایل اکسل در جاوا
اکسل یکی از معروف ترین فرمت فایل هاست که توسط شرکت ماکروسافت ارائه شده است. با وجود اینکه اکسل متن باز نیست ولی تیم POI با مهندسی معکوس فرمت اکسل را پیدا کرده و با نوشتن یک کتابخانه، کار را برای ما راحت کرده اند.
کار با کتابخانه poi
کتابخانه poi دارای 2 کلاس مهم است که با آن رو به رو میشوید:
- HSSF: نشان دهنده کار با فایل اکسل 2003 به پایین(منظور فرمت xls است)
- XSSF: نشان دهنده کار با فایل اکسل 2007 به بالا (فرمت xlsx)
کتابخانه poi دارای interface های مختلفی است که مهمترین آتها شامل:
- Workbook: یک نمایش سطح بالا از میز کار در اکسل.کلاسهای HSSFWorkbook و XSSFWorkbook آن را پیاده سازی کردند.
- Sheet: نمایش ساده از صفحه در اکسل. کلاس های HSSFSheet و XSSFSheet از آن استفاده کردند.
- Row: نمایش ساده از سطر در اکسل. کلاسهای HSSFRow و XSSFRow از آن استفاده کردند.
- Cell: نمایش ساده از یک سلول(خانه) در اکسل. کلاسهای HSSFCell و XSSFCell
کد نوشتن در فایل اکسل با جاوا
برای نوشتن در فایل اکسل با جاوا باید ابتدا اطلاعاتی که میخواهیم ذخیره شود ایجاد کنیم. سپس آن ها در در یک sheet ذخیره کنیم. برای ایجاد sheet نیز ما نیاز به workbook داریم.پس مراحل به صورت زیر میشود:
- اطلاعات خود را بسازید(ترجیحا آرایه ای باشد بهتر است)
- یک workbook ایجاد کنید
- برای workbook خود یک sheet بسازید.
- حال برای sheet خود یک سطر ایجاد کنید.
- در آخر cell خود را وارد سطر کنید.
- مرحله 4 و 5 را برای تمامی اطلاعات خود تکرار کنید.
کد نوشتن در فایل اکسل با جاوا به صورت زیر است.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class WriteExcelFile {
/**
* @param args
*/
public static void main(String[] args) {
String data[][] = { { "name", "age" }, { "andrew", "10" },
{ "mike", "16" }, { "bill", "20" } };
// Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();
// Create a blank sheet
XSSFSheet sheet = workbook.createSheet("students");
int rownum = 0;
for (int i = 0; i < data.length; i++) {
Row row = sheet.createRow(rownum++);
int cellnum = 0;
for (int j = 0; j < data[0].length; j++) {
Cell cell = row.createCell(cellnum++);
cell.setCellValue(data[i][j]);
}
}
FileOutputStream out;
try {
out = new FileOutputStream(new File("students.xlsx"));
workbook.write(out);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
در کد نوشتن در فایل اکسل با جاوا، یک آرایه به نام data ساختیم. سپس یک workbook ساختیم و در workbook یک sheet ساختیم به نام students. با دو حلقه for تو در تو به ترتیب در اولی row و در دومی Cell ساختیم.در آخر اطلاعات مورد نظر خود را در cell ریختیم.
برای ذخیره workbook در فایل نیز از fileoutputstream استفاده کردیم و فایل را در آدرس دلخواه ذخیره کردیم(شما به جای students.xlsx آدرس دلخواه خودتان را قرار دهید).
فایل خروجی به صورت زیر است: