بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

چطور میشه از دیتابیس خروجی اکسل یا pdfگرفت

مدیریت گفتگو
PandaStudio 12 سال پیش
آخرین تغییر: 10 سال پیش

سلام بچه ها

من یه برنامه دارم کار میکنم برای یه مجموعه طرف گفته خروجی اکسل اونم با یه فرمت و شکل و شمایل خاص خودش میخوان که از app خروجی بگیرن و تو اتوماسیون اداریشون وارد کنن. خودم هیچ ایده ای برای پیاده سازیش ندارم لطفا راهنماییم کنید چه کنم.

(کلا یه خروجی در قالب یک فرم استاندارد که توی سیستمشون تعریف شده میخوان ترجیحا اکسل اما نشد pdf یا world هم قبول دارن.)

نظرات

پاسخ‌ها 4

محمد حسین زاده 12 سال پیش

از اونجایی که اکسل فایل های csv رو میخوانه میتونی از http://opencsv.sourceforge.net/ استفاده کنی.

اگه فرمت OpenXml یا فرمت استاندارد Excel 97-2003 مد نظرته هم رکورد به رکورد دیتا رو میخوانی ، تبدیل میکنی ، تو یه فایل با پسوند اکسل (xlsx - xls) ذخیره میکنی

برای pdf هم میتونی از itextpdf استفاده کنی. خروجی اکسل به مراتب ساده تر از pdf ایجاد میشه

نظرات

MiRHaDi 12 سال پیش

سلام
استفاده از کتابخانه ها و سورسهای مختلف امکانات کاملتری به شما میتونه بده
ولی برای این مشکل نوشتن یک تابع ساده که از اول تا آخر جدول شما را رکورد به رکورد بخواند و فیلد به فیلد با درج کاما یا سمیکالن میان آنها به هم بچسباند و برای هر رکورد یک خط رشته تولید کند و در یک فایل تکست ذخیره کند (فرمت csv دقیقا همین است) کافیست.

 record1_field1;record1_field2;record1_field3
record2_field1;record2_field2;record2_field3

نظرات

اینم مثل تبدیل به json هست. قالب آسونه ولی نکات ریزی تو تبدیل داره که یا باید یه خروار باگ بگیری و برطرف کنی، یا مطالعه زیادی برای نوشتن یه کانورتور داشته باشی، یا از کتابخونه هایی استفاده کنی که امتحانشونو پس دادن. من سومی رو ترجیح میدم
MiRHaDi 12 سال پیش
فرمت csv همان تکست است که با کاما جدا شده است . فرمت سختی نیست. استفاده از کتابخانه حجم فایل را زیاد میکند. ولی مزایایی هم دارد. مثلا اگر محتوای ما شامل کاما بود چه کار کنیم و ... ! بستگی به کارشون و داده هاشون میتونند انتخاب کنند
هیچ فرمتی سخت نیست و هیچ کتابخونه ای هم بی دلیل بوجود نیومده. میشه با یه فایل تکست و ذخیرش با پسوند pdf یه فایل pdf کامل و سالم ساخت. ولی کسی این کار رو نمیکنه. با بررسی سورس کتابخونه بالا به میزان این استثنا ها میشه پی برد!
PandaStudio 12 سال پیش

یک راه حل به ذهنم رسید فکر کنم بد نباشه

چون کار با html و webview آسونه میشه اون ظاهر مورد نظر را با کدهای html ایجاد کرد سپس داده های دیتابیس را درون html ریخت در نهایت هم html را به pdf تبدیل کرد اینجوری هر نوع دیزاینی میتونی به خوروجیت بدی نظرتون چیه؟

فقط میمونه تبدیل html به pdf که مطلب زیر فکر کنم گزینه خوبی باشه :

http://hmkcode.com/itext-html-to-pdf-using-java/

 

نظرات

mahdiFar77 11 سال پیش
آقا کسی نیست راهنمایی کنه؟خیلی تو سایت ها گشتم پیدا نکردم.خیلی گیرم
mahdiFar77 11 سال پیش

ابتدا از دیتابیس میخونید سپس با این کد داخل فایل اکسل میریزید

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();

                }

نظرات

mahdiFar77 11 سال پیش
در ضمن این فایل کتابخونه رو هم دانلود و اضافه کنید: لینک

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .