چطور میشه از دیتابیس خروجی اکسل یا pdfگرفت
سلام بچه ها
من یه برنامه دارم کار میکنم برای یه مجموعه طرف گفته خروجی اکسل اونم با یه فرمت و شکل و شمایل خاص خودش میخوان که از app خروجی بگیرن و تو اتوماسیون اداریشون وارد کنن. خودم هیچ ایده ای برای پیاده سازیش ندارم لطفا راهنماییم کنید چه کنم.
(کلا یه خروجی در قالب یک فرم استاندارد که توی سیستمشون تعریف شده میخوان ترجیحا اکسل اما نشد pdf یا world هم قبول دارن.)
از اونجایی که اکسل فایل های csv رو میخوانه میتونی از http://opencsv.sourceforge.net/ استفاده کنی.
اگه فرمت OpenXml یا فرمت استاندارد Excel 97-2003 مد نظرته هم رکورد به رکورد دیتا رو میخوانی ، تبدیل میکنی ، تو یه فایل با پسوند اکسل (xlsx - xls) ذخیره میکنی
برای pdf هم میتونی از itextpdf استفاده کنی. خروجی اکسل به مراتب ساده تر از pdf ایجاد میشه
سلام
استفاده از کتابخانه ها و سورسهای مختلف امکانات کاملتری به شما میتونه بده
ولی برای این مشکل نوشتن یک تابع ساده که از اول تا آخر جدول شما را رکورد به رکورد بخواند و فیلد به فیلد با درج کاما یا سمیکالن میان آنها به هم بچسباند و برای هر رکورد یک خط رشته تولید کند و در یک فایل تکست ذخیره کند (فرمت csv دقیقا همین است) کافیست.
record1_field1;record1_field2;record1_field3
record2_field1;record2_field2;record2_field3
یک راه حل به ذهنم رسید فکر کنم بد نباشه
چون کار با html و webview آسونه میشه اون ظاهر مورد نظر را با کدهای html ایجاد کرد سپس داده های دیتابیس را درون html ریخت در نهایت هم html را به pdf تبدیل کرد اینجوری هر نوع دیزاینی میتونی به خوروجیت بدی نظرتون چیه؟
فقط میمونه تبدیل html به pdf که مطلب زیر فکر کنم گزینه خوبی باشه :
http://hmkcode.com/itext-html-to-pdf-using-java/
ابتدا از دیتابیس میخونید سپس با این کد داخل فایل اکسل میریزید
G.fillTimes();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet firstSheet = workbook.createSheet("Sheet1");
HSSFRow rowA = firstSheet.createRow(0);
HSSFCell cellA = rowA.createCell(0);
cellA.setCellValue(new HSSFRichTextString("کد"));
cellA = rowA.createCell(1);
cellA.setCellValue(new HSSFRichTextString("زمان ورود"));
for (int i = G.Times.size(); i == 0; i--)
{
cellA = rowA.createCell(0);
cellA.setCellValue(new HSSFRichTextString("" + G.Times.get(i).id));
HSSFCell cellB = rowA.createCell(1);
cellB.setCellValue(new HSSFRichTextString("" + G.Times.get(i).arrivalTime));
}
FileOutputStream fos = null;
try {
String str_path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file;
File folder = new File(Environment.getExternalStorageDirectory() + "/excel");
folder.mkdir();
file = new File(str_path, "/excel/ok.xls");
// file = new File("test.xls");
Toast.makeText(G.context, "text", Toast.LENGTH_LONG).show();
fos = new FileOutputStream(file);
workbook.write(fos);
}
catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.flush();
fos.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
Toast.makeText(G.context, "Excel Sheet Generated", Toast.LENGTH_SHORT).show();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .