diff --git a/cells/arabic/java/excel-import-export/_index.md b/cells/arabic/java/excel-import-export/_index.md index 519fcefa45..ed9e4685b0 100644 --- a/cells/arabic/java/excel-import-export/_index.md +++ b/cells/arabic/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ استغل إمكانيات تصدير بيانات Excel باستخدام Aspose.Cells لجافا. تعلّم من خلال أمثلة عملية على أكواد المصدر في هذا الدليل الشامل. حسّن مهاراتك في إدارة البيانات اليوم. ### [تصدير كود جافا بصيغة CSV](./csv-export-java-code/) تعرّف على كيفية تصدير البيانات إلى صيغة CSV باستخدام Aspose.Cells لجافا. دليل خطوة بخطوة مع الكود المصدري لتصدير بيانات CSV بسلاسة. +### [كيفية تصدير CSV باستخدام Java – تعيين الأرقام ذات الدقة وتحديد نطاق التصدير إلى CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +تعلم تصدير البيانات إلى CSV في Java مع ضبط الأرقام ذات الدقة وتحديد نطاق التصدير بسهولة باستخدام Aspose.Cells. ### [تصدير Excel إلى PDF](./exporting-excel-to-pdf/) تعلّم كيفية تصدير ملفات Excel إلى PDF بسهولة باستخدام Aspose.Cells لجافا. دليلنا المفصل يُبسّط العملية. ابدأ التحويل اليوم! +### [إنشاء PDF من مصنف – دليل جافا كامل](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +تعلم كيفية إنشاء ملف PDF من مصنف Excel باستخدام Aspose.Cells لجافا خطوة بخطوة مع أمثلة الكود. ### [تصدير Excel إلى XML Java](./export-excel-to-xml-java/) تعرّف على كيفية تصدير Excel إلى XML في Java باستخدام Aspose.Cells for Java. دليل خطوة بخطوة مع الكود المصدري لتحويل البيانات بسلاسة. ### [استيراد البيانات من Excel](./data-import-from-excel/) diff --git a/cells/arabic/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/arabic/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..c24ac68369 --- /dev/null +++ b/cells/arabic/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: كيفية إنشاء PDF وحفظ المصنف كملف PDF، وتصدير Excel إلى HTML، واستخدام + وظيفة التوسيع مع Aspose.Cells للغة Java. يتضمن الشرح خطوة بخطوة. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: ar +og_description: كيفية إنشاء ملف PDF من دفتر عمل باستخدام Aspose.Cells للغة Java. تعلم + كيفية حفظ دفتر العمل كملف PDF، وتصدير Excel إلى HTML، واستخدام دالة EXPAND. +og_title: كيفية إنشاء PDF من دفتر عمل – دليل جافا +tags: +- Aspose.Cells +- Java +- PDF generation +title: كيفية إنشاء ملف PDF من دفتر عمل – دليل جافا الكامل +url: /ar/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية إنشاء PDF من دفتر عمل – دليل Java الكامل + +هل تساءلت يومًا **كيف تنشئ PDF** مباشرةً من دفتر عمل Excel دون الحاجة إلى محولات من طرف ثالث؟ أنت لست وحدك. يواجه العديد من المطورين صعوبة عندما يحتاجون إلى تصدير PDF سريع، أو معاينة HTML، أو صيغ مصفوفية متقدمة—كل ذلك في خطوة واحدة. + +في هذا الدرس سنستعرض برنامج Java واحد مستقل يقوم بكل ذلك. سن **نحفظ دفتر العمل كملف PDF**، ونوضح لك كيفية **تصدير Excel إلى HTML** مع الحفاظ على الصفوف المثبتة، ونظهر **استخدام دالة EXPAND** داخل ورقة العمل. في النهاية ستحصل على مشروع قابل للتنفيذ يمكنك إدراجه في أي بناء Maven أو Gradle. + +> **نصيحة احترافية:** جميع الشيفرات أدناه تعمل مع Aspose.Cells 23.10 (أو أحدث). إذا كنت تستخدم نسخة أقدم، قد تختلف بعض أسماء الطرق قليلًا. + +--- + +## المتطلبات المسبقة + +- **Java 17** (أو أي نسخة LTS) مثبتة ومُعَدَّة. +- مكتبة **Aspose.Cells for Java**. أضف الاعتماد التالي إلى ملف `pom.xml` الخاص بك: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- بيئة تطوير متكاملة أو محرر نصوص من اختيارك (IntelliJ IDEA، VS Code، Eclipse…). + +لا توجد واجهات برمجة تطبيقات خارجية، ولا خدمات ويب—فقط Java صافية وAspose.Cells SDK. + +--- + +## نظرة عامة على الحل + +سنقسم التنفيذ إلى **سبع خطوات منطقية**: + +1. إنشاء دفتر عمل وعرض دالة **EXPAND**. +2. تمكين محددات تنوع الخطوط و**حفظ دفتر العمل كملف PDF**. +3. تصدير نفس دفتر العمل إلى HTML مع الحفاظ على الصفوف المثبتة. +4. استخدام Smart Marker مع معامل `IF` لإدخال نص شرطي. +5. تطبيق Smart Marker بنمط رئيس‑تفصيل للبيانات الهرمية. +6. تحميل ملف Markdown يحتوي على صور مشفّرة بـ Base‑64. +7. ضبط خيارات GridJs للمحاذاة والحدود، ثم إدراج البيانات. + +كل خطوة مُغلفة في طريقة خاصة بها للحفاظ على نظافة طريقة `main` ولتوضيح **لماذا** نفعل ما نفعل، وليس فقط **ماذا** نكتب. + +--- + +## الخطوة 1 – إنشاء دفتر عمل واستخدام دالة EXPAND + +دالة **EXPAND** هي صيغة مصفوفة ديناميكية جديدة تم تقديمها في Office 365. تسمح لك بتوسيع نطاق إلى مساحة أكبر دون الحاجة إلى نسخ الخلايا يدويًا. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**لماذا هذا مهم:** +- `EXPAND` يضيف فراغات تلقائيًا إلى النتيجة، وهو مثالي عندما تقوم لاحقًا **بحفظ دفتر العمل كملف PDF**—سيظهر الـ PDF جدولًا نظيفًا ومستطيلًا. +- استدعاء `calculateFormula()` يضمن تشغيل محرك الصيغ قبل أي تصدير. + +--- + +## الخطوة 2 – تمكين محددات تنوع الخطوط و**حفظ دفتر العمل كملف PDF** + +إذا كنت بحاجة إلى دعم طباعة متقدمة (مثل الإيموجي أو محددات تنوع CJK)، يجب تفعيل هذه الميزة **قبل** الحفظ. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**نقطة رئيسية:** تم الإجابة على السؤال الأساسي **how to create pdf** هنا—عن طريق استدعاء `workbook.save(..., SaveFormat.PDF)` بعد ضبط الإعدادات. + +--- + +## الخطوة 3 – **تصدير Excel إلى HTML** مع الحفاظ على الصفوف المثبتة + +غالبًا ما يطلب أصحاب المصلحة معاينة سريعة على الويب. يمكن لـ Aspose.Cells تصدير إلى HTML، ومع `setPreserveFrozenRows(true)` نحافظ على تجربة التمرير نفسها كما في Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**لماذا يهمك:** الصفوف المثبتة تُعد ميزة تحسين تجربة الاستخدام؛ بدونها تختفي صفوف العنوان عندما يقوم المستخدمون بالتمرير إلى أسفل الصفحة. + +--- + +## الخطوة 4 – Smart Marker مع معامل IF + +تتيح لك Smart Markers دمج البيانات في قالب دون كتابة حلقات. يضيف معامل `if` منطقًا شرطيًا مباشرة داخل العلامة. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +ستظهر النتيجة في ملف PDF كـ **“VIP Customer: Acme Corp”** لأن `IsVIP` يساوي `true`. إذا غيرت العلامة إلى `false` ستحصل على **“Regular Customer: Acme Corp”**—دون الحاجة إلى أي شفرة إضافية. + +--- + +## الخطوة 5 – Smart Marker بنمط رئيس‑تفصيل باستخدام نطاق هرمي + +عندما تكون لديك بيانات أب‑ابن (مثل الطلبات وبنودها)، يوفر لك الـ master‑detail marker عناء إدراج الصفوف يدويًا. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**ما ستحصل عليه:** يقوم المحرك بتوسيع الصفوف الرئيسية لكل طلب ويضع تلقائيًا الصفوف التفصيلية تحته—مثالي للفواتير أو تقارير المشتريات. + +--- + +## الخطوة 6 – تحميل مستند Markdown مع صور Base‑64 مدمجة + +إذا كانت بيانات المصدر لديك في صيغة Markdown (شائعة في خطوط توثيق المستندات)، يمكن لـ Aspose.Cells تحويلها مباشرة إلى دفتر عمل. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**ملاحظة حالة حافة:** إذا كان سلسلة Base‑64 غير صالحة، سيتخطى Aspose الصورة لكنه سيستمر في معالجة باقي المستند—دون حدوث تعطل. + +--- + +## الخطوة 7 – ضبط خيارات GridJs وإدراج البيانات + +GridJs هو شبكة JavaScript خفيفة يمكن لـ Aspose.renderها إلى HTML. تحسين محاذاة الأرقام وتطبيق الحدود يعزز من قابلية القراءة. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**لماذا نهتم:** المحاذاة الصحيحة والحدود تجعل الـ HTML الناتج يبدو كجدول بيانات مصقول—مفيد للوحة التحكم. + +--- + +## تجميع كل شيء معًا – طريقة `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/arabic/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..319a714c8e --- /dev/null +++ b/cells/arabic/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: تعرّف على كيفية تصدير ملف CSV من دفتر عمل Java مع ضبط الأرقام ذات الدقة + وتحديد نطاق التصدير إلى CSV في دليل واحد واضح. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: ar +og_description: أتقن كيفية تصدير CSV في جافا، وضبط الأرقام ذات الدقة العالية، وتصدير + النطاق إلى CSV مع كود عملي ونصائح. +og_title: كيفية تصدير CSV باستخدام Java – دليل خطوة بخطوة كامل +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: كيفية تصدير CSV باستخدام Java – ضبط الأرقام ذات الدقة وتحديد نطاق التصدير إلى + CSV +url: /ar/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تصدير CSV باستخدام Java – ضبط الأرقام ذات الأهمية وتصدير النطاق إلى CSV + +هل تساءلت يومًا **how to export csv** من دفتر عمل Java دون فقدان الدقة العددية؟ ربما جربت `toString()` سريعًا وانتهى بك الأمر إلى فوضى من أخطاء التقريب. هذه مشكلة شائعة، خاصة عندما تحتاج إلى **set significant digits** للبيانات المالية أو النتائج العلمية. + +في هذا الدرس ستشاهد مثالًا كاملًا وجاهزًا للتنفيذ يُظهر **how to export csv**، وكيفية **set significant digits**، وحتى كيفية **export range to csv** مع الحفاظ على تنظيم بياناتك. سنستعرض كل سطر، نشرح *السبب* وراء استدعاءات الـ API، ونقدم لك نصائح لتجنب المشكلات الشائعة. لا حاجة للبحث في مستندات إضافية—فقط حل متكامل يمكنك نسخه ولصقه اليوم. + +## ما ستتعلمه + +- إنشاء دفتر عمل وتكوين دقة الأرقام باستخدام `setNumberSignificantDigits`. +- تصدير نطاق خلايا محدد كسلسلة CSV منسقة بشكل جميل. +- تحليل تواريخ العصور اليابانية باستخدام `DateTimeFormatInfo`. +- إعادة حساب الصيغ بحيث تظل نتائج الـ dynamic‑array محدثة. +- تحويل جدول محوري إلى صورة PNG. +- استخدام Smart Marker لإدخال تعليقات وحفظ دفتر العمل في النهاية. + +كل هذا يتم باستخدام مكتبة Aspose.Cells for Java، الإصدار 23.12 (الأحدث وقت كتابة هذا الدرس). إذا كان ملف الـ JAR موجودًا في مسار الـ classpath الخاص بك، فأنت جاهز للبدء. + +--- + +## الخطوة 1: إنشاء دفتر عمل و **Set Significant Digits** + +قبل أن نتمكن من تصدير أي شيء، نحتاج إلى كائن دفتر عمل. أول شيء يتغافل عنه العديد من المطورين هو دقة الأرقام. بشكل افتراضي، يستخدم Aspose.Cells الدقة المزدوجة الكاملة، مما قد يؤدي إلى سلاسل طويلة وغير عملية في CSV. ضبط عدد الأرقام ذات الأهمية يقتصر الإخراج مع الحفاظ على أهم القيم. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**لماذا هذا مهم؟** +إذا قمت بتصدير خلية تحتوي على `12345.6789` دون تحديد عدد الأرقام، سيظهر CSV القيمة الكاملة، مما يملأ التقارير. باستخدام `setNumberSignificantDigits(5)`، تصبح الخلية نفسها `12346`، وهو ما يتوقعه غالبًا مستخدمو الأعمال. + +> **نصيحة احترافية:** إذا كنت بحاجة إلى دقة مختلفة لكل عمود، يمكنك تطبيق `Style` مخصص بدلاً من الإعداد العالمي. + +--- + +## الخطوة 2: **Export Range to CSV** – أهمية التنسيق + +الآن بعد أن أصبح دفتر العمل جاهزًا، لنستخرج كتلة مستطيلة من البيانات ونحولها إلى سلسلة CSV. سنفرض أيضًا تنسيقًا عشريًا من خانتين (`0.00`) حتى يتماشى كل رقم بشكل جميل. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +الدالة `exportDataTable` تقوم بالعمل الشاق. بما أننا ضبطنا `exportAsString`، فإن الطريقة تُعيد `String` يمكن طباعته، أو كتابته إلى ملف، أو إرساله عبر HTTP. خطوة **export range to csv** تحترم أيضًا الإعداد العالمي `setNumberSignificantDigits` الذي عرّفناه مسبقًا، لذا تُقَرَّب الأرقام إلى خمسة أرقام ذات أهمية *وتُعرَض* مع خانتين عشريتين. + +**الناتج المتوقع (مقتطع):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **سؤال شائع:** *ماذا لو أردت فاصلًا مختلفًا، مثل الفاصلة المنقوطة؟* +> ببساطة استدعِ `exportOptions.setSeparator(";")` قبل التصدير. + +--- + +## الخطوة 3: تحليل تاريخ ياباني (أداة إضافية) + +على الرغم من عدم ارتباطه مباشرةً بـ CSV، إلا أن العديد من جداول Excel تحتوي على تواريخ مخصصة للمنطقة. إليك كيفية تحويل سلسلة يابانية مثل `"R3/04/01"` إلى كائن `DateTime` قياسي. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +الناتج: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**لماذا نضيف هذا؟** +إذا كان تصدير CSV الخاص بك يغذي أنظمة لاحقة تتوقع تواريخ بصيغة ISO‑8601، فستحتاج إلى توحيد أي تنسيقات محلية أولًا. يوضح هذا المقتطف *كيف* و *لماذا* في مكان واحد. + +--- + +## الخطوة 4: إعادة حساب الصيغ – إبقاء نتائج الـ Dynamic‑Array محدثة + +إذا كان دفتر العمل يحتوي على صيغ (مثل `=SUM(A1:A10)`)، فإنها لن تُحدَّث تلقائيًا بعد تعديل الإعدادات. استدعاء `calculateFormula` يجبر على إعادة حساب كاملة، مما يضمن أن CSV المُصدَّر يعكس أحدث القيم. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **احذر:** قد تستغرق دفاتر العمل الكبيرة وقتًا ملحوظًا لإعادة الحساب. للسيناريوهات الحساسة للأداء، فكر في استخدام `calculateFormula(FormulaCalculationOptions)` لتقليل نطاق العملية. + +--- + +## الخطوة 5: تحويل أول جدول محوري إلى صورة PNG + +أحيانًا تحتاج إلى لقطة بصرية للجدول المحوري إلى جانب CSV. الشيفرة التالية تحول أول جدول محوري في الورقة الأولى إلى ملف PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**نصيحة:** إذا لم يحتوي دفتر العمل على جدول محوري مسبقًا، يمكنك إنشاء واحد برمجيًا—اطلع على وثائق Aspose.Cells للحصول على مثال سريع. + +--- + +## الخطوة 6: استخدام Smart Marker لكتابة تعليق وحفظ دفتر العمل + +يتيح لك Smart Marker إدخال محتوى ديناميكي إلى الخلايا باستخدام عناصر نائبة بسيطة. هنا نكتب تعليقًا مثل “Reviewed by QA” في خلية محددة ثم نحفظ دفتر العمل. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +العنصر النائب `${Comment}` يمكن وضعه في أي مكان في الورقة (مثلاً الخلية `A1`). عندما يتم تشغيل `apply`، يُستبدل العنصر النائب بالقيمة المقدَّمة. + +**النتيجة:** ستجد ملف `output/commented.xlsx` يحتوي على التعليق، بالإضافة إلى ملف `pivot.png` الذي تم إنشاؤه مسبقًا وسلسلة CSV المطبوعة في وحدة التحكم. + +--- + +## مثال عملي كامل + +لنجمع كل ما سبق، إليك البرنامج الكامل الذي يمكنك تجميعه وتشغيله: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### الناتج المتوقع في وحدة التحكم + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +ستجد أيضًا ملف `output/pivot.png` (إذا كان هناك جدول محوري) وملف `output/commented.xlsx` على القرص. + +--- + +## الأسئلة المتكررة والحالات الخاصة + +- **هل يمكنني تصدير إلى ملف CSV فعلي مباشرةً؟** + نعم. استبدل كتلة `exportAsString` بـ `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **ماذا لو كان الورقة تستخدم إعدادًا إقليميًا مختلفًا للأرقام؟** + اضبط `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` قبل التصدير؛ هذا سيُبدل + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/java/excel-pivot-tables/_index.md b/cells/arabic/java/excel-pivot-tables/_index.md index d03ae74c24..a51992a09c 100644 --- a/cells/arabic/java/excel-pivot-tables/_index.md +++ b/cells/arabic/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ تعرّف على كيفية تحديث بيانات جدول البيانات المحوري في Aspose.Cells لجافا. حافظ على تحديث بياناتك بسهولة. ### [تخصيص أنماط الجدول المحوري](./customizing-pivot-table-styles/) تعرّف على كيفية تخصيص أنماط جداول البيانات المحورية في Aspose.Cells لواجهة برمجة تطبيقات Java. أنشئ جداول بيانات محورية جذابة بصريًا بسهولة. +### [نسخ جدول محوري في Java – الحفاظ عليه، وتصديره إلى PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +تعلم كيفية نسخ جدول محوري في Java مع الحفاظ على تنسيقه وتصديره إلى ملف PPTX بسهولة باستخدام Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/arabic/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..1aa505c879 --- /dev/null +++ b/cells/arabic/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-03-01 +description: نسخ جدول محوري في جافا مع الحفاظ على المحور، ثم تصدير إكسل إلى PPTX، + وتعطيل AutoFilter في إكسل، واستخدام Smart Marker لمصفوفات JSON – دليل كامل خطوة + بخطوة. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: ar +og_description: نسخ جدول محوري في جافا، الحفاظ على تعريف المحور، تصدير إلى PPTX، تعطيل + AutoFilter، واستخدام Smart Marker – دليل كامل للمطورين. +og_title: نسخ جدول محوري في جافا – احتفظ به، صدّر إلى PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: نسخ جدول محوري في جافا – الحفاظ عليه، تصديره إلى PPTX +url: /ar/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# نسخ جدول محوري في Java – الحفاظ عليه، التصدير إلى PPTX + +هل احتجت يوماً إلى **نسخ جدول محوري** من مصنف إلى آخر دون فقدان تعريف الجدول المحوري الأساسي؟ لست وحدك من يحاول حل هذه المشكلة. في العديد من المشاريع الواقعية ستجد نفسك تنقل البيانات، وآخر شيء تريده هو جدول محوري معطوب يسبب أخطاء أثناء التشغيل. + +في هذا الدرس سنستعرض حلاً كاملاً لا يقتصر فقط على **نسخ جدول محوري**، بل يوضح لك أيضاً كيفية **الحفاظ على جدول محوري** عند النسخ، **تصدير Excel إلى PPTX**، **تعطيل AutoFilter في Excel**، و**استخدام Smart Marker** لإدخال مصفوفة JSON في خلية واحدة. في النهاية ستحصل على برنامج Java واحد قابل للتنفيذ يغطي جميع السيناريوهات الأربعة. + +## المتطلبات المسبقة + +- Java 8 أو أحدث (الكود يعمل مع Java 11 أيضاً) +- مكتبة Aspose.Cells for Java (الإصدار 23.9 أو أحدث) – يمكنك الحصول عليها من Maven Central +- إلمام أساسي بمفاهيم Excel مثل الجداول المحورية، الجداول، ومربعات النص + +إذا كنت تفتقد ملف Aspose.Cells JAR، أضف هذا إلى ملف `pom.xml` الخاص بك: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +الآن، لنبدأ. + +## الخطوة 1: نسخ جدول محوري – الحفاظ على تعريف الجدول المحوري + +عند نسخ نطاق الخلايا الذي يحتوي على جدول محوري ببساطة، غالباً ما تُترك بيانات التعريف الخاصة بالجدول المحوري خلفك. توفر لنا Aspose.Cells طريقة أنيقة للحفاظ على التعريف سليمًا باستخدام `copyRange` مع كائن `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**لماذا يعمل هذا:** `CopyOptions` يخبر Aspose.Cells بنقل كل شيء، بما في ذلك ذاكرة التخزين المؤقت للجدول المحوري وإعدادات الحقول. بدونها، ستحصل على قيم عادية وتفقد القدرة على تحديث الجدول المحوري. + +**حالة خاصة:** إذا كان الجدول المحوري المصدر يمتد إلى ما هو أبعد من النطاق المحدد صلباً `A1:G20`، عدّل النطاق وفقاً لذلك أو استخدم `sourceSheet.getPivotTables().get(0).getDataRange()` لجلبه ديناميكياً. + +![مثال على نسخ جدول محوري](image.png "نسخ جدول محوري في Java") + +*نص بديل للصورة: مخطط نسخ جدول محوري في Java* + +## الخطوة 2: تصدير ورقة عمل مع مربع نص قابل للتحرير إلى PPTX + +غالباً ما تحتاج إلى تحويل ورقة Excel إلى شريحة PowerPoint—فكر في لوحات التحكم الأسبوعية التي تحتاج إلى عرضها. يمكن لـ Aspose.Cells حفظ ورقة عمل مباشرة كملف PPTX مع الحفاظ على الأشكال مثل مربعات النص. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**ما يحدث:** طريقة `save` مع `SaveFormat.PPTX` تحول الورقة بالكامل، بما في ذلك أي TextBox قابل للتحرير، إلى شريحة PowerPoint. يبقى النص داخل المربع قابلاً للتحرير عند فتح ملف PPTX في PowerPoint. + +**نصيحة:** إذا كان لديك عدة أوراق وتريد فقط واحدة محددة، استدعِ `wb.getWorksheets().removeAt(index)` للأوراق الأخرى قبل الحفظ. + +## الخطوة 3: تعطيل AutoFilter في Excel من جدول + +AutoFilter مفيد للمستخدمين النهائيين، لكن أحياناً تحتاج إلى إيقافه برمجياً—ربما قبل تصدير البيانات أو عند إنشاء تقرير نظيف. إليك كيفية **تعطيل AutoFilter في Excel** على جدول Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**لماذا قد تحتاج هذا:** التصدير إلى صيغ لا تدعم AutoFilter (مثل CSV أو PDF) قد يتسبب في ظهور أيقونات تصفية عشوائية. تعطيله يضمن مخرجات نظيفة. + +**مشكلة شائعة:** إذا لم تحتوي الورقة على جداول، فإن `getTables().get(0)` سيُطلق استثناء `IndexOutOfBoundsException`. تأكد دائماً من فحص `sheet.getTables().size()` أولاً في الكود الإنتاجي. + +## الخطوة 4: استخدام Smart Marker – إدراج مصفوفة JSON كقيمة خلية واحدة + +Smart Marker هو محرك القوالب الخاص بـ Aspose. إحدى الحيل المفيدة هي التعامل مع مصفوفة JSON كاملة كقيمة خلية واحدة، وهو مثالي للتسجيل أو تمرير البيانات المهيكلة لاحقاً. لن **نستخدم Smart Marker** لتحقيق ذلك. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**كيف يعمل:** العلامة `${json}` في المصنف تُستبدل بالسلسلة الكاملة للـ JSON لأننا ضبطنا `ArrayAsSingle`. بدون هذا الخيار، ستحاول Aspose توسيع كل عنصر من المصفوفة إلى صفوف منفصلة. + +**اختلاف:** إذا كنت بحاجة إلى تقسيم المصفوفة على صفوف، ما عليك سوى حذف `ArrayAsSingle` ودع Smart Marker يتولى التوسيع تلقائياً. + +## مثال عملي كامل – جميع الخطوات مجتمعة + +فيما يلي فئة Java واحدة تجمع جميع العمليات التي تناولناها. شغّلها كدالة `main` عادية؛ فقط عدّل مسارات الملفات لتتناسب مع بيئتك. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/java/getting-started/_index.md b/cells/arabic/java/getting-started/_index.md index b853ffd8c2..10984ef4e6 100644 --- a/cells/arabic/java/getting-started/_index.md +++ b/cells/arabic/java/getting-started/_index.md @@ -27,51 +27,21 @@ ## البرامج التعليمية المتاحة ### [إنشاء وتنسيق مصنفات Excel باستخدام Aspose.Cells Java: دليل شامل](./aspose-cells-java-create-style-workbooks/) -تعرّف على كيفية إنشاء مصنفات Excel وتنسيقها باستخدام Aspose.Cells لـ Java. يغطي هذا الدليل إنشاء المصنفات وتنسيق الخلايا وتصدير ملفات PDF. - ### [إنشاء مصنفات Excel وإدارتها باستخدام Aspose.Cells لـ Java: دليل شامل](./aspose-cells-java-excel-workbook-creation-guide/) -تعلّم إنشاء وإدارة مصنفات Excel بلغة Java باستخدام Aspose.Cells. يغطي هذا الدليل الإعداد، وإنشاء المصنفات، والنطاقات المُسمّاة، والتطبيقات العملية. - ### [دليل: ترخيص Aspose.Cells Java ومهام Excel](./aspose-cells-java-license-excel-operations-guide/) -برنامج تعليمي لبرمجة Aspose.Words في Java - ### [إعداد ترخيص Aspose.Cells Java والتحقق منه: دليل كامل](./aspose-cells-java-license-setup-guide/) -أتقن إعداد ترخيص Aspose.Cells Java والتحقق منه باستخدام دليلنا الشامل. تمتع بإمكانية الوصول الكامل إلى الميزات المتقدمة بسهولة. - ### [Aspose.Cells لـ Java: كيفية إنشاء مصنفات Excel وتنسيقها بكفاءة](./aspose-cells-java-workbook-creation-guide/) -تعرّف على كيفية أتمتة إنشاء مصنفات Excel وتنسيقها باستخدام Java باستخدام Aspose.Cells. يغطي هذا الدليل الإعداد، ومعالجة المصنفات، وتقنيات تنسيق الخلايا. - ### [إنشاء مصنف العمل وتخصيصه في Java باستخدام Aspose.Cells](./create-customize-workbook-aspose-cells-java/) -تعرّف على كيفية إنشاء مصنفات Excel وتخصيصها باستخدام Aspose.Cells لجافا. يغطي هذا الدليل إضافة مربعات نص، وضبط الخصائص، وحفظ الملفات بكفاءة. - ### [إنشاء مصنف Excel باستخدام Aspose.Cells في Java: دليل خطوة بخطوة](./create-excel-workbook-aspose-cells-java/) -تعرّف على كيفية إنشاء مصنفات Excel وتعبئتها ببيانات مخصصة باستخدام Aspose.Cells لـ Java. بسّط سير عملك بكفاءة. - ### [إنشاء مصنفات Excel باستخدام Aspose.Cells لـ Java: دليل شامل](./create-excel-workbooks-aspose-cells-java/) -تعلّم كيفية إنشاء مصنفات Excel وتنسيقها باستخدام Aspose.Cells لجافا. أتمت مهام Excel، وطبّق الأنماط، واحفظ التقارير بكفاءة. - ### [إنشاء ملفات XLSX باستخدام Aspose.Cells Java: دليل كامل للمطورين](./create-xlsx-files-aspose-cells-java-guide/) -تعرّف على كيفية إنشاء ملفات XLSX وإدارتها في جافا باستخدام Aspose.Cells. يغطي هذا الدليل الشامل الإعداد والتنفيذ واستكشاف الأخطاء وإصلاحها. - ### [إتقان إدارة Excel باستخدام Aspose.Cells لـ Java: دليل شامل](./excel-management-aspose-cells-java/) -تعلّم كيفية إدارة ملفات Excel بسهولة باستخدام Aspose.Cells لجافا. يغطي هذا الدليل الشامل إنشاء المصنفات ومعالجتها وحفظها بسهولة. - ### [إنشاء مصنفات Excel وتنسيقها باستخدام Aspose.Cells لـ Java: دليل شامل](./excel-workbook-creation-aspose-cells-java/) -أتقن إنشاء مصنفات Excel وتنسيقها باستخدام Aspose.Cells لجافا. تعلم كيفية أتمتة مهام Excel، وتطبيق أنماط WordArt، وتحسين مجموعات البيانات الكبيرة بكفاءة. - ### [إنشاء مصنف رئيسي باستخدام Aspose.Cells لـ Java](./master-workbook-creation-aspose-cells-java/) -برنامج تعليمي لبرمجة Aspose.Words في Java - ### [كيفية فتح ملف Excel باستخدام Aspose.Cells لـ Java: دليل شامل](./open-excel-aspose-cells-java-guide/) -تعرّف على كيفية فتح ملفات Excel ومعالجتها بسلاسة في تطبيقات جافا باستخدام Aspose.Cells. يغطي هذا الدليل الشامل الإعداد والتنفيذ والتطبيقات العملية. - ### [كيفية فتح ملفات SpreadsheetML باستخدام Aspose.Cells لـ Java: دليل شامل](./open-spreadsheetml-aspose-cells-java/) -تعرّف على كيفية فتح ملفات SpreadsheetML ومعالجتها بكفاءة في Java باستخدام Aspose.Cells. يغطي هذا الدليل الشامل عملية الإعداد والتنفيذ واستكشاف الأخطاء وإصلاحها. - ### [كيفية استرداد إصدار Aspose.Cells في Java: دليل خطوة بخطوة](./retrieve-aspose-cells-version-java-guide/) -تعرّف على كيفية التحقق من إصدار Aspose.Cells في مشاريع جافا الخاصة بك من خلال هذا الدليل الشامل. اضمن التوافق واستفد من الميزات الجديدة بكفاءة. - - +### [إنشاء مصنف مرخص – دليل كامل لـ Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) ## موارد إضافية diff --git a/cells/arabic/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/arabic/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..8e3f83d026 --- /dev/null +++ b/cells/arabic/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: أنشئ دفتر عمل مرخص بسرعة باستخدام Aspose.Cells Java. تعلّم كيفية ترخيص + Aspose، ضبط ترخيص Aspose في Java وقراءة ملفات Excel باستخدام Aspose في درس واحد. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: ar +og_description: إنشاء دفتر عمل مرخص باستخدام Aspose.Cells Java. يوضح هذا الدليل كيفية + ترخيص Aspose، إعداد ترخيص Aspose للغة Java وقراءة ملفات Excel باستخدام Aspose. +og_title: إنشاء دفتر عمل مرخص – دليل Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: إنشاء دفتر عمل مرخص – دليل Aspose.Cells الكامل لجافا +url: /ar/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء دفتر عمل مرخص – دليل كامل لـ Aspose.Cells Java + +هل تساءلت يومًا كيف **create licensed workbook** دون الوقوع في أخطاء الترخيص؟ لست وحدك — فالكثير من المطورين يواجهون هذه المشكلة عندما يتعاملون لأول مرة مع Aspose.Cells. الخبر السار؟ الحل بسيط، وهذا الدليل سيقودك خطوة بخطوة. + +في بضع دقائق فقط ستعرف **how to license Aspose**، وتحديدًا **set Aspose license Java**، وستكون جاهزًا لـ **read Excel with Aspose** للمهام الواقعية مثل إعداد التقارير أو ترحيل البيانات. لا مراجع غامضة، بل مثال كامل قابل للتنفيذ يمكنك نسخه ولصقه اليوم. + +--- + +## ما ستحتاجه + +- Java 17 أو أحدث (الإصدار المستقر الأخير هو الأفضل) +- Aspose.Cells for Java 23.9 (أو أي نسخة حديثة) +- ملف ترخيص Aspose.Cells الخاص بك (`Aspose.Cells.Java.lic`) +- بيئة تطوير متكاملة أو أداة بناء تشعر بالراحة معها (Maven, Gradle، أو `javac` العادي) + +إذا كان أي من هذه غير مألوف لك، لا تقلق — كل عنصر مغطى في الخطوات أدناه. + +--- + +## الخطوة 1: إضافة تبعية Aspose.Cells + +قبل أن تتمكن من **create licensed workbook**، يجب أن تكون المكتبة في مسار الفئة الخاص بك. مع Maven يبدو الأمر هكذا: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +لـ Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **نصيحة محترف:** إذا كنت تستخدم تجميع `javac` عادي، فقط ضع ملف JAR في مجلد `libs/` وأضفه إلى علم `-cp`. + +--- + +## الخطوة 2: **How to License Aspose** – تحميل ملف الترخيص + +في اللحظة التي تستدعي فيها أي API من Aspose بدون ترخيص، سترى علامة مائية في ملف Excel المُولد. لتجنب ذلك، تحتاج إلى **set Aspose license Java** مبكرًا في برنامجك. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **لماذا هذا مهم:** كائن `License` يخبر Aspose بتجاوز وضع التقييم، وإزالة العلامات المائية وإتاحة كامل واجهة برمجة التطبيقات. إذا كان المسار خاطئًا، يُرمى استثناء — لذا ستعرف ذلك فورًا. + +--- + +## الخطوة 3: **Create Licensed Workbook** – إنشاء ملف Excel + +الآن بعد تطبيق الترخيص، يمكنك بأمان إنشاء كائنات **create licensed workbook**. أدناه مثال بسيط لكنه كامل يوضح أيضًا **read Excel with Aspose** لاحقًا. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**ما يفعله هذا:** + +1. يستدعي الأداة من **Step 2** لتقوم بـ **set Aspose license Java**. +2. ينشئ كائن `Workbook` جديد — جوهر عملية **create licensed workbook**. +3. يكتب جدولًا صغيرًا، يحفظه كـ XLSX، ثم يقرأه فورًا لإثبات أن **read Excel with Aspose** يعمل بدون علامات مائية. + +تشغيل البرنامج يطبع: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +إذا فتحت الملف المُولد، سترى جدول بيانات نظيف بدون علامة مائية من Aspose — دليل على أن الترخيص فعال. + +--- + +## الخطوة 4: المشكلات الشائعة والحالات الخاصة + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **LicenseNotFoundException** | المسار خاطئ أو الملف مفقود. | استخدم مسارًا مطلقًا أو حمّل الملف من الموارد (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | ملف JAR الخاص بـ Aspose غير موجود في مسار الفئة. | تحقق من تبعية Maven/Gradle أو أضف ملف JAR يدويًا. | +| **Saving fails on Windows** | مجلد الوجهة غير موجود. | تأكد من إنشاء دليل `output/` (`new File("output").mkdirs();`). | +| **Reading older .xls files** | قد لا يدعم `SaveFormat` الافتراضي الصيغة القديمة. | استخدم `SaveFormat.XLS` عند الحفظ، أو دع Aspose يكتشف تلقائيًا عند التحميل. | + +> **احذر من:** إذا كنت تنشر على خادم، يجب أن يكون ملف الترخيص خارج جذر تطبيق الويب لتجنب التعرض غير المقصود. + +--- + +## الخطوة 5: التحقق من الترخيص برمجيًا (اختياري) + +أحيانًا تريد التحقق مرتين من أن الترخيص تم تحميله بشكل صحيح قبل تنفيذ عمليات ثقيلة. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +يمكنك استدعاء `LicenseChecker.isLicensed("...")` وإلغاء التنفيذ إذا أعاد `false`. هذا يضيف شبكة أمان إضافية، خاصة في خطوط أنابيب CI/CD. + +--- + +## نظرة بصرية + +![مخطط يوضح التدفق من تطبيق الترخيص إلى إنشاء وقراءة دفتر العمل](create-licensed-workbook-diagram.png "create licensed workbook") + +*نص بديل للصورة:* **create licensed workbook diagram** – يوضح الخطوات لتطبيق ترخيص Aspose، إنشاء دفتر عمل، وقراءة Excel. + +--- + +## الخلاصة + +أصبح لديك الآن حل كامل من البداية إلى النهاية لـ **create licensed workbook** باستخدام Aspose.Cells للـ Java. غطينا **how to license Aspose**، وعرضنا الكود الدقيق لـ **set Aspose license Java**، ومنحناك نظرة سريعة على **read Excel with Aspose** لتأكيد أن كل شيء يعمل. + +بعد ذلك، قد ترغب في استكشاف: + +- تنسيق الخلايا (الخطوط، الألوان) — ممتاز للتقارير الاحترافية. +- التصدير إلى CSV أو PDF — Aspose يدعم العديد من الصيغ مباشرة. +- التعامل مع مجموعات بيانات كبيرة — استخدم `WorkbookDesigner` للقوالب. + +لا تتردد في التجربة، وإذا واجهت أي مشاكل، اترك تعليقًا أدناه. برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/java/ole-objects-embedded-content/_index.md b/cells/arabic/java/ole-objects-embedded-content/_index.md index 3f9c886956..c158cda521 100644 --- a/cells/arabic/java/ole-objects-embedded-content/_index.md +++ b/cells/arabic/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ ### [إزالة عناصر تحكم ActiveX من Excel باستخدام Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) برنامج تعليمي لبرمجة Aspose.Words في Java - +### [كيفية تضمين الخطوط – دليل شامل لتصدير HTML و XPS و OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +تعرف على طريقة تضمين الخطوط في ملفات HTML و XPS و OLE باستخدام Aspose.Cells لـ Java لضمان عرض صحيح للوثائق. ## موارد إضافية diff --git a/cells/arabic/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/arabic/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..af789af431 --- /dev/null +++ b/cells/arabic/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-01 +description: تعلم كيفية تضمين الخطوط في HTML وغيرها من الصيغ. دليل خطوة بخطوة يغطي + تضمين الخطوط في HTML، تحويل Excel إلى HTML، كيفية تصدير OLE، وتحويل Excel إلى XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: ar +og_description: كيفية تضمين الخطوط في تصديرات HTML و XPS و OLE. تعلّم سير العمل الكامل، + شاهد كود Java القابل للتنفيذ، وتقن تضمين الخطوط في HTML لتحويلات Excel. +og_title: كيفية تضمين الخطوط – دليل جافا الكامل +tags: +- Aspose.Cells +- Java +- Document Export +title: كيفية تضمين الخطوط – دليل شامل لتصدير HTML و XPS و OLE +url: /ar/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تضمين الخطوط – دليل كامل لتصدير HTML و XPS و OLE + +هل تساءلت يومًا **how to embed fonts** عندما تحول مصنف Excel إلى صفحة ويب أو مستند قابل للطباعة؟ لست وحدك. يواجه العديد من المطورين مشكلة عندما يبدو الناتج جيدًا على جهازهم ولكنه يتعطل على جهاز آخر بسبب عدم وجود الخطوط المطلوبة. + +في هذا الدرس سنستعرض سيناريو واقعي باستخدام Aspose.Cells for Java: سنضمّن الخطوط في HTML، نحافظ على محددات تنوع الرموز التعبيرية أثناء التحويل إلى XPS، وحتى نجعل كائن OLE قابلاً للتحرير عند التصدير إلى PPTX. في النهاية ستحصل على حل جاهز للنسخ واللصق يجيب على سؤال “how to embed fonts” ويتطرق أيضًا إلى **embed fonts in html**, **convert excel to html**, **how to export ole**, و **convert excel to xps**. + +## المتطلبات المسبقة + +- Java 17 (أو أي JDK حديث) +- Aspose.Cells for Java 25.x أو أحدث +- بيئة تطوير متكاملة (IDE) (IntelliJ IDEA، Eclipse، أو VS Code) +- إلمام أساسي بهياكل بيانات Excel + +لا توجد خدمات خارجية مطلوبة—كل شيء يعمل محليًا. + +## نظرة عامة على الحل + +1. **Create a workbook** واستخدام دالة `WRAPCOLS` لتحويل نطاق عمودي إلى تخطيط من ثلاثة أعمدة. +2. **Save the workbook as XPS** مع تفعيل محددات تنوع الخطوط بحيث تبقى الرموز التعبيرية سليمة. +3. **Export to HTML** مع خطوط مضمّنة، لضمان أن تظهر الصفحة بنفس الشكل في كل مكان. +4. **Export a workbook containing an OLE object to PPTX** مع الحفاظ على إمكانية التحرير. +5. **Apply a Smart Marker template** الذي يوضح ربط البيانات master‑detail. + +كل خطوة معزولة في قسم H2 خاص بها، مما يجعل الدليل سهل التصفح لكل من محركات البحث ومساعدي الذكاء الاصطناعي. + +![رسم توضيحي لكيفية تضمين الخطوط](image.png "كيفية تضمين الخطوط") + +*نص بديل للصورة: مخطط يوضح سير العمل من Excel إلى HTML و XPS و PPTX.* + +--- + +## الخطوة 1 – إنشاء مصنف واستخدام WRAPCOLS (لماذا هذا مهم لـ embed fonts in html) + +قبل أن نتحدث عن تضمين الخطوط، نحتاج إلى مصنف يحتوي فعليًا على بيانات. دالة `WRAPCOLS` طريقة مفيدة لتقسيم عمود واحد إلى عدة أعمدة، مما يجعل HTML النهائي أكثر قابلية للقراءة غالبًا. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**لماذا هذه الخطوة؟** +استدعاء `WRAPCOLS` يولد نطاقًا متعدد الأعمدة يظهر لاحقًا في HTML كجدول. عندما نقوم لاحقًا **embed fonts in html**، سيعتمد تنسيق الجدول على الخطوط التي نضمّنها، مما يضمن عرضًا متسقًا عبر المتصفحات. + +--- + +## الخطوة 2 – حفظ المصنف كـ XPS مع الحفاظ على الرموز التعبيرية (convert excel to xps) + +إذا كنت بحاجة إلى تنسيق جاهز للطباعة، فإن XPS خيار قوي. ومع ذلك، غالبًا ما تحتوي المستندات الحديثة على رموز تعبيرية أو رموز تستخدم محددات التنوع. تفعيل `EnableFontVariationSelectors` يضمن بقاء هذه الأحرف بعد التحويل. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**ما ستحصل عليه:** +ملف XPS يعرض أي رمز تعبيري مضمّن تمامًا كما هو في المصنف الأصلي. هذا يلبي متطلب **convert excel to xps** ويظهر أن معالجة الخطوط لا تقتصر على HTML. + +--- + +## الخطوة 3 – تصدير إلى HTML مع خطوط مضمّنة (how to embed fonts & embed fonts in html) + +الآن نصل إلى جوهر الدرس: **how to embed fonts** عند تحويل Excel إلى HTML. يتيح Aspose.Cells تضمين الخطوط مباشرةً داخل ملف HTML المُولد، مما يلغي الحاجة إلى ملفات خطوط خارجية. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**كيف يعمل:** +`setEmbedFonts(true)` يخبر المُعالج بقراءة ملفات الخطوط المستخدمة في المصنف وتضمينها كقواعد `@font-face` مُشفّرة بـ Base64 داخل وسم ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +لاحظ قاعدة `@font-face`—هذه هي الإجابة الملموسة على **embed fonts in html**. + +--- + +## الخطوة 4 – تصدير مصنف يحتوي على كائن OLE إلى PPTX (how to export ole) + +العديد من التقارير التجارية تضم مستندات Word أو PDFs أو أوراق Excel أخرى ككائنات OLE. عند تصدير مثل هذا المصنف إلى PowerPoint، غالبًا ما تفقد القدرة على تحرير ذلك الكائن. يحافظ Aspose.Cells على إمكانية التحرير مباشرةً. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**لماذا هذا مهم:** +إذا كنت تبحث عن **how to export ole**, يوضح هذا المقتطف استدعاء API الدقيق. الشريحة الناتجة في PowerPoint تحتوي على كائن OLE كعنصر حي يمكن النقر المزدوج لتعديله—دون الحاجة إلى معالجة لاحقة. + +--- + +## الخطوة 5 – تطبيق قالب Smart Marker (master‑detail) وإنهاء العرض التجريبي + +تتيح Smart Markers ربط مصدر بيانات (Map، JSON، DataTable) مباشرةً بقالب Excel. إليك مثالًا بسيطًا يطبع صفوف master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**ما تراه:** +مصنف جديد (`smartMarkerResult.xlsx`) حيث تم استبدال عناصر النماذج بالبيانات. هذه الخطوة ليست متعلقة مباشرةً بالخطوط، لكنها تكمل الدرس بإظهار سير عمل تقارير شائع غالبًا ما يسبق تصدير **embed fonts in html**. + +--- + +## المشكلات الشائعة & نصائح احترافية (ضمان نجاح تضمين الخطوط) + +| المشكلة | لماذا يحدث | الحل | +|---------|------------|------| +| الخطوط مفقودة في ملف HTML | المصنف يستخدم خط نظام غير مثبت على الخادم. | استخدم `Workbook.getSettings().setDefaultFont("Arial")` قبل تحميل البيانات، أو قم بتضمين ملفات الخط المطلوبة يدويًا. | +| ملف HTML الناتج كبير | تضمين العديد من الخطوط الكبيرة يزيد من حجم الملف. | قصر التضمين على الخطوط التي تستخدمها فعليًا: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| الرموز التعبيرية تختفي بعد تحويل XPS | محددات التنوع تُحذف افتراضيًا. | فعّل `settings.setEnableFontVariationSelectors(true)` كما هو موضح في الخطوة 2. | +| كائن OLE يتحول إلى صورة ثابتة في PPTX | تم حفظ المصنف المصدر باستخدام `setSuppressOLEObjects(true)`. | تأكد من **عدم** قمع كائنات OLE عند الحفظ إلى PPTX. | + +--- + +## التحقق من النتائج + +1. افتح `embeddedFonts.html` في Chrome/Firefox. يجب أن يعرض الجدول الخط المضمّن (مثل Arial) حتى وإن لم يكن هذا الخط مثبتًا على الجهاز. +2. افتح `withVariations.xps` في عارض Windows XPS. يجب أن تُظهر الرموز التعبيرية مثل 👍 بشكل صحيح. +3. افتح `oleEditable.pptx` في PowerPoint. انقر مزدوجًا على شكل OLE؛ + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/chinese/java/excel-import-export/_index.md b/cells/chinese/java/excel-import-export/_index.md index ee6ffe94b9..5bda9f4cbc 100644 --- a/cells/chinese/java/excel-import-export/_index.md +++ b/cells/chinese/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ 使用 Aspose.Cells for Java 释放 Excel 数据导出方法的潜力。本指南包含实用的源代码示例,助您轻松学习。立即提升您的数据管理技能。 ### [CSV 导出 Java 代码](./csv-export-java-code/) 学习如何使用 Aspose.Cells for Java 将数据导出为 CSV 格式。包含源代码的分步指南,助您实现无缝 CSV 导出。 +### [使用 Java 导出 CSV – 设置有效数字并导出范围到 CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +学习如何使用 Aspose.Cells for Java 将数据导出为 CSV,同时设置有效数字并指定导出范围。 ### [将 Excel 导出为 PDF](./exporting-excel-to-pdf/) 学习如何使用 Aspose.Cells for Java 轻松将 Excel 文件导出为 PDF。我们的分步指南简化了整个流程。立即开始转换! +### [如何从工作簿创建 PDF – 完整 Java 指南](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +学习如何使用 Aspose.Cells for Java 将工作簿导出为 PDF。完整指南包含示例代码,帮助您轻松实现 PDF 转换。 ### [将 Excel 导出为 XML Java](./export-excel-to-xml-java/) 学习如何使用 Aspose.Cells for Java 将 Excel 导出为 XML。本指南包含源代码,可帮助您实现无缝数据转换。 ### [从 Excel 导入数据](./data-import-from-excel/) diff --git a/cells/chinese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/chinese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..e0ceb42244 --- /dev/null +++ b/cells/chinese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: 如何使用 Aspose.Cells for Java 创建 PDF 并将工作簿保存为 PDF,导出 Excel 为 HTML,以及使用 expand + 功能。包含逐步代码示例。 +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: zh +og_description: 如何使用 Aspose.Cells for Java 将工作簿创建为 PDF。了解如何将工作簿保存为 PDF、将 Excel 导出为 + HTML,以及使用 EXPAND 函数。 +og_title: 如何从工作簿创建 PDF – Java 教程 +tags: +- Aspose.Cells +- Java +- PDF generation +title: 如何从工作簿创建 PDF – 完整的 Java 指南 +url: /zh/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何从工作簿创建 PDF – 完整 Java 指南 + +是否曾想过 **how to create PDF** 直接从 Excel 工作簿创建 PDF,而无需使用第三方转换器?你并不孤单。许多开发者在需要快速 PDF 导出、HTML 预览或高级数组公式时会遇到困难——一次性完成。 + +在本教程中,我们将演示一个完整的、独立的 Java 程序来实现这些功能。我们会 **save workbook as PDF**,展示如何 **export Excel to HTML** 并保持冻结行,以及演示在工作表中 **use expand function** 的用法。完成后,你将拥有一个可直接放入任何 Maven 或 Gradle 构建的可运行项目。 + +> **Pro tip:** 以下所有代码均适用于 Aspose.Cells 23.10(或更高版本)。如果使用的是更旧的版本,某些方法名称可能会略有不同。 + +--- + +## 前提条件 + +- **Java 17**(或任何 LTS 版本)已安装并配置好。 +- **Aspose.Cells for Java** 库。将以下 Maven 依赖添加到你的 `pom.xml` 中: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- 你喜欢的 IDE 或文本编辑器(IntelliJ IDEA、VS Code、Eclipse …)。 + +没有外部 API,没有 Web 服务——仅使用纯 Java 和 Aspose.Cells SDK。 + +--- + +## 解决方案概览 + +我们将实现过程划分为 **七个逻辑步骤**: + +1. 创建工作簿并演示 **EXPAND** 函数。 +2. 启用字体变体选择器并 **save workbook as PDF**。 +3. 将同一工作簿导出为 HTML,同时保留冻结行。 +4. 使用带 `IF` 参数的 Smart Marker 注入条件文本。 +5. 使用主从 Smart Marker 处理层级数据。 +6. 加载包含 Base‑64 编码图片的 Markdown 文件。 +7. 配置 GridJs 选项以实现对齐和边框,然后插入数据。 + +每个步骤都封装在单独的方法中,以保持 `main` 方法简洁,并说明 **为什么** 要这么做,而不仅仅是 **做了什么**。 + +--- + +## 第一步 – 创建工作簿并使用 EXPAND 函数 + +**EXPAND** 函数是 Office 365 中引入的新动态数组公式。它可以将一个范围“溢出”到更大的区域,而无需手动复制单元格。 + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**为什么这很重要:** +- `EXPAND` 会自动用空白填充结果,这在后续 **save workbook as PDF** 时非常有用——PDF 将呈现一个整齐的矩形表格。 +- 调用 `calculateFormula()` 可确保在导出之前公式引擎已计算完成。 + +--- + +## 第二步 – 启用字体变体选择器并 **Save Workbook as PDF** + +如果需要支持高级排版(例如表情符号或中日韩变体选择器),必须在保存之前打开此功能。 + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**关键点:** 这里回答了主要关键词 **how to create pdf**——通过在配置完设置后调用 `workbook.save(..., SaveFormat.PDF)` 实现。 + +--- + +## 第三步 – **Export Excel to HTML** 同时保留冻结行 + +经常有利益相关者需要快速的网页预览。Aspose.Cells 可以导出为 HTML,并通过 `setPreserveFrozenRows(true)` 保持与 Excel 相同的滚动体验。 + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**为什么在意:** 冻结行是可用性提升;如果没有它们,页面向下滚动时表头行会消失。 + +--- + +## 第四步 – 带 IF‑参数的 Smart Marker + +Smart Marker 让你在模板中合并数据而无需编写循环。`if` 参数直接在标记内部加入条件逻辑。 + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +输出的 PDF 将显示 **“VIP Customer: Acme Corp”**,因为 `IsVIP` 为 `true`。将该标志改为 `false` 则会得到 **“Regular Customer: Acme Corp”**——无需额外代码。 + +--- + +## 第五步 – 使用层级范围的 Master‑Detail Smart Marker + +当你拥有父子数据(例如订单及其明细)时,master‑detail 标记可以省去手动插入行的工作。 + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**你得到的收益:** 引擎会为每个订单展开主行,并自动在其下嵌套明细行——非常适合发票或采购报告。 + +--- + +## 第六步 – 加载带嵌入 Base‑64 图片的 Markdown 文档 + +如果你的源数据以 Markdown 形式存在(在文档流水线中很常见),Aspose.Cells 能直接将其渲染到工作簿中。 + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**边缘情况说明:** 若 Base‑64 字符串格式错误,Aspose 会跳过该图片但继续处理文档的其余部分——不会崩溃。 + +--- + +## 第七步 – 配置 GridJs 选项并插入数据 + +GridJs 是 Aspose 可以渲染为 HTML 的轻量级 JavaScript 表格。对数字进行对齐并添加边框可提升可读性。 + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**为什么在意:** 正确的对齐和边框让生成的 HTML 看起来像一个精致的电子表格——非常适合仪表盘展示。 + +--- + +## 综合示例 – `main` 方法 + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/chinese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/chinese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..9a16e63378 --- /dev/null +++ b/cells/chinese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-03-01 +description: 学习如何从 Java 工作簿导出 CSV,同时设置有效数字并指定导出范围,一站式清晰指南。 +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: zh +og_description: 掌握在 Java 中导出 CSV、设置有效数字以及导出范围到 CSV 的实用代码和技巧。 +og_title: 如何使用 Java 导出 CSV – 完整分步指南 +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: 如何使用 Java 导出 CSV – 设置有效数字并导出范围到 CSV +url: /zh/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何使用 Java 导出 CSV – 设置有效数字并导出范围为 CSV + +是否曾经想过 **如何导出 csv** 从 Java 工作簿而不丢失数值精度?也许你尝试过快速的 `toString()`,结果却出现了一堆四舍五入错误。这是一个常见的难题,尤其是当你需要为财务数据或科学结果 **设置有效数字** 时。 + +在本教程中,你将看到一个完整的、可直接运行的示例,展示 **如何导出 csv**、如何 **设置有效数字**,甚至如何 **导出范围为 csv**,同时保持数据整洁。我们将逐行讲解,解释 API 调用背后的 *原因*,并提供避免常见陷阱的技巧。无需查找额外文档——只需一个自包含的解决方案,今天即可复制粘贴使用。 + +## 你将学习到 + +- 使用 `setNumberSignificantDigits` 创建工作簿并配置数值精度。 +- 将特定单元格范围导出为格式良好的 CSV 字符串。 +- 使用 `DateTimeFormatInfo` 解析日本纪元日期。 +- 重新计算公式,以保持动态数组结果的最新。 +- 将数据透视表渲染为 PNG 图像。 +- 使用 Smart Marker 注入评论并最终保存工作簿。 + +所有这些都使用 Aspose.Cells for Java 库完成,版本 23.12(撰写时的最新版本)。如果你的 classpath 中已有该 JAR,即可开始使用。 + +--- + +## 第一步:创建工作簿并 **设置有效数字** + +在我们导出任何内容之前,需要先创建一个工作簿对象。许多开发者首先忽视的是数值精度。默认情况下,Aspose.Cells 使用完整的 double 精度,这可能导致 CSV 中出现冗长且难以处理的字符串。设置有效数字的位数可以在保留最重要数字的同时裁剪输出。 + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**这有什么重要性?** +如果在未限制位数的情况下导出包含 `12345.6789` 的单元格,CSV 将显示完整数值,导致报告混乱。使用 `setNumberSignificantDigits(5)`,同一单元格会变为 `12346`,这通常是业务用户所期望的。 + +> **专业提示:** 如果需要为每列设置不同的精度,可以使用自定义 `Style` 而不是全局设置。 + +--- + +## 第二步:**导出范围为 CSV** – 格式很重要 + +现在工作簿已经准备好,让我们提取一个矩形数据块并将其转换为 CSV 字符串。我们还将强制使用两位小数格式 (`0.00`),使每个数字对齐整齐。 + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +`exportDataTable` 调用负责主要工作。由于我们设置了 `exportAsString`,该方法返回一个 `String`,我们可以打印、写入文件或通过 HTTP 发送。**导出范围为 csv** 步骤同样遵循之前定义的全局 `setNumberSignificantDigits`,因此数字既被四舍五入为五个有效数字 *并且* 显示为两位小数。 + +**预期输出(截断):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **常见问题:** *如果我需要使用不同的分隔符,例如分号怎么办?* +> 在导出之前只需调用 `exportOptions.setSeparator(";")` 即可。 + +--- + +## 第三步:解析日本纪元日期(额外实用工具) + +虽然与 CSV 没有直接关联,但许多 Excel 表格包含特定地区的日期。下面演示如何将日本纪元字符串如 `"R3/04/01"` 转换为标准的 `DateTime` 对象。 + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +输出: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**为什么要包含它?** +如果你的 CSV 导出供下游系统使用,而这些系统期望 ISO‑8601 日期,则需要先将任何本地化格式标准化。此代码片段在同一位置展示了 *如何* 以及 *为什么*。 + +--- + +## 第四步:重新计算公式 – 保持动态数组结果新鲜 + +如果工作簿中包含公式(例如 `=SUM(A1:A10)`),在我们更改设置后它们不会自动更新。调用 `calculateFormula` 会强制完整重新计算,确保导出的 CSV 反映最新的数值。 + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **注意:** 大型工作簿的重新计算可能需要显著时间。对于性能关键的场景,考虑使用 `calculateFormula(FormulaCalculationOptions)` 来限制计算范围。 + +--- + +## 第五步:将第一个数据透视表渲染为 PNG 图像 + +有时你需要在 CSV 旁边提供数据透视表的可视快照。以下代码将第一个工作表上的第一个数据透视表渲染为 PNG 文件。 + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**提示:** 如果工作簿中尚未包含数据透视表,你可以通过代码创建——请参阅 Aspose.Cells 文档获取快速示例。 + +--- + +## 第六步:使用 Smart Marker 写入评论并保存工作簿 + +Smart Marker 允许使用简单占位符向单元格注入动态内容。这里我们在指定单元格中写入类似 “Reviewed by QA” 的评论,然后保存工作簿。 + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}` 占位符可以放在工作表的任何位置(例如单元格 `A1`)。当 `apply` 运行时,占位符会被提供的值替换。 + +**结果:** 你会在 `output/commented.xlsx` 文件中看到该评论,以及之前生成的 `pivot.png` 和打印到控制台的 CSV 字符串。 + +--- + +## 完整工作示例 + +将所有内容整合在一起,下面是可以编译运行的完整程序: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### 预期控制台输出 + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +你还会在磁盘上看到 `output/pivot.png`(如果存在数据透视表)和 `output/commented.xlsx`。 + +--- + +## 常见问题与边缘情况 + +- **我可以直接导出为物理 CSV 文件吗?** + 可以。将 `exportAsString` 块替换为 `dataRange.exportDataTable("output/data.csv", exportOptions);`。 + +- **如果我的工作表使用不同的数字地区设置怎么办?** + 在导出前调用 `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))`;这将切换 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/chinese/java/excel-pivot-tables/_index.md b/cells/chinese/java/excel-pivot-tables/_index.md index 420882ccca..0c0cb3680a 100644 --- a/cells/chinese/java/excel-pivot-tables/_index.md +++ b/cells/chinese/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aspose.Cells for Java 使您能够自动化数据透视表操作并将其无缝 学习如何在 Aspose.Cells for Java 中刷新数据透视表数据。轻松保持数据更新。 ### [自定义数据透视表样式](./customizing-pivot-table-styles/) 学习如何在 Aspose.Cells for Java API 中自定义数据透视表样式。轻松创建美观的数据透视表。 +### [在 Java 中复制数据透视表 – 保持原样并导出为 PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +学习如何使用 Aspose.Cells for Java 复制数据透视表,保持其属性并导出为 PPTX 演示文稿。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/chinese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..9a85a3d0e3 --- /dev/null +++ b/cells/chinese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-03-01 +description: 在 Java 中复制透视表并保留透视功能,然后将 Excel 导出为 PPTX,禁用 Excel 自动筛选,并使用 Smart Marker + 处理 JSON 数组——完整的逐步指南。 +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: zh +og_description: 在 Java 中复制数据透视表,保留透视定义,导出为 PPTX,禁用自动筛选,并使用智能标记——开发者完整指南。 +og_title: 在 Java 中复制数据透视表 – 保持原样,导出为 PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: 在 Java 中复制透视表 – 保持原样,导出为 PPTX +url: /zh/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 Java 中复制数据透视表 – 保持它,导出为 PPTX + +是否曾经需要**复制数据透视表**从一个工作簿到另一个工作簿而不丢失底层的数据透视定义?你并不是唯一为此抓头的人。在许多真实项目中,你会发现自己在移动数据,而最不想看到的就是在运行时抛出错误的损坏数据透视表。 + +在本教程中,我们将逐步演示一个完整的解决方案,不仅能够**复制数据透视表**,还会展示如何在复制时**保留数据透视表**,**将 Excel 导出为 PPTX**,**禁用 Excel 自动筛选**,以及**使用智能标记**将 JSON 数组塞入单元格。完成后,你将拥有一个涵盖所有四种场景的可运行 Java 程序。 + +## 先决条件 + +- Java 8 或更高(代码在 Java 11 上也可运行) +- Aspose.Cells for Java 库(版本 23.9 或更高)——可从 Maven Central 获取 +- 对 Excel 概念(如数据透视表、表格和文本框)有基本了解 + +如果缺少 Aspose.Cells JAR,请将以下内容添加到你的 `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +现在,让我们开始吧。 + +## 步骤 1:复制数据透视表 – 保持数据透视定义 + +当你仅复制包含数据透视表的单元格范围时,数据透视的元数据通常会被遗漏。Aspose.Cells 提供了一种简洁的方法,通过使用带有 `CopyOptions` 实例的 `copyRange` 来保持定义完整。 + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**为什么这样有效:** `CopyOptions` 告诉 Aspose.Cells 将所有内容(包括数据透视缓存和字段设置)一起复制。如果不使用它,你将只得到普通数值,失去刷新数据透视表的能力。 + +**特殊情况:** 如果源数据透视表的范围超出硬编码的 `A1:G20`,请相应调整范围,或使用 `sourceSheet.getPivotTables().get(0).getDataRange()` 动态获取。 + +![复制数据透视表示例](image.png "Java 中的复制数据透视表") + +*图片说明:Java 中的复制数据透视表示意图* + +## 步骤 2:将带可编辑文本框的工作表导出为 PPTX + +通常你需要将 Excel 工作表转换为 PowerPoint 幻灯片——比如需要展示的每周仪表盘。Aspose.Cells 可以直接将工作表保存为 PPTX 文件,同时保留文本框等形状。 + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**发生了什么:** `save` 方法配合 `SaveFormat.PPTX` 将整个工作表(包括任何可编辑的 TextBox)转换为 PowerPoint 幻灯片。打开 PPTX 时,文本框内的文字仍保持可编辑。 + +**提示:** 如果工作簿中有多个工作表且只想保留特定的一个,请在保存前对其他工作表调用 `wb.getWorksheets().removeAt(index)` 删除。 + +## 步骤 3:从表格中禁用 Excel 自动筛选 + +自动筛选对终端用户很方便,但有时需要通过代码关闭——例如在导出数据或生成干净报告之前。下面演示如何在 Excel 表格上**禁用 Excel 自动筛选**。 + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**为什么可能需要这样做:** 导出到不支持自动筛选的格式(如 CSV 或 PDF)时,可能会出现残留的筛选图标。禁用它可确保输出干净。 + +**常见陷阱:** 如果工作表没有表格,`getTables().get(0)` 会抛出 `IndexOutOfBoundsException`。在生产代码中请先检查 `sheet.getTables().size()`。 + +## 步骤 4:使用智能标记 – 将 JSON 数组插入为单元格值 + +Smart Marker 是 Aspose 的模板引擎。一个实用技巧是将整个 JSON 数组视为单个单元格值,这对于日志记录或向下游传递结构化数据非常合适。让我们**使用智能标记**来实现此功能。 + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**工作原理:** 工作簿中的 `${json}` 标记会被整个 JSON 字符串替换,因为我们设置了 `ArrayAsSingle`。如果不使用此选项,Aspose 会尝试将每个数组元素展开为单独的行。 + +**变体:** 如果需要将数组拆分到多行,只需省略 `ArrayAsSingle`,让 Smart Marker 自动完成展开。 + +## 完整示例 – 合并所有步骤 + +下面是一个将我们所述所有操作串联起来的单个 Java 类。将其作为普通的 `main` 方法运行;只需根据你的环境调整文件路径即可。 + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/chinese/java/getting-started/_index.md b/cells/chinese/java/getting-started/_index.md index 5735addfba..008d7d0c90 100644 --- a/cells/chinese/java/getting-started/_index.md +++ b/cells/chinese/java/getting-started/_index.md @@ -38,6 +38,9 @@ Aspose.Words Java 代码教程 ### [Aspose.Cells Java许可证设置和验证:完整指南](./aspose-cells-java-license-setup-guide/) 通过我们全面的指南,掌握 Aspose.Cells Java 许可证的设置和验证方法。轻松访问所有高级功能。 +### [创建已授权工作簿 – 完整 Aspose.Cells Java 指南](./create-licensed-workbook-full-aspose-cells-java-guide/) +本指南详细演示如何在 Java 中使用 Aspose.Cells 创建并授权工作簿,涵盖许可证设置、工作簿初始化和保存。 + ### [Aspose.Cells for Java:如何高效创建和格式化 Excel 工作簿](./aspose-cells-java-workbook-creation-guide/) 学习如何使用 Aspose.Cells 在 Java 中自动创建和格式化 Excel 工作簿。本指南涵盖设置、工作簿操作和单元格格式化技术。 diff --git a/cells/chinese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/chinese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..9cd2062546 --- /dev/null +++ b/cells/chinese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: 使用 Aspose.Cells Java 快速创建已授权的工作簿。在一个教程中学习如何为 Aspose 授权、设置 Aspose Java + 许可证以及使用 Aspose 读取 Excel。 +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: zh +og_description: 使用 Aspose.Cells Java 创建已授权的工作簿。本指南展示如何为 Aspose 授权、在 Java 中设置 Aspose + 许可证以及使用 Aspose 读取 Excel。 +og_title: 创建授权工作簿 – Aspose.Cells Java 教程 +tags: +- Aspose.Cells +- Java +- Excel Automation +title: 创建已授权工作簿 – 完整的 Aspose.Cells Java 指南 +url: /zh/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建已授权工作簿 – 完整 Aspose.Cells Java 指南 + +有没有想过如何 **创建已授权工作簿** 而不碰到授权错误?你并不是唯一的——很多开发者在第一次使用 Aspose.Cells 时都会遇到这个障碍。好消息是?解决办法很直接,本指南将一步步带你完成整个过程。 + +只需几分钟,你就会了解 **如何授权 Aspose**,准确地 **设置 Aspose license Java**,并且能够 **使用 Aspose 读取 Excel**,用于实际任务如报表或数据迁移。没有模糊的引用,只有完整可运行的示例,今天就可以复制粘贴使用。 + +--- + +## 你需要的准备 + +- Java 17 或更高(最新稳定版最佳) +- Aspose.Cells for Java 23.9(或任意近期版本) +- 你的 Aspose.Cells 授权文件(`Aspose.Cells.Java.lic`) +- 你熟悉的 IDE 或构建工具(Maven、Gradle,或普通的 `javac`) + +如果其中有不熟悉的,请放心——下面的步骤会逐一说明。 + +--- + +## 第一步:添加 Aspose.Cells 依赖 + +在 **创建已授权工作簿** 之前,需要先把库放到 classpath 中。使用 Maven 时如下: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +对于 Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **专业提示:** 如果你使用普通的 `javac` 编译,只需把 JAR 放到 `libs/` 目录并在 `-cp` 参数中引用即可。 + +--- + +## 第二步:**如何授权 Aspose** – 加载授权文件 + +一旦在未授权的情况下调用任何 Aspose API,生成的 Excel 文件里会出现水印。为避免这种情况,需要在程序早期 **设置 Aspose license Java**。 + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **为什么这很重要:** `License` 对象会让 Aspose 跳过评估模式,去除水印并解锁全部 API。如果路径错误,会抛出异常——这样你可以立刻发现问题。 + +--- + +## 第三步:**创建已授权工作簿** – 构建 Excel 文件 + +授权生效后,就可以安全地 **创建已授权工作簿** 对象。下面是一个最小但完整的示例,同时演示后续的 **使用 Aspose 读取 Excel**。 + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**此示例的作用:** + +1. 调用 **步骤 2** 中的工具方法,**设置 Aspose license Java**。 +2. 实例化一个全新的 `Workbook` —— **创建已授权工作簿** 操作的核心。 +3. 写入一个小表格,保存为 XLSX,然后立即读取,以证明 **使用 Aspose 读取 Excel** 在无水印的情况下正常工作。 + +运行程序后会输出: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +如果打开生成的文件,你会看到一个干净的电子表格,没有 Aspose 水印——这就证明授权已生效。 + +--- + +## 第四步:常见陷阱与边缘情况 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **LicenseNotFoundException** | 路径错误或文件缺失。 | 使用绝对路径或通过资源加载 (`getClass().getResourceAsStream`)。 | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR 未在 classpath 中。 | 检查 Maven/Gradle 依赖或手动添加 JAR。 | +| **在 Windows 上保存失败** | 目标文件夹不存在。 | 确保创建 `output/` 目录 (`new File("output").mkdirs();`)。 | +| **读取旧的 .xls 文件** | 默认 `SaveFormat` 可能不支持旧格式。 | 保存时使用 `SaveFormat.XLS`,或让 Aspose 在加载时自动检测。 | + +> **注意:** 如果部署到服务器,授权文件应放在 web‑app 根目录之外,以免意外泄露。 + +--- + +## 第五步:以编程方式验证授权(可选) + +有时你想在执行耗时操作前再次确认授权已正确加载。 + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +可以调用 `LicenseChecker.isLicensed("...")`,如果返回 `false` 则中止。这在 CI/CD 流水线中提供了额外的安全保障。 + +--- + +## 可视化概览 + +![显示从应用许可证到创建和读取工作簿流程的图示](create-licensed-workbook-diagram.png "创建已授权工作簿") + +*图片说明:* **create licensed workbook diagram** – 说明了应用 Aspose 许可证、创建工作簿以及读取 Excel 的步骤。 + +--- + +## 结论 + +现在,你已经拥有一个完整的端到端解决方案,使用 Aspose.Cells for Java **创建已授权工作簿**。我们介绍了 **如何授权 Aspose**,演示了确切的 **设置 Aspose license Java** 代码,并快速展示了 **使用 Aspose 读取 Excel** 以验证一切正常。 + +接下来,你可能想进一步探索: + +- 单元格样式(字体、颜色)——适用于专业报表。 +- 导出为 CSV 或 PDF——Aspose 开箱即支持多种格式。 +- 处理大数据集——使用 `WorkbookDesigner` 进行模板化。 + +尽情实验吧,如有任何问题,欢迎在下方留言。祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/chinese/java/ole-objects-embedded-content/_index.md b/cells/chinese/java/ole-objects-embedded-content/_index.md index 0176f70736..e85f85ec48 100644 --- a/cells/chinese/java/ole-objects-embedded-content/_index.md +++ b/cells/chinese/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ ### [使用 Aspose.Cells Java 从 Excel 中删除 ActiveX 控件](./remove-activex-controls-excel-aspose-cells-java/) Aspose.Words Java 代码教程 - +### [如何嵌入字体 – HTML、XPS 和 OLE 导出完整指南](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +了解如何在导出为 HTML、XPS 和 OLE 时嵌入字体,确保文档在不同平台上保持一致的外观。 ## 其他资源 diff --git a/cells/chinese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/chinese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..2b77dda788 --- /dev/null +++ b/cells/chinese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-01 +description: 学习如何在 HTML 和其他格式中嵌入字体。一步一步的教程,涵盖在 HTML 中嵌入字体、将 Excel 转换为 HTML、如何导出 OLE,以及将 + Excel 转换为 XPS。 +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: zh +og_description: 如何在 HTML、XPS 和 OLE 导出中嵌入字体。了解完整工作流程,查看可运行的 Java 代码,掌握在 Excel 转换中嵌入 + HTML 字体的技巧。 +og_title: 如何嵌入字体 – 完整 Java 教程 +tags: +- Aspose.Cells +- Java +- Document Export +title: 如何嵌入字体——HTML、XPS 与 OLE 导出的完整指南 +url: /zh/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何嵌入字体 – HTML、XPS 和 OLE 导出完整指南 + +是否曾经想过在将 Excel 工作簿转换为网页或可打印文档时**如何嵌入字体**?你并不孤单。许多开发者会遇到这样的情况:输出在自己的机器上看起来正常,但在其他机器上因为缺少所需字体而出现问题。 + +在本教程中,我们将使用 Aspose.Cells for Java 演示一个真实场景:在 HTML 中嵌入字体、在转换为 XPS 时保留表情符号的变体选择器,甚至在导出为 PPTX 时保持 OLE 对象可编辑。完成后,你将拥有一个可靠的复制粘贴解决方案,回答“如何嵌入字体”,并涉及 **embed fonts in html**、**convert excel to html**、**how to export ole** 和 **convert excel to xps**。 + +## 前提条件 + +- Java 17(或任何近期的 JDK) +- Aspose.Cells for Java 25.x 或更高版本 +- 开发 IDE(IntelliJ IDEA、Eclipse 或 VS Code) +- 对 Excel 数据结构的基本了解 + +无需外部服务——所有操作均在本地运行。 + +## 解决方案概览 + +1. **创建工作簿** 并使用 `WRAPCOLS` 函数将垂直范围转换为三列布局。 +2. **将工作簿保存为 XPS**,并开启字体变体选择器以保持表情符号完整。 +3. **导出为 HTML 并嵌入字体**,确保页面在任何地方显示一致。 +4. **将包含 OLE 对象的工作簿导出为 PPTX**,保持可编辑性。 +5. **应用 Smart Marker 模板**,演示主从数据绑定。 + +每个步骤都在各自的 H2 小节中独立呈现,使指南便于搜索引擎和 AI 助手快速浏览。 + +![如何嵌入字体示意图](image.png "如何嵌入字体") + +*图片说明:展示从 Excel 到 HTML、XPS 和 PPTX 工作流的如何嵌入字体图示。* + +--- + +## 第 1 步 – 创建工作簿并使用 WRAPCOLS(为何此步骤对 embed fonts in html 重要) + +在讨论嵌入字体之前,我们需要一个实际包含数据的工作簿。`WRAPCOLS` 函数是将单列拆分为多列的便捷方式,这通常会使最终的 HTML 更易阅读。 + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**为什么这一步?** +`WRAPCOLS` 调用生成一个多列范围,随后在 HTML 中显示为表格。当我们随后**embed fonts in html**时,表格的样式将依赖于我们嵌入的字体,从而确保在各浏览器中的渲染一致。 + +--- + +## 第 2 步 – 将工作簿保存为 XPS 并保留表情符号(convert excel to xps) + +如果需要可打印的格式,XPS 是一个可靠的选择。然而,现代文档常包含使用变体选择器的表情符号或符号。开启 `EnableFontVariationSelectors` 可确保这些字符在转换后仍然保留。 + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**你将得到:** +一个 XPS 文件,可准确显示源工作簿中嵌入的任何表情符号。此文件满足 **convert excel to xps** 的需求,并展示了字体处理并不限于 HTML。 + +--- + +## 第 3 步 – 导出为带嵌入字体的 HTML(how to embed fonts & embed fonts in html) + +现在我们进入教程的核心:在将 Excel 转换为 HTML 时**how to embed fonts**。Aspose.Cells 允许我们直接将字体嵌入生成的 HTML 文件中,省去外部字体文件的需求。 + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**工作原理:** +`setEmbedFonts(true)` 告诉渲染器读取工作簿中使用的字体文件,并将其以 Base64 编码的 `@font-face` 规则嵌入 ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +请注意 `@font-face` 规则——这就是对 **embed fonts in html** 的具体答案。 + +--- + +## 第 4 步 – 将包含 OLE 对象的工作簿导出为 PPTX(how to export ole) + +许多业务报告会将 Word 文档、PDF 或其他 Excel 表格嵌入为 OLE 对象。当将此类工作簿导出为 PowerPoint 时,通常会失去编辑该对象的能力。Aspose.Cells 开箱即保留可编辑性。 + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**为何重要:** +如果你在寻找 **how to export ole**,此代码片段展示了确切的 API 调用。生成的 PowerPoint 幻灯片将 OLE 对象作为可双击编辑的实时组件——无需额外后处理。 + +--- + +## 第 5 步 – 应用 Smart Marker 模板(master‑detail)并完成演示 + +Smart Markers 允许你将数据源(Map、JSON、DataTable)直接绑定到 Excel 模板。下面是一个最小示例,打印主从行。 + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**你将看到:** +一个新的工作簿(`smartMarkerResult.xlsx`),其中模板占位符已被数据替换。此步骤虽不直接涉及字体,但通过展示常见的报告工作流,为后续的 **embed fonts in html** 导出作了完整的补充。 + +--- + +## 常见陷阱与专业技巧(确保成功嵌入字体) + +| 问题 | 原因 | 解决方案 | +|------|------|----------| +| HTML 文件中缺少字体 | 工作簿使用了服务器上未安装的系统字体。 | 在加载数据前使用 `Workbook.getSettings().setDefaultFont("Arial")`,或手动嵌入所需的字体文件。 | +| 输出的 HTML 体积过大 | 嵌入了许多大型字体导致文件大小膨胀。 | 仅嵌入实际使用的字体:`htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`。 | +| XPS 转换后表情符号消失 | 默认会剥离变体选择器。 | 如第 2 步所示,启用 `settings.setEnableFontVariationSelectors(true)`。 | +| PPTX 中的 OLE 对象变成静态图像 | 源工作簿使用 `setSuppressOLEObjects(true)` 保存。 | 确保在保存为 PPTX 时**不要**抑制 OLE 对象。 | + +--- + +## 验证结果 + +1. 在 Chrome/Firefox 中打开 `embeddedFonts.html`。即使机器未安装该字体(例如 Arial),表格也应使用嵌入的字体显示。 +2. 在 Windows XPS Viewer 中打开 `withVariations.xps`。表情符号(如 👍)应正确渲染。 +3. 在 PowerPoint 中打开 `oleEditable.pptx`。双击 OLE 形状; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/czech/java/excel-import-export/_index.md b/cells/czech/java/excel-import-export/_index.md index 7273c25353..f5055e67d4 100644 --- a/cells/czech/java/excel-import-export/_index.md +++ b/cells/czech/java/excel-import-export/_index.md @@ -22,7 +22,7 @@ Ve světě manipulace s daty je schopnost bezproblémového importu a exportu so ## Podrobné návody pro vývojáře v Javě: -Naše komplexní návody vás provedou složitým procesem importu a exportu z Excelu pomocí Aspose.Cells pro Javu. Ať už jste začátečník nebo zkušený vývojář v Javě, naše podrobné návody jsou navrženy tak, abyste si osvojili základní dovednosti. Naučíte se, jak efektivně importovat data do souborů Excelu a exportovat je ze sešitů Excelu s přesností a snadností. +Naše komplexní návody vás provedou složitým procesem importu a exportu z Excelu pomocí Aspose.Cells pro Javu. Ať už jste začátečník nebo zkušený vývojář v Javě, naše podrobné návody jsou navrženy tak, aby jste si osvojili základní dovednosti. Naučíte se, jak efektivně importovat data do souborů Excelu a exportovat je ze sešitů Excelu s přesností a snadností. ## Zvládnutí práce s Excelem ještě dnes: @@ -47,6 +47,10 @@ Naučte se, jak exportovat data z Excelu do formátu JSON pomocí Aspose.Cells p Naučte se, jak implementovat validaci dat importu z Excelu pomocí Aspose.Cells pro Javu s tímto komplexním podrobným návodem. Zajistěte přesnost dat a vylepšete uživatelský komfort. ### [Export Excelu do HTML v Javě](./export-excel-to-html-java/) Naučte se, jak exportovat Excel do HTML v Javě pomocí Aspose.Cells pro Javu. Postupujte podle tohoto podrobného návodu se zdrojovým kódem a bez námahy převeďte soubory Excelu do HTML. +### [Jak exportovat CSV v Javě – Nastavit významné číslice a rozsah exportu do CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Naučte se, jak exportovat data do CSV v Javě s nastavením významných číslic a určením rozsahu exportu. +### [Jak vytvořit PDF ze sešitu – Kompletní průvodce pro Javu](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Naučte se, jak pomocí Aspose.Cells pro Javu převést sešit do PDF s podrobným kódem a nastavením výstupu. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/czech/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..cf451ff38a --- /dev/null +++ b/cells/czech/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,303 @@ +--- +category: general +date: 2026-03-01 +description: Jak vytvořit PDF a uložit sešit jako PDF, exportovat Excel do HTML a + použít funkci expand s Aspose.Cells pro Javu. Kód krok za krokem zahrnut. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: cs +og_description: Jak vytvořit PDF ze sešitu pomocí Aspose.Cells pro Java. Naučte se + uložit sešit jako PDF, exportovat Excel do HTML a použít funkci EXPAND. +og_title: Jak vytvořit PDF ze sešitu – Java tutoriál +tags: +- Aspose.Cells +- Java +- PDF generation +title: Jak vytvořit PDF ze sešitu – kompletní průvodce Java +url: /cs/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak vytvořit PDF z sešitu – Kompletní průvodce pro Javu + +Už jste se někdy zamýšleli **jak vytvořit PDF** přímo z Excel sešitu bez používání třetích stran konvertorů? Nejste sami. Mnoho vývojářů narazí na problém, když potřebují rychlý export do PDF, HTML náhled nebo pokročilé pole‑formule – a to vše najednou. + +V tomto tutoriálu projdeme jedním, samostatným Java programem, který přesně to dokáže. **Uložíme sešit jako PDF**, ukážeme vám, jak **exportovat Excel do HTML** při zachování zmrazených řádků, a demonstrujeme **použití funkce EXPAND** v listu. Na konci budete mít spustitelný projekt, který můžete vložit do libovolného Maven nebo Gradle buildu. + +> **Pro tip:** Veškerý níže uvedený kód funguje s Aspose.Cells 23.10 (nebo novější). Pokud používáte starší verzi, některá názvy metod se mohou mírně lišit. + +--- + +## Požadavky + +- **Java 17** (nebo jakákoli LTS verze) nainstalována a nakonfigurována. +- Knihovna **Aspose.Cells for Java**. Přidejte následující Maven závislost do vašeho `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- IDE nebo textový editor dle vašeho výběru (IntelliJ IDEA, VS Code, Eclipse…). + +Žádné externí API, žádné webové služby – jen čistá Java a SDK Aspose.Cells. + +--- + +## Přehled řešení + +Rozdělíme implementaci do **sedmi logických kroků**: + +1. Vytvořit sešit a demonstrovat funkci **EXPAND**. +2. Povolit selektory variant písma a **uložit sešit jako PDF**. +3. Exportovat stejný sešit do HTML při zachování zmrazených řádků. +4. Použít Smart Marker s `IF`‑parametrem pro vložení podmíněného textu. +5. Použít master‑detail Smart Marker pro hierarchická data. +6. Načíst soubor Markdown, který obsahuje Base‑64‑kódované obrázky. +7. Nastavit možnosti GridJs pro zarovnání a okraje, poté vložit data. + +Každý krok je zabalen do vlastní metody, aby byl `main` přehledný a aby ilustroval **proč** děláme to, co děláme, nejen **co** píšeme. + +--- + +## Krok 1 – Vytvoření sešitu a použití funkce EXPAND + +Funkce **EXPAND** je nová dynamická pole‑formule zavedená v Office 365. Umožňuje rozšířit oblast do většího prostoru bez ručního kopírování buněk. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Proč je to důležité:** +- `EXPAND` automaticky doplňuje výsledek prázdnými buňkami, což je ideální, když později **uložíte sešit jako PDF** – PDF zobrazí čistou, pravoúhlou tabulku. +- Volání `calculateFormula()` zajišťuje, že výpočetní engine provede vzorce před tím, než něco exportujeme. + +--- + +## Krok 2 – Povolení selektorů variant písma a **uložení sešitu jako PDF** + +Pokud potřebujete podporovat pokročilou typografii (např. emoji nebo CJK selektory variant), musíte tuto funkci zapnout **před** uložením. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Klíčový bod:** Hlavní klíčové slovo **how to create pdf** je zde zodpovězeno – voláním `workbook.save(..., SaveFormat.PDF)` po nastavení konfigurace. + +--- + +## Krok 3 – **Export Excel do HTML** při zachování zmrazených řádků + +Často požadují zúčastněné strany rychlý webový náhled. Aspose.Cells může exportovat do HTML a pomocí `setPreserveFrozenRows(true)` zachováme stejný posuvný zážitek jako v Excelu. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Proč vám to může přijít užitečné:** +Zmrazené řádky jsou uživatelsky přívětivý prvek; bez nich se záhlaví řádků při posouvání stránky ztratí. + +--- + +## Krok 4 – Smart Marker s IF‑parametrem + +Smart Markery umožňují sloučit data do šablony bez psaní smyček. `if`‑parametr přidává podmíněnou logiku přímo uvnitř markeru. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Výstupní PDF bude obsahovat **„VIP Customer: Acme Corp“**, protože `IsVIP` je `true`. Změníte-li příznak na `false`, získáte **„Regular Customer: Acme Corp“** – žádný další kód není potřeba. + +--- + +## Krok 5 – Master‑Detail Smart Marker s hierarchickým rozsahem + +Když máte data typu rodič‑potomek (např. objednávky a položky), master‑detail marker vás ušetří ručního vkládání řádků. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Co získáte:** +Engine rozšíří řádky hlavního (master) pro každou objednávku a automaticky vloží detailní řádky pod nimi – ideální pro faktury nebo nákupní zprávy. + +--- + +## Krok 6 – Načtení Markdown dokumentu s vloženými Base‑64 obrázky + +Pokud jsou vaše zdrojová data v Markdownu (běžné v pipeline dokumentace), Aspose.Cells je může přímo vykreslit do sešitu. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Poznámka k okrajovému případu:** +Pokud je Base‑64 řetězec poškozený, Aspose obrázek přeskočí, ale bude pokračovat ve zpracování zbytku dokumentu – nedojde k pádu. + +--- + +## Krok 7 – Nastavení možností GridJs a vložení dat + +GridJs je lehká JavaScriptová mřížka, kterou Aspose může vykreslit do HTML. Zarovnání čísel a aplikace okrajů zlepšuje čitelnost. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Proč nám to záleží:** +Správné zarovnání a okraje způsobí, že vygenerované HTML vypadá jako vylepšený tabulkový list – užitečné pro dashboardy. + +--- + +## Sestavení všeho dohromady – metoda `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/czech/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/czech/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..4e149ec164 --- /dev/null +++ b/cells/czech/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Naučte se, jak exportovat CSV z Java sešitu, přičemž nastavíte počet + významných číslic a rozsah exportu do CSV, v jednom přehledném návodu. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: cs +og_description: Naučte se, jak exportovat CSV v Javě, nastavit významné číslice a + exportovat rozsah do CSV s praktickým kódem a tipy. +og_title: Jak exportovat CSV v Javě – Kompletní průvodce krok za krokem +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Jak exportovat CSV v Javě – nastavit významné číslice a exportovat rozsah do + CSV +url: /cs/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak exportovat CSV pomocí Javy – Nastavit významné číslice a exportovat oblast do CSV + +Už jste se někdy zamysleli **jak exportovat csv** z Java sešitu, aniž byste ztratili číselnou přesnost? Možná jste zkusili rychlé `toString()` a skončili s nepořádkem zaokrouhlovacích chyb. To je častý problém, zejména když potřebujete **nastavit významné číslice** pro finanční data nebo vědecké výsledky. + +V tomto tutoriálu uvidíte kompletní, připravený příklad, který ukazuje **jak exportovat csv**, jak **nastavit významné číslice** a dokonce jak **exportovat oblast do csv**, přičemž data zůstávají přehledná. Projdeme každý řádek, vysvětlíme *proč* za voláními API a dáme vám tipy, jak se vyhnout běžným úskalím. Žádná další dokumentace ke sledování – jen samostatné řešení, které můžete dnes zkopírovat a vložit. + +## Co se naučíte + +- Vytvořit sešit a nastavit číselnou přesnost pomocí `setNumberSignificantDigits`. +- Exportovat konkrétní oblast buněk jako pěkně formátovaný řetězec CSV. +- Analyzovat japonské datumové éry pomocí `DateTimeFormatInfo`. +- Přepočítat vzorce, aby výsledky dynamických polí zůstaly aktuální. +- Vykreslit kontingenční tabulku do PNG obrázku. +- Použít Smart Marker k vložení komentářů a nakonec uložit sešit. + +Všechny tyto operace jsou provedeny pomocí knihovny Aspose.Cells for Java, verze 23.12 (nejnovější v době psaní). Pokud máte JAR ve své classpath, můžete rovnou začít. + +--- + +## Krok 1: Vytvořit sešit a **nastavit významné číslice** + +Než budeme moci cokoli exportovat, potřebujeme objekt sešitu. První věc, kterou mnozí vývojáři přehlédnou, je číselná přesnost. Ve výchozím nastavení Aspose.Cells používá plnou dvojitou přesnost, což může vést k dlouhým, nešikovným řetězcům v CSV. Nastavením počtu významných číslic se výstup zkrátí a zároveň zachová nejdůležitější číslice. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Proč je to důležité?** +Pokud exportujete buňku obsahující `12345.6789` bez omezení číslic, CSV zobrazí plnou hodnotu a znečistí reporty. S `setNumberSignificantDigits(5)` se stejná buňka stane `12346`, což je často to, co očekávají obchodní uživatelé. + +> **Tip:** Pokud potřebujete různou přesnost pro jednotlivé sloupce, můžete použít vlastní `Style` místo globálního nastavení. + +--- + +## Krok 2: **Exportovat oblast do CSV** – Formátování má význam + +Nyní, když je sešit připraven, vybereme obdélníkový blok dat a převedeme jej na řetězec CSV. Navíc vynutíme formát se dvěma desetinnými místy (`0.00`), aby se každé číslo pěkně zarovnalo. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Volání `exportDataTable` dělá těžkou práci. Protože jsme nastavili `exportAsString`, metoda vrací `String`, který můžeme vytisknout, zapsat do souboru nebo poslat přes HTTP. Krok **exportovat oblast do csv** také respektuje globální `setNumberSignificantDigits`, které jsme definovali dříve, takže čísla jsou jak zaokrouhlena na pět významných číslic, tak zobrazena se dvěma desetinnými místy. + +**Očekávaný výstup (zkrácený):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Často kladená otázka:** *Co když potřebuji jiný oddělovač, například středník?* +> Stačí zavolat `exportOptions.setSeparator(";")` před exportem. + +--- + +## Krok 3: Analyzovat japonské datumové éry (bonusová utilita) + +I když to není přímo spojeno s CSV, mnoho Excelových listů obsahuje lokálně specifická data. Zde je ukázka, jak převést japonský řetězec era jako `"R3/04/01"` na standardní objekt `DateTime`. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Výstup: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Proč to zahrnout?** +Pokud váš CSV export napájí downstream systémy, které očekávají ISO‑8601 data, musíte nejprve normalizovat všechny lokalizované formáty. Tento úryvek ukazuje *jak* i *proč* na jednom místě. + +--- + +## Krok 4: Přepočítat vzorce – Udržet výsledky dynamických polí čerstvé + +Pokud sešit obsahuje vzorce (např. `=SUM(A1:A10)`), po změně nastavení se neaktualizují automaticky. Volání `calculateFormula` vynutí úplný přepočet, čímž zajistí, že exportované CSV odráží nejnovější hodnoty. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Pozor:** Velké sešity mohou vyžadovat znatelný čas na přepočet. Pro scénáře citlivé na výkon zvažte `calculateFormula(FormulaCalculationOptions)`, aby se omezil rozsah. + +--- + +## Krok 5: Vykreslit první kontingenční tabulku do PNG obrázku + +Někdy potřebujete vizuální snímek kontingenční tabulky vedle CSV. Následující kód vykreslí první kontingenční tabulku na prvním listu do PNG souboru. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** Pokud sešit ještě neobsahuje kontingenční tabulku, můžete ji vytvořit programově – podívejte se do dokumentace Aspose.Cells na rychlý příklad. + +--- + +## Krok 6: Použít Smart Marker k zápisu komentáře a uložení sešitu + +Smart Marker vám umožní vkládat dynamický obsah do buněk pomocí jednoduchých zástupných znaků. Zde zapíšeme komentář jako “Reviewed by QA” do určené buňky a poté sešit uložíme. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Zástupný znak `${Comment}` můžete umístit kamkoli v listu (např. buňka `A1`). Když se spustí `apply`, zástupný znak se nahradí předanou hodnotou. + +**Výsledek:** Najdete soubor `output/commented.xlsx` obsahující komentář, plus dříve vygenerovaný `pivot.png` a řetězec CSV vytištěný do konzole. + +--- + +## Kompletní funkční příklad + +Spojením všech částí získáte kompletní program, který můžete zkompilovat a spustit: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Očekávaný výstup v konzoli + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Na disku také najdete `output/pivot.png` (pokud kontingenční tabulka existovala) a `output/commented.xlsx`. + +--- + +## Často kladené otázky a okrajové případy + +- **Mohu exportovat přímo do fyzického CSV souboru?** + Ano. Nahraďte blok `exportAsString` voláním `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Co když můj list používá jinou lokalizaci pro čísla?** + Před exportem nastavte `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))`; tím se přepne + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/czech/java/getting-started/_index.md b/cells/czech/java/getting-started/_index.md index a64f889f7a..e8769aa11d 100644 --- a/cells/czech/java/getting-started/_index.md +++ b/cells/czech/java/getting-started/_index.md @@ -38,6 +38,9 @@ Výukový program pro Aspose.Words v Javě ### [Nastavení a ověření licence Aspose.Cells Java: Kompletní průvodce](./aspose-cells-java-license-setup-guide/) Zvládněte nastavení a ověření vaší licence Aspose.Cells Java s naším komplexním průvodcem. Zajistěte si plný přístup k pokročilým funkcím bez námahy. +### [Vytvoření licencovaného sešitu – Kompletní průvodce Aspose.Cells pro Javu](./create-licensed-workbook-full-aspose-cells-java-guide/) +Naučte se, jak vytvořit licencovaný sešit v Javě pomocí Aspose.Cells s kompletním průvodcem krok za krokem. + ### [Aspose.Cells pro Javu: Jak efektivně vytvářet a formátovat sešity aplikace Excel](./aspose-cells-java-workbook-creation-guide/) Naučte se, jak automatizovat vytváření a formátování sešitů Excelu v Javě pomocí Aspose.Cells. Tato příručka se zabývá nastavením, manipulací se sešity a technikami formátování buněk. diff --git a/cells/czech/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/czech/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..8e85195637 --- /dev/null +++ b/cells/czech/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Rychle vytvořte licencovaný sešit pomocí Aspose.Cells Java. Naučte se, + jak licencovat Aspose, nastavit licenci Aspose v Javě a číst Excel pomocí Aspose + v jednom tutoriálu. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: cs +og_description: Vytvořte licencovaný sešit pomocí Aspose.Cells Java. Tento průvodce + ukazuje, jak licencovat Aspose, nastavit licenci Aspose v Javě a číst Excel pomocí + Aspose. +og_title: Vytvořte licencovaný sešit – Aspose.Cells Java tutoriál +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Vytvoření licencovaného sešitu – Kompletní průvodce Aspose.Cells pro Javu +url: /cs/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření licencovaného sešitu – Kompletní průvodce Aspose.Cells pro Java + +Už jste se někdy ptali, jak **vytvořit licencovaný sešit** bez chyb souvisejících s licencí? Nejste v tom sami — mnoho vývojářů narazí na tento problém, když poprvé použijí Aspose.Cells. Dobrá zpráva? Oprava je jednoduchá a tento průvodce vás provede krok za krokem. + +Za pár minut se dozvíte **jak licencovat Aspose**, přesně **nastavit licenci Aspose v Javě** a budete připraveni **číst Excel s Aspose** pro reálné úkoly, jako jsou reporty nebo migrace dat. Žádné vágní odkazy, jen kompletní, spustitelný příklad, který můžete dnes zkopírovat a vložit. + +--- + +## Co budete potřebovat + +- Java 17 nebo novější (nejnovější stabilní verze funguje nejlépe) +- Aspose.Cells pro Java 23.9 (nebo jakákoli novější verze) +- Váš licenční soubor Aspose.Cells (`Aspose.Cells.Java.lic`) +- IDE nebo nástroj pro sestavení, se kterým jste zvyklí pracovat (Maven, Gradle nebo čistý `javac`) + +Pokud některá z položek není vám známá, nebojte se — každá z nich je podrobně popsána v následujících krocích. + +--- + +## Krok 1: Přidání závislosti Aspose.Cells + +Než budete moci **vytvořit licencovaný sešit**, musí být knihovna na vašem classpath. S Maven to vypadá takto: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Pro Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Tip:** Pokud používáte čistý `javac` kompilátor, stačí JAR umístit do složky `libs/` a přidat ji do přepínače `-cp`. + +--- + +## Krok 2: **Jak licencovat Aspose** — načtení licenčního souboru + +Jakmile zavoláte jakékoli Aspose API bez licence, vygenerovaný Excel soubor bude obsahovat vodoznak. Aby se tomu předešlo, musíte **nastavit licenci Aspose v Javě** co nejdříve ve svém programu. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Proč je to důležité:** Objekt `License` říká Aspose, aby přeskočil režim hodnocení, odstranil vodoznaky a odemkl plnou sadu API. Pokud je cesta špatná, vyhodí se výjimka — tak to okamžitě poznáte. + +--- + +## Krok 3: **Vytvořit licencovaný sešit** — sestavení Excel souboru + +Jakmile je licence aplikována, můžete bezpečně **vytvořit licencovaný sešit**. Níže je minimální, ale kompletní příklad, který také ukazuje **číst Excel s Aspose** později. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Co tento kód dělá:** + +1. Volá utilitu z **Kroku 2** k **nastavení licence Aspose v Javě**. +2. Vytvoří nový `Workbook` — jádro operace **vytvořit licencovaný sešit**. +3. Zapíše malou tabulku, uloží ji jako XLSX a okamžitě ji načte zpět, aby prokázal, že **číst Excel s Aspose** funguje bez vodoznaků. + +Spuštění programu vypíše: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Pokud otevřete vygenerovaný soubor, uvidíte čistý tabulkový list bez Aspose vodoznaku — důkaz, že licence je aktivní. + +--- + +## Krok 4: Časté problémy a okrajové případy + +| Problém | Proč se vyskytuje | Řešení | +|-------|----------------|-----| +| **LicenseNotFoundException** | Špatná cesta nebo chybějící soubor. | Použijte absolutní cestu nebo načtěte soubor ze zdrojů (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR není na classpath. | Ověřte Maven/Gradle závislost nebo přidejte JAR ručně. | +| **Ukládání selže ve Windows** | Cílová složka neexistuje. | Ujistěte se, že adresář `output/` je vytvořen (`new File("output").mkdirs();`). | +| **Čtení starších .xls souborů** | Výchozí `SaveFormat` nemusí podporovat starý formát. | Použijte `SaveFormat.XLS` při ukládání, nebo nechte Aspose automaticky detekovat při načítání. | + +> **Pozor:** Pokud nasazujete na server, licenční soubor by měl být mimo kořen webové aplikace, aby nedošlo k nechtěnému zveřejnění. + +--- + +## Krok 5: Programová kontrola licence (volitelné) + +Někdy chcete před provedením náročných operací ověřit, že licence byla načtena správně. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Můžete zavolat `LicenseChecker.isLicensed("...")` a ukončit program, pokud vrátí `false`. To poskytuje další úroveň zabezpečení, zejména v CI/CD pipeline. + +--- + +## Vizualizace + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Alt text obrázku:* **create licensed workbook diagram** — ilustruje kroky pro aplikaci licence Aspose, vytvoření sešitu a čtení Excelu. + +--- + +## Závěr + +Nyní máte kompletní end‑to‑end řešení pro **vytvoření licencovaného sešitu** pomocí Aspose.Cells pro Java. Probrali jsme **jak licencovat Aspose**, ukázali přesný kód **nastavit licenci Aspose v Javě** a rychle si ověřili **číst Excel s Aspose**, abyste se ujistili, že vše funguje. + +Dále můžete zkusit: + +- Stylování buněk (fonty, barvy) — skvělé pro profesionální reporty. +- Export do CSV nebo PDF — Aspose podporuje mnoho formátů přímo. +- Práci s velkými datovými sadami — použijte `WorkbookDesigner` pro šablonování. + +Klidně experimentujte a pokud narazíte na problémy, zanechte komentář níže. Šťastné programování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/czech/java/ole-objects-embedded-content/_index.md b/cells/czech/java/ole-objects-embedded-content/_index.md index 30947343f8..49e7c9cc40 100644 --- a/cells/czech/java/ole-objects-embedded-content/_index.md +++ b/cells/czech/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Naučte se, jak efektivně extrahovat identifikátory GUID z vložených objekt ### [Odebrání ovládacích prvků ActiveX z Excelu pomocí Aspose.Cells v Javě](./remove-activex-controls-excel-aspose-cells-java/) Výukový program pro Aspose.Words v Javě - +### [Jak vložit písma – Kompletní průvodce pro export do HTML, XPS a OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Naučte se, jak vložit písma do souborů při exportu do HTML, XPS a OLE pomocí Aspose.Cells pro Javu. Postupujte podle podrobného návodu. ## Další zdroje diff --git a/cells/czech/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/czech/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..2a88d8e489 --- /dev/null +++ b/cells/czech/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Naučte se, jak vložit písma do HTML a dalších formátů. Podrobný návod + krok za krokem, který zahrnuje vložení písem v HTML, převod Excelu do HTML, jak + exportovat OLE a převod Excelu do XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: cs +og_description: Jak vložit fonty do HTML, XPS a OLE exportů. Naučte se celý pracovní + postup, podívejte se na spustitelný Java kód a ovládněte vkládání fontů do HTML + pro konverze do Excelu. +og_title: Jak vložit fonty – kompletní Java tutoriál +tags: +- Aspose.Cells +- Java +- Document Export +title: Jak vložit písma – Kompletní průvodce pro export HTML, XPS a OLE +url: /cs/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak vložit písma – Kompletní průvodce pro HTML, XPS a OLE export + +Už jste se někdy zamýšleli **jak vložit písma**, když převádíte sešit Excelu na webovou stránku nebo tisknutelný dokument? Nejste v tom sami. Mnoho vývojářů narazí na problém, kdy výstup vypadá na jejich počítači dobře, ale na jiném selže, protože požadovaná písma chybí. + +V tomto tutoriálu projdeme reálný scénář s použitím Aspose.Cells pro Java: vložíme písma do HTML, zachováme výběrové znaky emoji při převodu na XPS a dokonce udržíme OLE objekt editovatelný při exportu do PPTX. Na konci budete mít pevné řešení připravené ke kopírování a vložení, které odpovídá na otázku „jak vložit písma“ a také se dotýká **embed fonts in html**, **convert excel to html**, **how to export ole** a **convert excel to xps**. + +## Požadavky + +- Java 17 (nebo jakýkoli aktuální JDK) +- Aspose.Cells pro Java 25.x nebo novější +- Vývojové IDE (IntelliJ IDEA, Eclipse nebo VS Code) +- Základní znalost datových struktur Excelu + +Žádné externí služby nejsou vyžadovány – vše běží lokálně. + +## Přehled řešení + +1. **Vytvořte sešit** a použijte funkci `WRAPCOLS` k převodu vertikálního rozsahu na rozvržení se třemi sloupci. +2. **Uložte sešit jako XPS** a zapněte výběrové znaky písma, aby emoji zůstaly zachovány. +3. **Exportujte do HTML** s vloženými písmy, což zaručuje, že stránka bude vypadat stejně všude. +4. **Exportujte sešit obsahující OLE objekt do PPTX**, přičemž zachováte editovatelnost. +5. **Použijte šablonu Smart Marker**, která demonstruje vazbu master‑detail. + +Každý krok je oddělen ve své vlastní sekci H2, což usnadňuje rychlé procházení průvodce jak pro vyhledávače, tak pro AI asistenty. + +![Ilustrace, jak vložit písma](image.png "jak vložit písma") + +*Text alternativního popisu obrázku: diagram, jak vložit písma, zobrazující pracovní postup od Excelu k HTML, XPS a PPTX.* + +--- + +## Krok 1 – Vytvořte sešit a použijte WRAPCOLS (Proč je to důležité pro embed fonts in html) + +Než budeme mluvit o vkládání písem, potřebujeme sešit, který skutečně obsahuje data. Funkce `WRAPCOLS` je praktický způsob, jak rozdělit jeden sloupec na více sloupců, což často činí výsledné HTML čitelnějším. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Proč tento krok?** +Volání `WRAPCOLS` vytvoří více‑sloupcový rozsah, který se později v HTML zobrazí jako tabulka. Když později **embed fonts in html**, stylování tabulky bude záviset na písmu, která vložíme, což zajišťuje konzistentní vykreslování napříč prohlížeči. + +## Krok 2 – Uložte sešit jako XPS a zachovejte emoji (convert excel to xps) + +Pokud potřebujete formát připravený k tisku, XPS je solidní volba. Moderní dokumenty však často obsahují emoji nebo symboly, které používají výběrové znaky. Zapnutí `EnableFontVariationSelectors` zajistí, že tyto znaky přežijí převod. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Co získáte:** +XPS soubor, který zobrazuje jakékoli vložené emoji přesně tak, jak jsou ve zdrojovém sešitu. To splňuje požadavek **convert excel to xps** a ukazuje, že práce s písmy není omezena jen na HTML. + +## Krok 3 – Export do HTML s vloženými písmy (how to embed fonts & embed fonts in html) + +Nyní přicházíme k jádru tutoriálu: **how to embed fonts** při převodu Excelu do HTML. Aspose.Cells nám umožňuje vložit písma přímo do vygenerovaného HTML souboru, čímž eliminuje potřebu externích souborů písem. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Jak to funguje:** +`setEmbedFonts(true)` říká rendereru, aby načetl soubory písem použité v sešitu a vložil je jako Base64‑kódované `@font-face` pravidla uvnitř tagu ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Všimněte si pravidla `@font-face` – to je konkrétní odpověď na **embed fonts in html**. + +## Krok 4 – Export sešitu obsahujícího OLE objekt do PPTX (how to export ole) + +Mnoho obchodních reportů vkládá dokumenty Word, PDF nebo jiné sešity Excelu jako OLE objekty. Při exportu takového sešitu do PowerPointu často ztratíte možnost objekt upravovat. Aspose.Cells zachovává editovatelnost přímo z krabice. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Proč je to důležité:** +Pokud hledáte **how to export ole**, tento úryvek ukazuje přesné volání API. Výsledný snímek PowerPointu obsahuje OLE objekt jako živou komponentu, kterou lze dvojklikem upravit – není potřeba žádné další post‑zpracování. + +## Krok 5 – Použijte šablonu Smart Marker (master‑detail) a dokončete ukázku + +Smart Markery vám umožňují svázat zdroj dat (Map, JSON, DataTable) přímo s šablonou Excelu. Zde je minimální příklad, který vypisuje řádky master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Co vidíte:** +Nový sešit (`smartMarkerResult.xlsx`), kde jsou zástupné symboly šablony nahrazeny daty. Tento krok se přímo netýká písem, ale doplňuje tutoriál ukázkou typického workflow reportování, který často předchází exportu **embed fonts in html**. + +## Časté úskalí a tipy (Zajištění úspěšného vkládání písem) + +| Problém | Proč k tomu dochází | Oprava | +|-------|----------------|-----| +| Písma chybí v HTML souboru | Sešit používá systémové písmo, které není nainstalováno na serveru. | Použijte `Workbook.getSettings().setDefaultFont("Arial")` před načtením dat, nebo vložte požadované soubory písem ručně. | +| Výstupní HTML je obrovské | Vkládání mnoha velkých písem zvětšuje velikost souboru. | Omezte vkládání pouze na písma, která skutečně používáte: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji zmizí po konverzi na XPS | Výběrové znaky jsou ve výchozím nastavení odstraňovány. | Povolte `settings.setEnableFontVariationSelectors(true)` jak je ukázáno v Kroku 2. | +| OLE objekt se v PPTX stane statickým obrázkem | Zdrojový sešit byl uložen s `setSuppressOLEObjects(true)`. | Ujistěte se, že **ne**potlačujete OLE objekty při ukládání do PPTX. | + +## Ověření výsledků + +1. Otevřete `embeddedFonts.html` v Chrome/Firefox. Tabulka by měla být zobrazena pomocí vloženého písma (např. Arial), i když toto písmo není nainstalováno na počítači. +2. Otevřete `withVariations.xps` ve Windows XPS Viewer. Emoji jako 👍 by měly být vykresleny správně. +3. Otevřete `oleEditable.pptx` v PowerPointu. Dvojklikněte na OLE tvar; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/dutch/java/excel-import-export/_index.md b/cells/dutch/java/excel-import-export/_index.md index 568949d9c2..6276de319c 100644 --- a/cells/dutch/java/excel-import-export/_index.md +++ b/cells/dutch/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ Leer hoe u bulkgegevens importeert vanuit Excel met Aspose.Cells voor Java API. Benut het potentieel van Excel-gegevensexportmethoden met Aspose.Cells voor Java. Leer met praktische broncodevoorbeelden in deze uitgebreide handleiding. Optimaliseer vandaag nog uw vaardigheden op het gebied van gegevensbeheer. ### [CSV-export Java-code](./csv-export-java-code/) Leer hoe u gegevens exporteert naar CSV-formaat met Aspose.Cells voor Java. Stapsgewijze handleiding met broncode voor naadloze CSV-export. +### [Hoe CSV exporteren met Java – Significante cijfers instellen & exportbereik naar CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Leer hoe u met Aspose.Cells voor Java CSV-bestanden exporteert, significante cijfers instelt en een specifiek bereik exporteert. ### [Excel naar PDF exporteren](./exporting-excel-to-pdf/) Leer hoe je moeiteloos Excel-bestanden naar PDF exporteert met Aspose.Cells voor Java. Onze stapsgewijze handleiding maakt het proces eenvoudiger. Begin vandaag nog met converteren! +### [Hoe een PDF te maken vanuit een werkmap – Complete Java-gids](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Leer stap voor stap hoe u met Aspose.Cells voor Java een PDF maakt vanuit een werkmap, inclusief voorbeeldcode. ### [Excel exporteren naar XML Java](./export-excel-to-xml-java/) Leer hoe u Excel naar XML exporteert in Java met Aspose.Cells voor Java. Stapsgewijze handleiding met broncode voor naadloze gegevensconversie. ### [Gegevens importeren vanuit Excel](./data-import-from-excel/) diff --git a/cells/dutch/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/dutch/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..244f5a5232 --- /dev/null +++ b/cells/dutch/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Hoe een PDF te maken en een werkmap als PDF op te slaan, Excel naar HTML + te exporteren en de expand-functie te gebruiken met Aspose.Cells voor Java. Stapsgewijze + code inbegrepen. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: nl +og_description: Hoe maak je een PDF van een werkmap met Aspose.Cells voor Java. Leer + hoe je een werkmap opslaat als PDF, Excel exporteert naar HTML en de EXPAND-functie + gebruikt. +og_title: Hoe maak je een PDF van een werkmap – Java‑tutorial +tags: +- Aspose.Cells +- Java +- PDF generation +title: Hoe een PDF te maken vanuit een werkmap – Complete Java‑gids +url: /nl/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe PDF te maken vanuit een Werkmap – Complete Java-gids + +Heb je je ooit afgevraagd **hoe PDF** direct vanuit een Excel-werkmap kunt maken zonder met externe converters te jongleren? Je bent niet de enige. Veel ontwikkelaars lopen tegen een muur aan wanneer ze een snelle PDF-export, een HTML-preview of geavanceerde array‑formules nodig hebben — allemaal in één keer. + +In deze tutorial lopen we een enkel, zelfstandig Java‑programma door dat precies dat doet. We zullen **werkmap opslaan als PDF**, je laten zien hoe je **Excel naar HTML exporteert** terwijl bevroren rijen behouden blijven, en de **gebruik van de expand‑functie** binnen een werkblad demonstreren. Aan het einde heb je een uitvoerbaar project dat je in elke Maven‑ of Gradle‑build kunt plaatsen. + +> **Pro tip:** Alle onderstaande code werkt met Aspose.Cells 23.10 (of nieuwer). Als je een oudere versie gebruikt, kunnen sommige methodenamen iets anders zijn. + +--- + +## Vereisten + +- **Java 17** (of een andere LTS‑versie) geïnstalleerd en geconfigureerd. +- **Aspose.Cells for Java**‑bibliotheek. Voeg de volgende Maven‑dependency toe aan je `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Een IDE of teksteditor naar keuze (IntelliJ IDEA, VS Code, Eclipse…). + +Geen externe API's, geen webservices — alleen pure Java en de Aspose.Cells SDK. + +--- + +## Overzicht van de Oplossing + +We splitsen de implementatie in **zeven logische stappen**: + +1. Maak een werkmap en demonstreer de **EXPAND**‑functie. +2. Schakel lettertype‑variatieselectors in en **sla de werkmap op als PDF**. +3. Exporteer dezelfde werkmap naar HTML terwijl bevroren rijen behouden blijven. +4. Gebruik een Smart Marker met een `IF`‑parameter om voorwaardelijke tekst in te voegen. +5. Pas een master‑detail Smart Marker toe voor hiërarchische gegevens. +6. Laad een Markdown‑bestand dat Base‑64‑gecodeerde afbeeldingen bevat. +7. Configureer GridJs‑opties voor uitlijning en randen, en voeg vervolgens gegevens in. + +Elke stap is ingekapseld in een eigen methode om de `main`‑methode overzichtelijk te houden en om te illustreren **waarom** we doen wat we doen, niet alleen **wat** we typen. + +--- + +## Stap 1 – Maak een Werkmap en Gebruik de EXPAND‑functie + +De **EXPAND**‑functie is een nieuwe dynamische‑array‑formule geïntroduceerd in Office 365. Hiermee kun je een bereik uitbreiden naar een groter gebied zonder handmatig cellen te kopiëren. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Waarom dit belangrijk is:** +- `EXPAND` vult het resultaat automatisch aan met lege cellen, wat perfect is wanneer je later **werkmap opslaat als PDF** — de PDF toont een nette, rechthoekige tabel. +- Het aanroepen van `calculateFormula()` zorgt ervoor dat de formule‑engine wordt uitgevoerd voordat we iets exporteren. + +--- + +## Stap 2 – Schakel Lettertype‑Variatieselectors in en **Sla Werkmap op als PDF** + +Als je geavanceerde typografie wilt ondersteunen (bijv. emoji of CJK‑variatieselectors), moet je de functie **vóór** het opslaan inschakelen. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Belangrijk punt:** Het primaire zoekwoord **hoe PDF te maken** wordt hier beantwoord — door `workbook.save(..., SaveFormat.PDF)` aan te roepen na het configureren van de instellingen. + +--- + +## Stap 3 – **Excel naar HTML exporteren** terwijl bevroren rijen behouden blijven + +Vaak vragen belanghebbenden om een snelle webpreview. Aspose.Cells kan exporteren naar HTML, en met `setPreserveFrozenRows(true)` behouden we dezelfde scrollervaring als in Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Waarom het belangrijk is:** Bevroren rijen zijn een gebruiksvriendelijkheid‑voordeel; zonder hen verdwijnen de koprijen wanneer gebruikers naar beneden scrollen op de pagina. + +--- + +## Stap 4 – Smart Marker met een IF‑parameter + +Smart Markers laten je gegevens in een sjabloon samenvoegen zonder loops te schrijven. De `if`‑parameter voegt voorwaardelijke logica direct binnen de marker toe. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +De gegenereerde PDF zal **“VIP Customer: Acme Corp”** weergeven omdat `IsVIP` `true` is. Verander de vlag naar `false` en je krijgt **“Regular Customer: Acme Corp”** — zonder extra code. + +--- + +## Stap 5 – Master‑Detail Smart Marker met een Hiërarchisch Bereik + +Wanneer je ouder‑kind‑gegevens hebt (bijv. bestellingen en regelitems), bespaart een master‑detail‑marker je handmatige rij‑invoeging. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Wat je wint:** De engine breidt de master‑rijen uit voor elke bestelling en nestelt automatisch de detail‑rijen eronder — perfect voor facturen of aankooprapporten. + +--- + +## Stap 6 – Laad een Markdown‑document met ingebedde Base‑64‑afbeeldingen + +Als je brongegevens zich in Markdown bevinden (veelvoorkomend in documentatie‑pijplijnen), kan Aspose.Cells het rechtstreeks in een werkmap renderen. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Opmerking voor randgeval:** Als de Base‑64‑string onjuist is, zal Aspose de afbeelding overslaan maar de rest van het document blijven verwerken — geen crash. + +--- + +## Stap 7 – Configureer GridJs‑opties en Voeg Gegevens In + +GridJs is een lichtgewicht JavaScript‑grid die Aspose kan renderen naar HTML. Het uitlijnen van getallen en het toepassen van randen verbetert de leesbaarheid. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Waarom het belangrijk is:** Juiste uitlijning en randen laten de gegenereerde HTML eruitzien als een gepolijste spreadsheet — nuttig voor dashboards. + +--- + +## Alles Samenvoegen – De `main`‑methode + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/dutch/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/dutch/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..366fe33783 --- /dev/null +++ b/cells/dutch/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Leer hoe je CSV exporteert vanuit een Java-werkmap terwijl je significante + cijfers en het exportbereik instelt, in één duidelijke gids. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: nl +og_description: Beheers hoe je CSV exporteert in Java, significante cijfers instelt + en een bereik naar CSV exporteert, met praktische code en tips. +og_title: Hoe CSV te exporteren met Java – Volledige stapsgewijze handleiding +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Hoe CSV exporteren met Java – Stel significante cijfers in & Exporteer bereik + naar CSV +url: /nl/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe CSV exporteren met Java – Significante cijfers instellen & bereik exporteren naar CSV + +Heb je je ooit afgevraagd **hoe je csv kunt exporteren** vanuit een Java-werkmap zonder numerieke precisie te verliezen? Misschien heb je een snelle `toString()` geprobeerd en eindigde je met een puinhoop van afrondingsfouten. Dat is een veelvoorkomend probleem, vooral wanneer je **significante cijfers moet instellen** voor financiële gegevens of wetenschappelijke resultaten. + +In deze tutorial zie je een compleet, kant‑klaar voorbeeld dat laat zien **hoe je csv kunt exporteren**, hoe je **significante cijfers instelt**, en zelfs hoe je **een bereik naar csv exporteert** terwijl je gegevens netjes blijven. We lopen elke regel door, leggen het *waarom* achter de API‑aanroepen uit, en geven je tips om de gebruikelijke valkuilen te vermijden. Geen extra documentatie om te zoeken—gewoon een zelfstandige oplossing die je vandaag nog kunt copy‑pasten. + +## Wat je zult leren + +- Maak een werkmap en configureer numerieke precisie met `setNumberSignificantDigits`. +- Exporteer een specifiek celbereik als een net geformatteerde CSV‑string. +- Parse Japanse era‑datums met `DateTimeFormatInfo`. +- Herbereken formules zodat dynamische‑array resultaten actueel blijven. +- Render een draaitabel naar een PNG‑afbeelding. +- Gebruik Smart Marker om opmerkingen in te voegen en sla tenslotte de werkmap op. + +Dit alles gebeurt met de Aspose.Cells for Java‑bibliotheek, versie 23.12 (de nieuwste op het moment van schrijven). Als je de JAR op je classpath hebt, ben je klaar om te gaan. + +--- + +## Stap 1: Maak een werkmap en **stel significante cijfers in** + +Voordat we iets kunnen exporteren, hebben we een werkmap‑object nodig. Het eerste waar veel ontwikkelaars overheen kijken, is numerieke precisie. Standaard gebruikt Aspose.Cells de volledige double‑precisie, wat kan leiden tot lange, onhandige strings in CSV. Het instellen van het aantal significante cijfers verkort de output terwijl de belangrijkste cijfers behouden blijven. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Waarom is dit belangrijk?** +Als je een cel met `12345.6789` exporteert zonder het aantal cijfers te beperken, toont de CSV de volledige waarde, waardoor rapporten rommelig worden. Met `setNumberSignificantDigits(5)` wordt dezelfde cel `12346`, wat vaak is wat zakelijke gebruikers verwachten. + +> **Pro tip:** Als je per kolom een andere precisie nodig hebt, kun je een aangepaste `Style` toepassen in plaats van de globale instelling. + +--- + +## Stap 2: **Bereik exporteren naar CSV** – Opmaak is belangrijk + +Nu de werkmap klaar is, laten we een rechthoekig blok gegevens ophalen en omzetten naar een CSV‑string. We zullen ook een twee‑decimalen formaat (`0.00`) afdwingen zodat elk getal netjes uitgelijnd is. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +De aanroep `exportDataTable` doet het zware werk. Omdat we `exportAsString` hebben ingesteld, retourneert de methode een `String` die we kunnen afdrukken, naar een bestand schrijven, of via HTTP verzenden. De stap **bereik exporteren naar csv** houdt ook rekening met de globale `setNumberSignificantDigits` die we eerder hebben gedefinieerd, zodat de getallen zowel afgerond worden op vijf significante cijfers *als* weergegeven worden met twee decimalen. + +**Verwachte output (afgekapt):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Veelgestelde vraag:** *Wat als ik een ander scheidingsteken nodig heb, zoals een puntkomma?* +> Roep simpelweg `exportOptions.setSeparator(";")` aan vóór het exporteren. + +--- + +## Stap 3: Parse een Japanse era‑datum (bonus‑hulpmiddel) + +Hoewel dit niet direct gerelateerd is aan CSV, bevatten veel Excel‑bladen locale‑specifieke datums. Hier zie je hoe je een Japanse era‑string zoals `"R3/04/01"` kunt omzetten naar een standaard `DateTime`‑object. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Waarom dit opnemen?** +Als je CSV‑export downstream‑systemen voedt die ISO‑8601‑datums verwachten, moet je eerst alle gelokaliseerde formaten normaliseren. Deze code laat het *hoe* en *waarom* op één plek zien. + +--- + +## Stap 4: Formules herberekenen – Houd dynamische‑array resultaten actueel + +Als je werkmap formules bevat (bijv. `=SUM(A1:A10)`), worden deze niet automatisch bijgewerkt nadat we instellingen hebben gewijzigd. Het aanroepen van `calculateFormula` dwingt een volledige herberekening af, waardoor de geëxporteerde CSV de nieuwste waarden weergeeft. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Let op:** Grote werkmappen kunnen merkbare tijd kosten om te herberekenen. Voor prestatie‑kritische scenario's, overweeg `calculateFormula(FormulaCalculationOptions)` om de reikwijdte te beperken. + +--- + +## Stap 5: Render de eerste draaitabel naar een PNG‑afbeelding + +Soms heb je een visueel momentopname van een draaitabel nodig naast de CSV. De onderstaande code rendert de eerste draaitabel op het eerste werkblad naar een PNG‑bestand. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** Als de werkmap nog geen draaitabel bevat, kun je er een programmatisch maken—zie de Aspose.Cells‑documentatie voor een snel voorbeeld. + +--- + +## Stap 6: Gebruik Smart Marker om een opmerking te schrijven en de werkmap op te slaan + +Smart Marker laat je dynamische inhoud in cellen injecteren met eenvoudige placeholders. Hier schrijven we een opmerking zoals “Reviewed by QA” in een aangewezen cel en slaan vervolgens de werkmap op. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +De `${Comment}`‑placeholder kan overal in het blad worden geplaatst (bijv. cel `A1`). Wanneer `apply` wordt uitgevoerd, wordt de placeholder vervangen door de opgegeven waarde. + +**Resultaat:** Je vindt een `output/commented.xlsx`‑bestand met de opmerking, plus de eerder gegenereerde `pivot.png` en de CSV‑string die naar de console wordt geprint. + +--- + +## Volledig werkend voorbeeld + +Alles bij elkaar, hier is het volledige programma dat je kunt compileren en uitvoeren: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Verwachte console‑output + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Je vindt ook `output/pivot.png` (als er een draaitabel bestond) en `output/commented.xlsx` op schijf. + +--- + +## Veelgestelde vragen & randgevallen + +- **Kan ik direct naar een fysiek CSV‑bestand exporteren?** + Ja. Vervang het `exportAsString`‑blok door `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Wat als mijn blad een andere locale voor getallen gebruikt?** + Stel `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` in vóór het exporteren; dit zal + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/dutch/java/getting-started/_index.md b/cells/dutch/java/getting-started/_index.md index 8658d67fb2..4c52d98889 100644 --- a/cells/dutch/java/getting-started/_index.md +++ b/cells/dutch/java/getting-started/_index.md @@ -38,6 +38,9 @@ Een codetutorial voor Aspose.Words Java ### [Aspose.Cells Java-licentie instellen en verifiëren: volledige handleiding](./aspose-cells-java-license-setup-guide/) Leer hoe u uw Aspose.Cells Java-licentie instelt en verifieert met onze uitgebreide handleiding. Krijg moeiteloos toegang tot geavanceerde functies. +### [Gelicentieerde werkmap maken – volledige Aspose.Cells Java-gids](./create-licensed-workbook-full-aspose-cells-java-guide/) +Leer hoe u een gelicentieerde werkmap maakt en de licentie verifieert met Aspose.Cells voor Java. + ### [Aspose.Cells voor Java: Excel-werkmappen efficiënt maken en opmaken](./aspose-cells-java-workbook-creation-guide/) Leer hoe u het maken en opmaken van Excel-werkmappen in Java kunt automatiseren met Aspose.Cells. Deze handleiding behandelt de installatie, bewerking van werkmappen en technieken voor celopmaak. diff --git a/cells/dutch/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/dutch/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..ab8487b603 --- /dev/null +++ b/cells/dutch/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Maak snel een gelicentieerd werkboek met Aspose.Cells Java. Leer hoe + je Aspose licentieert, de Aspose‑licentie in Java instelt en Excel leest met Aspose + in één tutorial. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: nl +og_description: Maak een gelicentieerd werkboek met Aspose.Cells Java. Deze gids laat + zien hoe je Aspose licentieert, de Aspose‑licentie instelt in Java en Excel leest + met Aspose. +og_title: Maak gelicentieerde werkmap – Aspose.Cells Java‑tutorial +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Maak een gelicentieerd werkboek – Volledige Aspose.Cells Java-gids +url: /nl/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Maak een gelicentieerde werkmap – Volledige Aspose.Cells Java‑gids + +Heb je je ooit afgevraagd hoe je **een gelicentieerde werkmap** kunt maken zonder licentie‑fouten? Je bent niet de enige—veel ontwikkelaars lopen tegen die muur aan wanneer ze voor het eerst met Aspose.Cells werken. Het goede nieuws? De oplossing is eenvoudig, en deze gids leidt je stap‑voor‑stap erdoorheen. + +In slechts een paar minuten weet je **hoe je Aspose licentieert**, precies **hoe je Aspose‑licentie Java instelt**, en ben je klaar om **Excel met Aspose te lezen** voor real‑world taken zoals rapportage of datamigratie. Geen vage verwijzingen, alleen een compleet, uitvoerbaar voorbeeld dat je vandaag nog kunt kopiëren‑plakken. + +--- + +## Wat je nodig hebt + +- Java 17 of nieuwer (de nieuwste stabiele release werkt het beste) +- Aspose.Cells for Java 23.9 (of een recente versie) +- Je Aspose.Cells‑licentiebestand (`Aspose.Cells.Java.lic`) +- Een IDE of build‑tool waar je je prettig bij voelt (Maven, Gradle, of gewone `javac`) + +Als een van deze items je onbekend voorkomt, maak je geen zorgen—elk onderdeel wordt behandeld in de stappen hieronder. + +--- + +## Stap 1: Voeg Aspose.Cells‑dependency toe + +Voordat je **een gelicentieerde werkmap** kunt **maken**, moet de bibliotheek op je classpath staan. Met Maven ziet dat er zo uit: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Voor Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro tip:** Als je een gewone `javac`‑compilatie gebruikt, plaats je de JAR gewoon in een `libs/`‑map en voeg je die toe aan de `-cp`‑optie. + +--- + +## Stap 2: **Hoe je Aspose licentieert** – Laad het licentiebestand + +Op het moment dat je een Aspose‑API aanroept zonder licentie, zie je een watermerk in het gegenereerde Excel‑bestand. Om dat te vermijden, moet je **Aspose‑licentie Java** vroeg in je programma **instellen**. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Waarom dit belangrijk is:** Het `License`‑object vertelt Aspose de evaluatiemodus over te slaan, waardoor watermerken verdwijnen en de volledige API beschikbaar wordt. Als het pad onjuist is, wordt er een uitzondering gegooid—zodat je het meteen weet. + +--- + +## Stap 3: **Maak een gelicentieerde werkmap** – Bouw een Excel‑bestand + +Nu de licentie is toegepast, kun je veilig **gelicentieerde werkmap**‑objecten **maken**. Hieronder staat een minimaal maar compleet voorbeeld dat later ook **Excel met Aspose lezen** demonstreert. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Wat dit doet:** + +1. Roept de hulpfunctie uit **Stap 2** aan om **Aspose‑licentie Java** **in te stellen**. +2. Instantieert een nieuwe `Workbook` – de kern van een **maak gelicentieerde werkmap**‑operatie. +3. Schrijft een kleine tabel, slaat deze op als XLSX, en leest hem vervolgens direct weer in om te bewijzen dat **Excel met Aspose lezen** werkt zonder watermerken. + +Het uitvoeren van het programma geeft weer: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Als je het gegenereerde bestand opent, zie je een nette spreadsheet zonder Aspose‑watermerk—bewijs dat de licentie actief is. + +--- + +## Stap 4: Veelvoorkomende valkuilen & randgevallen + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|--------------------|-----------| +| **LicenseNotFoundException** | Pad is onjuist of bestand ontbreekt. | Gebruik een absoluut pad of laad het bestand vanuit resources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose‑JAR staat niet op de classpath. | Controleer de Maven/Gradle‑dependency of voeg de JAR handmatig toe. | +| **Opslaan mislukt op Windows** | Doelmap bestaat niet. | Zorg dat de `output/`‑directory wordt aangemaakt (`new File("output").mkdirs();`). | +| **Oudere .xls‑bestanden lezen** | Standaard `SaveFormat` ondersteunt het oude formaat niet. | Gebruik `SaveFormat.XLS` bij het opslaan, of laat Aspose automatisch detecteren bij het laden. | + +> **Let op:** Als je naar een server deployt, moet het licentiebestand buiten de web‑app‑root staan om onbedoelde blootstelling te voorkomen. + +--- + +## Stap 5: Controleer de licentie programmatisch (optioneel) + +Soms wil je dubbelchecken dat de licentie correct is geladen voordat je zware bewerkingen uitvoert. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Je kunt `LicenseChecker.isLicensed("...")` aanroepen en afbreken als het `false` retourneert. Dit biedt een extra veiligheidsnet, vooral in CI/CD‑pipelines. + +--- + +## Visueel overzicht + +![Diagram dat de stroom van het toepassen van de licentie naar het maken en lezen van een werkmap toont](create-licensed-workbook-diagram.png "maak gelicentieerde werkmap") + +*Afbeeldings‑alt‑tekst:* **maak gelicentieerde werkmap diagram** – toont de stappen om de Aspose‑licentie toe te passen, een werkmap te maken en Excel te lezen. + +--- + +## Conclusie + +Je hebt nu een volledige end‑to‑end‑oplossing voor **maak een gelicentieerde werkmap** met Aspose.Cells voor Java. We hebben **hoe je Aspose licentieert** behandeld, de exacte **Aspose‑licentie Java‑code** gedemonstreerd, en je een snelle blik gegeven op **Excel met Aspose lezen** om te bevestigen dat alles werkt. + +Vervolgens kun je wellicht verkennen: + +- Cellen stylen (lettertypen, kleuren) – ideaal voor professionele rapporten. +- Exporteren naar CSV of PDF – Aspose ondersteunt veel formaten out‑of‑the‑box. +- Werken met grote datasets – gebruik `WorkbookDesigner` voor templating. + +Voel je vrij om te experimenteren, en als je ergens vastloopt, laat dan een reactie achter. Veel plezier met coderen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/dutch/java/ole-objects-embedded-content/_index.md b/cells/dutch/java/ole-objects-embedded-content/_index.md index 98f632c5a9..ef3189a394 100644 --- a/cells/dutch/java/ole-objects-embedded-content/_index.md +++ b/cells/dutch/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Leer hoe u efficiënt GUID's kunt extraheren uit ingesloten PowerPoint-objecten ### [ActiveX-besturingselementen uit Excel verwijderen met Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Een codetutorial voor Aspose.Words Java - +### [Lettertypen insluiten – Complete handleiding voor HTML-, XPS- en OLE-export](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Leer hoe u lettertypen kunt insluiten bij het exporteren naar HTML, XPS en OLE met Aspose.Cells voor Java. ## Aanvullende bronnen diff --git a/cells/dutch/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/dutch/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..f41154d26c --- /dev/null +++ b/cells/dutch/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-01 +description: Leer hoe je lettertypen in HTML en andere formaten kunt insluiten. Stapsgewijze + tutorial over het insluiten van lettertypen in HTML, Excel naar HTML converteren, + hoe je OLE exporteert, en Excel naar XPS converteren. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: nl +og_description: Hoe lettertypen in HTML, XPS en OLE‑exporten in te sluiten. Leer de + volledige workflow, bekijk uitvoerbare Java‑code en beheers het insluiten van lettertypen + in HTML voor Excel‑conversies. +og_title: Hoe lettertypen in te sluiten – Volledige Java-tutorial +tags: +- Aspose.Cells +- Java +- Document Export +title: Hoe lettertypen insluiten – Complete gids voor HTML-, XPS- en OLE-export +url: /nl/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe lettertypen inbedden – Complete gids voor HTML, XPS en OLE‑export + +Heb je je ooit afgevraagd **hoe je lettertypen inbedt** wanneer je een Excel‑werkmap omzet naar een webpagina of een afdrukbaar document? Je bent niet de enige. Veel ontwikkelaars lopen tegen een muur aan wanneer de output er op hun machine goed uitziet, maar op een andere machine kapot gaat omdat de benodigde lettertypen ontbreken. + +In deze tutorial lopen we een real‑world scenario door met Aspose.Cells for Java: we zullen lettertypen inbedden in HTML, emoji‑variatie‑selectoren behouden tijdens het converteren naar XPS, en zelfs een OLE‑object bewerkbaar houden bij het exporteren naar PPTX. Aan het einde heb je een solide, copy‑and‑paste oplossing die beantwoordt aan “hoe je lettertypen inbedt” en ook ingaat op **embed fonts in html**, **convert excel to html**, **how to export ole**, en **convert excel to xps**. + +## Vereisten + +- Java 17 (of een recente JDK) +- Aspose.Cells for Java 25.x of later +- Een ontwikkel‑IDE (IntelliJ IDEA, Eclipse, of VS Code) +- Basiskennis van Excel‑datastructuren + +Er zijn geen externe services vereist—alles draait lokaal. + +## Overzicht van de oplossing + +1. **Create a workbook** en gebruik de `WRAPCOLS`‑functie om een verticale bereik om te zetten naar een drie‑koloms lay‑out. +2. **Save the workbook as XPS** terwijl je font variation selectors inschakelt zodat emoji intact blijven. +3. **Export to HTML** met ingebedde lettertypen, waardoor de pagina overal hetzelfde eruitziet. +4. **Export a workbook containing an OLE object to PPTX**, waarbij bewerkbaarheid behouden blijft. +5. **Apply a Smart Marker template** die master‑detail databinding demonstreert. + +Elke stap staat geïsoleerd in een eigen H2‑sectie, waardoor de gids gemakkelijk te scannen is voor zowel zoekmachines als AI‑assistenten. + +![Illustratie hoe lettertypen in te bedden](image.png "hoe lettertypen in te bedden") + +*Afbeeldingsalt‑tekst: diagram van hoe lettertypen in te bedden, toont de workflow van Excel naar HTML, XPS en PPTX.* + +--- + +## Stap 1 – Maak een werkmap en gebruik WRAPCOLS (Waarom dit belangrijk is voor embed fonts in html) + +Voordat we over het inbedden van lettertypen kunnen praten, hebben we een werkmap nodig die daadwerkelijk gegevens bevat. De `WRAPCOLS`‑functie is een handige manier om één kolom te splitsen in meerdere kolommen, wat de uiteindelijke HTML vaak leesbaarder maakt. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Waarom deze stap?** +De `WRAPCOLS`‑aanroep genereert een multi‑kolom bereik dat later in HTML verschijnt als een tabel. Wanneer we later **embed fonts in html** gebruiken, zal de opmaak van de tabel afhankelijk zijn van de lettertypen die we inbedden, waardoor consistente weergave in browsers wordt gegarandeerd. + +--- + +## Stap 2 – Sla de werkmap op als XPS terwijl Emoji behouden blijven (convert excel to xps) + +Als je een afdrukklare indeling nodig hebt, is XPS een solide keuze. Moderne documenten bevatten echter vaak emoji of symbolen die variatie‑selectoren gebruiken. Het inschakelen van `EnableFontVariationSelectors` zorgt ervoor dat die tekens de conversie overleven. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Wat je krijgt:** +Een XPS‑bestand dat alle ingebedde emoji precies weergeeft zoals in de bron‑werkmap. Dit voldoet aan de **convert excel to xps**‑vereiste en toont aan dat lettertype‑afhandeling niet beperkt is tot HTML. + +--- + +## Stap 3 – Exporteren naar HTML met ingebedde lettertypen (how to embed fonts & embed fonts in html) + +Nu komen we bij de kern van de tutorial: **how to embed fonts** bij het converteren van Excel naar HTML. Aspose.Cells stelt ons in staat de lettertypen direct in het gegenereerde HTML‑bestand in te bedden, waardoor externe lettertype‑bestanden overbodig worden. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Hoe het werkt:** +`setEmbedFonts(true)` vertelt de renderer om de lettertype‑bestanden die in de werkmap worden gebruikt te lezen en ze als Base64‑gecodeerde `@font-face`‑regels in de ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Let op de `@font-face`‑regel—dit is het concrete antwoord op **embed fonts in html**. + +--- + +## Stap 4 – Exporteer een werkmap met een OLE‑object naar PPTX (how to export ole) + +Veel bedrijfsrapporten embedden Word‑documenten, PDF‑s of andere Excel‑bladen als OLE‑objecten. Wanneer je zo'n werkmap naar PowerPoint exporteert, verlies je vaak de mogelijkheid om dat object te bewerken. Aspose.Cells behoudt de bewerkbaarheid direct. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Waarom dit belangrijk is:** +Als je op zoek bent naar **how to export ole**, toont dit fragment de exacte API‑aanroep. De resulterende PowerPoint‑dia bevat het OLE‑object als een live, dubbel‑klikken‑om‑te‑bewerken component—geen extra nabewerking nodig. + +--- + +## Stap 5 – Pas een Smart Marker‑template toe (master‑detail) en voltooi de demo + +Smart Markers laten je een gegevensbron (Map, JSON, DataTable) direct binden aan een Excel‑template. Hier is een minimaal voorbeeld dat master‑detail rijen afdrukt. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Wat je ziet:** +Een nieuwe werkmap (`smartMarkerResult.xlsx`) waarin de template‑plaatsaanduidingen zijn vervangen door de gegevens. Deze stap gaat niet direct over lettertypen, maar maakt de tutorial compleet door een typisch rapportage‑workflow te tonen die vaak voorafgaat aan een **embed fonts in html**‑export. + +## Veelvoorkomende valkuilen & Pro‑tips (Zorg voor succesvolle lettertype‑inbedding) + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Lettertypen ontbreken in het HTML‑bestand | De werkmap gebruikt een systeemlettertype dat niet op de server is geïnstalleerd. | Gebruik `Workbook.getSettings().setDefaultFont("Arial")` vóór het laden van gegevens, of embed de vereiste lettertype‑bestanden handmatig. | +| Uitvoer‑HTML is enorm | Het inbedden van veel grote lettertypen vergroot de bestandsgrootte. | Beperk het inbedden tot alleen de lettertypen die je daadwerkelijk gebruikt: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji verdwijnen na XPS‑conversie | Variatie‑selectoren worden standaard verwijderd. | Schakel `settings.setEnableFontVariationSelectors(true)` in zoals getoond in Stap 2. | +| OLE‑object wordt een statisch beeld in PPTX | De bron‑werkmap was opgeslagen met `setSuppressOLEObjects(true)`. | Zorg ervoor dat je **niet** OLE‑objecten onderdrukt bij het opslaan naar PPTX. | + +## Resultaten verifiëren + +1. Open `embeddedFonts.html` in Chrome/Firefox. De tabel moet worden weergegeven met het ingebedde lettertype (bijv. Arial) zelfs als dat lettertype niet op de machine is geïnstalleerd. +2. Open `withVariations.xps` in de Windows XPS Viewer. Emoji zoals 👍 moeten correct worden weergegeven. +3. Open `oleEditable.pptx` in PowerPoint. Dubbel‑klik op de OLE‑vorm; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/excel-import-export/_index.md b/cells/english/java/excel-import-export/_index.md index 6b83d1be84..bbe5fdc978 100644 --- a/cells/english/java/excel-import-export/_index.md +++ b/cells/english/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ Learn how to perform bulk data import from Excel using Aspose.Cells for Java API Unlock the potential of Excel data export methods using Aspose.Cells for Java. Learn with practical source code examples in this comprehensive guide. Optimize your data management skills today. ### [CSV Export Java Code](./csv-export-java-code/) Learn how to export data to CSV format using Aspose.Cells for Java. Step-by-step guide with source code for seamless CSV export. +### [How to Export CSV with Java – Set Significant Digits & Export Range to CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Learn how to export CSV with Aspose.Cells for Java, setting significant digits and specifying export range. ### [Exporting Excel to PDF](./exporting-excel-to-pdf/) Learn how to export Excel files to PDF effortlessly using Aspose.Cells for Java. Our step-by-step guide simplifies the process. Start converting today! +### [How to Create PDF from a Workbook – Complete Java Guide](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Learn how to generate PDF files from Excel workbooks using Aspose.Cells for Java with a complete step-by-step guide. ### [Export Excel to XML Java](./export-excel-to-xml-java/) Learn how to export Excel to XML in Java with Aspose.Cells for Java. Step-by-step guide with source code for seamless data conversion. ### [Data Import from Excel](./data-import-from-excel/) @@ -54,4 +58,4 @@ Learn how to export Excel to HTML in Java using Aspose.Cells for Java. Follow th {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/english/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..84f543a527 --- /dev/null +++ b/cells/english/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: How to create PDF and save workbook as PDF, export Excel to HTML, and + use expand function with Aspose.Cells for Java. Step‑by‑step code included. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: en +og_description: How to create PDF from a workbook using Aspose.Cells for Java. Learn + to save workbook as PDF, export Excel to HTML, and use the EXPAND function. +og_title: How to Create PDF from a Workbook – Java Tutorial +tags: +- Aspose.Cells +- Java +- PDF generation +title: How to Create PDF from a Workbook – Complete Java Guide +url: /java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Create PDF from a Workbook – Complete Java Guide + +Ever wondered **how to create PDF** directly from an Excel workbook without juggling third‑party converters? You're not alone. Many developers hit a wall when they need a quick PDF export, an HTML preview, or fancy array formulas—all in one go. + +In this tutorial we’ll walk through a single, self‑contained Java program that does exactly that. We'll **save workbook as PDF**, show you how to **export Excel to HTML** while keeping frozen rows, and demonstrate the **use expand function** inside a worksheet. By the end you’ll have a runnable project you can drop into any Maven or Gradle build. + +> **Pro tip:** All the code below works with Aspose.Cells 23.10 (or newer). If you’re on an older version, some method names might differ slightly. + +--- + +## Prerequisites + +- **Java 17** (or any LTS version) installed and configured. +- **Aspose.Cells for Java** library. Add the following Maven dependency to your `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- An IDE or text editor of your choice (IntelliJ IDEA, VS Code, Eclipse…). + +No external APIs, no web services—just pure Java and the Aspose.Cells SDK. + +--- + +## Overview of the Solution + +We'll split the implementation into **seven logical steps**: + +1. Create a workbook and demonstrate the **EXPAND** function. +2. Enable font variation selectors and **save the workbook as PDF**. +3. Export the same workbook to HTML while preserving frozen rows. +4. Use a Smart Marker with an `IF`‑parameter to inject conditional text. +5. Apply a master‑detail Smart Marker for hierarchical data. +6. Load a Markdown file that contains Base‑64‑encoded images. +7. Configure GridJs options for alignment and borders, then insert data. + +Each step is wrapped in its own method to keep the `main` method tidy and to illustrate **why** we do what we do, not just **what** we type. + +--- + +## Step 1 – Create a Workbook and Use the EXPAND Function + +The **EXPAND** function is a new dynamic‑array formula introduced in Office 365. It lets you spill a range into a larger area without manually copying cells. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Why this matters:** +- `EXPAND` automatically pads the result with blanks, which is perfect when you later **save workbook as PDF**—the PDF will show a clean, rectangular table. +- Calling `calculateFormula()` ensures the formula engine runs before we export anything. + +--- + +## Step 2 – Enable Font Variation Selectors and **Save Workbook as PDF** + +If you need to support advanced typography (e.g., emoji or CJK variation selectors), you must turn the feature on **before** saving. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Key point:** The primary keyword **how to create pdf** is answered here—by calling `workbook.save(..., SaveFormat.PDF)` after configuring the settings. + +--- + +## Step 3 – **Export Excel to HTML** While Preserving Frozen Rows + +Often stakeholders request a quick web preview. Aspose.Cells can export to HTML, and with `setPreserveFrozenRows(true)` we keep the same scrolling experience as in Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Why you care:** Frozen rows are a usability nicety; without them, the header rows disappear when users scroll down the page. + +--- + +## Step 4 – Smart Marker with an IF‑Parameter + +Smart Markers let you merge data into a template without writing loops. The `if`‑parameter adds conditional logic directly inside the marker. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +The output PDF will read **“VIP Customer: Acme Corp”** because `IsVIP` is `true`. Change the flag to `false` and you’ll get **“Regular Customer: Acme Corp”**—no extra code needed. + +--- + +## Step 5 – Master‑Detail Smart Marker Using a Hierarchical Range + +When you have parent‑child data (e.g., orders and line items), a master‑detail marker saves you from manual row insertion. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**What you gain:** The engine expands the master rows for each order and automatically nests the detail rows underneath—perfect for invoices or purchase reports. + +--- + +## Step 6 – Load a Markdown Document with Embedded Base‑64 Images + +If your source data lives in Markdown (common in documentation pipelines), Aspose.Cells can render it straight into a workbook. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Edge case note:** If the Base‑64 string is malformed, Aspose will skip the image but continue processing the rest of the document—no crash. + +--- + +## Step 7 – Configure GridJs Options and Insert Data + +GridJs is a lightweight JavaScript grid that Aspose can render into HTML. Aligning numbers and applying borders improves readability. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Why we care:** Proper alignment and borders make the generated HTML look like a polished spreadsheet—useful for dashboards. + +--- + +## Putting It All Together – The `main` Method + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/english/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..66e1d480c0 --- /dev/null +++ b/cells/english/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-01 +description: Learn how to export csv from a Java workbook while you set significant + digits and export range to csv in a single, clear guide. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: en +og_description: Master how to export csv in Java, set significant digits, and export + range to csv with practical code and tips. +og_title: How to Export CSV with Java – Full Step‑by‑Step Guide +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: How to Export CSV with Java – Set Significant Digits & Export Range to CSV +url: /java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Export CSV with Java – Set Significant Digits & Export Range to CSV + +Ever wondered **how to export csv** from a Java workbook without losing numeric precision? Maybe you’ve tried a quick `toString()` and ended up with a mess of rounding errors. That’s a common snag, especially when you need to **set significant digits** for financial data or scientific results. + +In this tutorial you’ll see a complete, ready‑to‑run example that shows **how to export csv**, how to **set significant digits**, and even how to **export range to csv** while keeping your data tidy. We’ll walk through each line, explain the *why* behind the API calls, and give you tips to avoid the usual pitfalls. No extra docs to chase—just a self‑contained solution you can copy‑paste today. + +## What You’ll Learn + +- Create a workbook and configure numeric precision with `setNumberSignificantDigits`. +- Export a specific cell range as a nicely formatted CSV string. +- Parse Japanese era dates using `DateTimeFormatInfo`. +- Recalculate formulas so dynamic‑array results stay fresh. +- Render a pivot table to a PNG image. +- Use Smart Marker to inject comments and finally save the workbook. + +All of this is done with the Aspose.Cells for Java library, version 23.12 (the latest at time of writing). If you have the JAR on your classpath, you’re good to go. + +--- + +## Step 1: Create a Workbook and **Set Significant Digits** + +Before we can export anything, we need a workbook object. The first thing many developers overlook is numeric precision. By default Aspose.Cells uses the full double precision, which can lead to long, unwieldy strings in CSV. Setting the number of significant digits trims the output while preserving the most important figures. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Why does this matter?** +If you export a cell containing `12345.6789` without limiting digits, the CSV will show the full value, cluttering reports. With `setNumberSignificantDigits(5)`, the same cell becomes `12346`, which is often what business users expect. + +> **Pro tip:** If you need different precision per column, you can apply a custom `Style` instead of the global setting. + +--- + +## Step 2: **Export Range to CSV** – Formatting Matters + +Now that the workbook is ready, let’s pull a rectangular block of data and turn it into a CSV string. We’ll also enforce a two‑decimal format (`0.00`) so every number lines up nicely. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +The call `exportDataTable` does the heavy lifting. Because we set `exportAsString`, the method returns a `String` we can print, write to a file, or send over HTTP. The **export range to csv** step also respects the global `setNumberSignificantDigits` we defined earlier, so the numbers are both rounded to five significant digits *and* displayed with two decimal places. + +**Expected output (truncated):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Common question:** *What if I need a different delimiter, like a semicolon?* +> Simply call `exportOptions.setSeparator(";")` before exporting. + +--- + +## Step 3: Parse a Japanese Era Date (Bonus Utility) + +While not directly related to CSV, many Excel sheets contain locale‑specific dates. Here’s how you can turn a Japanese era string like `"R3/04/01"` into a standard `DateTime` object. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Why include this?** +If your CSV export feeds downstream systems that expect ISO‑8601 dates, you’ll need to normalize any localized formats first. This snippet shows the *how* and *why* in a single place. + +--- + +## Step 4: Recalculate Formulas – Keep Dynamic‑Array Results Fresh + +If your workbook contains formulas (e.g., `=SUM(A1:A10)`), they won’t automatically update after we changed settings. Calling `calculateFormula` forces a full recalculation, ensuring the exported CSV reflects the latest values. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Watch out:** Large workbooks can take noticeable time to recalc. For performance‑critical scenarios, consider `calculateFormula(FormulaCalculationOptions)` to limit the scope. + +--- + +## Step 5: Render the First Pivot Table to a PNG Image + +Sometimes you need a visual snapshot of a pivot table alongside the CSV. The following code renders the first pivot table on the first worksheet to a PNG file. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** If the workbook doesn’t already contain a pivot, you can create one programmatically—see the Aspose.Cells docs for a quick example. + +--- + +## Step 6: Use Smart Marker to Write a Comment and Save the Workbook + +Smart Marker lets you inject dynamic content into cells using simple placeholders. Here we write a comment like “Reviewed by QA” into a designated cell and then save the workbook. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +The `${Comment}` placeholder can be placed anywhere in the sheet (e.g., cell `A1`). When `apply` runs, the placeholder is replaced with the supplied value. + +**Result:** You’ll find an `output/commented.xlsx` file containing the comment, plus the previously generated `pivot.png` and the CSV string printed to the console. + +--- + +## Full Working Example + +Putting it all together, here’s the complete program you can compile and run: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Expected Console Output + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +You’ll also find `output/pivot.png` (if a pivot existed) and `output/commented.xlsx` on disk. + +--- + +## Frequently Asked Questions & Edge Cases + +- **Can I export to a physical CSV file directly?** + Yes. Replace the `exportAsString` block with `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **What if my sheet uses a different locale for numbers?** + Set `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` before exporting; this will swap + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/excel-pivot-tables/_index.md b/cells/english/java/excel-pivot-tables/_index.md index 5840ca6b47..b9505fdb5a 100644 --- a/cells/english/java/excel-pivot-tables/_index.md +++ b/cells/english/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Learn how to create calculated fields in Pivot Tables using Aspose.Cells for Jav Learn how to refresh Pivot Table data in Aspose.Cells for Java. Keep your data up to date effortlessly. ### [Customizing Pivot Table Styles](./customizing-pivot-table-styles/) Learn how to customize pivot table styles in Aspose.Cells for Java API. Create visually appealing pivot tables with ease. +### [Copy Pivot Table in Java – Preserve It, Export to PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Learn how to copy a Pivot Table in Java, preserve its formatting, and export it to PPTX using Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} @@ -49,4 +51,4 @@ Learn how to customize pivot table styles in Aspose.Cells for Java API. Create v {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/english/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..eab5539ac2 --- /dev/null +++ b/cells/english/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-03-01 +description: Copy pivot table in Java while preserving the pivot, then export Excel + to PPTX, disable Excel AutoFilter, and use Smart Marker for JSON arrays – full step‑by‑step + guide. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: en +og_description: Copy pivot table in Java, preserve the pivot definition, export to + PPTX, disable AutoFilter, and use Smart Marker – complete guide for developers. +og_title: Copy Pivot Table in Java – Preserve It, Export to PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Copy Pivot Table in Java – Preserve It, Export to PPTX +url: /java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Copy Pivot Table in Java – Preserve It, Export to PPTX + +Ever needed to **copy pivot table** from one workbook to another without losing the underlying pivot definition? You're not the only one scratching your head over this. In many real‑world projects you’ll find yourself moving data around, and the last thing you want is a broken pivot that throws errors at runtime. + +In this tutorial we’ll walk through a complete solution that not only **copy pivot table** but also shows you how to **preserve pivot table** when copying, **export Excel to PPTX**, **disable Excel AutoFilter**, and **use smart marker** to shove a JSON array into a single cell. By the end you’ll have a single, runnable Java program that covers all four scenarios. + +## Prerequisites + +- Java 8 or newer (the code works with Java 11 as well) +- Aspose.Cells for Java library (version 23.9 or later) – you can grab it from Maven Central +- Basic familiarity with Excel concepts like pivot tables, tables, and text boxes + +If you’re missing the Aspose.Cells JAR, add this to your `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Now, let’s dive in. + +## Step 1: Copy Pivot Table – Preserving the Pivot Definition + +When you simply copy the cell range that houses a pivot table, the pivot metadata often gets left behind. Aspose.Cells gives us a neat way to keep the definition intact by using `copyRange` with a `CopyOptions` instance. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Why this works:** `CopyOptions` tells Aspose.Cells to carry over everything, including the pivot cache and field settings. Without it, you’d end up with plain values and lose the ability to refresh the pivot. + +**Edge case:** If your source pivot spans more than the hard‑coded `A1:G20`, adjust the range accordingly or use `sourceSheet.getPivotTables().get(0).getDataRange()` to fetch it dynamically. + +![Copy pivot table example](image.png "Copy pivot table in Java") + +*Image alt text: copy pivot table in Java diagram* + +## Step 2: Export a Worksheet with an Editable TextBox to PPTX + +Often you need to turn an Excel sheet into a PowerPoint slide—think of weekly dashboards that need to be presented. Aspose.Cells can directly save a worksheet as a PPTX file while preserving shapes like text boxes. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**What’s happening:** The `save` method with `SaveFormat.PPTX` converts the entire sheet, including any editable TextBox, into a PowerPoint slide. The text inside the box remains editable when you open the PPTX in PowerPoint. + +**Tip:** If you have multiple sheets and only want a specific one, call `wb.getWorksheets().removeAt(index)` for the others before saving. + +## Step 3: Disable Excel AutoFilter from a Table + +AutoFilter is handy for end‑users, but sometimes you need to programmatically turn it off—perhaps before exporting data or when generating a clean report. Here’s how to **disable excel autofilter** on an Excel table. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Why you might need this:** Exporting to formats that don’t support AutoFilter (like CSV or PDF) can cause stray filter icons to appear. Disabling it ensures a clean output. + +**Common pitfall:** If the sheet has no tables, `getTables().get(0)` will throw an `IndexOutOfBoundsException`. Always check `sheet.getTables().size()` first in production code. + +## Step 4: Use Smart Marker – Insert a JSON Array as a Single Cell Value + +Smart Marker is Aspose’s templating engine. One handy trick is to treat an entire JSON array as a single cell value, which is perfect for logging or passing structured data downstream. Let’s **use smart marker** to achieve this. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**How it works:** The `${json}` marker in the workbook gets replaced by the whole JSON string because we set `ArrayAsSingle`. Without this option, Aspose would try to expand each array element into separate rows. + +**Variation:** If you need the array split across rows, simply omit `ArrayAsSingle` and let Smart Marker handle the expansion automatically. + +## Full Working Example – All Steps Combined + +Below is a single Java class that strings together every operation we’ve covered. Run it as a regular `main` method; just adjust the file paths to match your environment. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/getting-started/_index.md b/cells/english/java/getting-started/_index.md index 64aefc4834..2bc93d8481 100644 --- a/cells/english/java/getting-started/_index.md +++ b/cells/english/java/getting-started/_index.md @@ -38,6 +38,9 @@ A code tutorial for Aspose.Words Java ### [Aspose.Cells Java License Setup and Verification: Complete Guide](./aspose-cells-java-license-setup-guide/) Master setting up and verifying your Aspose.Cells Java license with our comprehensive guide. Ensure full access to advanced features effortlessly. +### [Create Licensed Workbook – Full Aspose.Cells Java Guide](./create-licensed-workbook-full-aspose-cells-java-guide/) +Learn how to create a licensed workbook in Aspose.Cells for Java, covering license setup, workbook creation, and saving with full feature access. + ### [Aspose.Cells for Java: How to Create and Format Excel Workbooks Efficiently](./aspose-cells-java-workbook-creation-guide/) Learn how to automate Excel workbook creation and formatting in Java with Aspose.Cells. This guide covers setup, workbook manipulation, and cell formatting techniques. @@ -88,4 +91,4 @@ Learn how to check the version of Aspose.Cells in your Java projects with this c {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/english/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..45b61f49c8 --- /dev/null +++ b/cells/english/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: Create licensed workbook quickly with Aspose.Cells Java. Learn how to + license Aspose, set Aspose license Java and read Excel with Aspose in one tutorial. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: en +og_description: Create licensed workbook using Aspose.Cells Java. This guide shows + how to license Aspose, set Aspose license Java and read Excel with Aspose. +og_title: Create Licensed Workbook – Aspose.Cells Java Tutorial +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Create Licensed Workbook – Full Aspose.Cells Java Guide +url: /java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Licensed Workbook – Full Aspose.Cells Java Guide + +Ever wondered how to **create licensed workbook** without tripping over licensing errors? You're not the only one—many developers hit that wall when they first touch Aspose.Cells. The good news? The fix is straightforward, and this guide will walk you through it step‑by‑step. + +In just a few minutes you’ll know **how to license Aspose**, exactly **set Aspose license Java**, and you’ll be ready to **read Excel with Aspose** for real‑world tasks like reporting or data migration. No vague references, just a complete, runnable example you can copy‑paste today. + +--- + +## What You’ll Need + +- Java 17 or newer (the latest stable release works best) +- Aspose.Cells for Java 23.9 (or any recent version) +- Your Aspose.Cells license file (`Aspose.Cells.Java.lic`) +- An IDE or build tool you’re comfortable with (Maven, Gradle, or plain `javac`) + +If any of those sound unfamiliar, don’t worry—each item is covered in the steps below. + +--- + +## Step 1: Add Aspose.Cells Dependency + +Before you can **create licensed workbook**, the library must be on your classpath. With Maven it looks like this: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +For Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro tip:** If you’re using a plain `javac` compile, just drop the JAR into a `libs/` folder and add it to the `-cp` flag. + +--- + +## Step 2: **How to License Aspose** – Load the License File + +The moment you call any Aspose API without a license, you’ll see a watermark in the generated Excel file. To avoid that, you need to **set Aspose license Java** early in your program. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Why this matters:** The `License` object tells Aspose to skip the evaluation mode, removing watermarks and unlocking the full API surface. If the path is wrong, an exception is thrown—so you’ll know instantly. + +--- + +## Step 3: **Create Licensed Workbook** – Build an Excel File + +Now that the license is applied, you can safely **create licensed workbook** objects. Below is a minimal but complete example that also demonstrates **read Excel with Aspose** later on. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**What this does:** + +1. Calls the utility from **Step 2** to **set Aspose license Java**. +2. Instantiates a fresh `Workbook` – the core of a **create licensed workbook** operation. +3. Writes a tiny table, saves it as XLSX, and then immediately reads it back to prove that **read Excel with Aspose** works without watermarks. + +Running the program prints: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +If you open the generated file, you’ll see a clean spreadsheet with no Aspose watermark—proof that the license is active. + +--- + +## Step 4: Common Pitfalls & Edge Cases + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **LicenseNotFoundException** | Path is wrong or file missing. | Use an absolute path or load the file from resources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR not on classpath. | Verify Maven/Gradle dependency or add the JAR manually. | +| **Saving fails on Windows** | Destination folder doesn’t exist. | Ensure the `output/` directory is created (`new File("output").mkdirs();`). | +| **Reading older .xls files** | Default `SaveFormat` may not support old format. | Use `SaveFormat.XLS` when saving, or let Aspose auto‑detect on load. | + +> **Watch out for:** If you’re deploying to a server, the license file should be outside the web‑app root to avoid accidental exposure. + +--- + +## Step 5: Verify the License Programmatically (Optional) + +Sometimes you want to double‑check that the license was loaded correctly before performing heavy operations. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +You can call `LicenseChecker.isLicensed("...")` and abort if it returns `false`. This adds an extra safety net, especially in CI/CD pipelines. + +--- + +## Visual Overview + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Image alt text:* **create licensed workbook diagram** – illustrates the steps to apply Aspose license, create workbook, and read Excel. + +--- + +## Conclusion + +You now have a complete, end‑to‑end solution for **create licensed workbook** using Aspose.Cells for Java. We covered **how to license Aspose**, demonstrated the exact **set Aspose license Java** code, and gave you a quick peek at **read Excel with Aspose** to confirm everything works. + +Next, you might want to explore: + +- Styling cells (fonts, colors) – great for professional reports. +- Exporting to CSV or PDF – Aspose supports many formats out‑of‑the‑box. +- Working with large datasets – use `WorkbookDesigner` for templating. + +Feel free to experiment, and if you hit any snags, drop a comment below. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/ole-objects-embedded-content/_index.md b/cells/english/java/ole-objects-embedded-content/_index.md index 8a45098dc3..5e54c46e48 100644 --- a/cells/english/java/ole-objects-embedded-content/_index.md +++ b/cells/english/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Learn how to efficiently extract GUIDs from embedded PowerPoint objects in Excel ### [Remove ActiveX Controls from Excel with Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) A code tutorial for Aspose.Words Java - +### [How to Embed Fonts – Complete Guide for HTML, XPS, and OLE Export](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Learn how to embed fonts when exporting Excel to HTML, XPS, and OLE formats using Aspose.Cells for Java. ## Additional Resources @@ -64,4 +65,4 @@ A code tutorial for Aspose.Words Java {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/english/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..198d968de2 --- /dev/null +++ b/cells/english/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-01 +description: Learn how to embed fonts in HTML and other formats. Step‑by‑step tutorial + covering embed fonts in html, convert excel to html, how to export ole, and convert + excel to xps. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: en +og_description: How to embed fonts in HTML, XPS, and OLE exports. Learn the full workflow, + see runnable Java code, and master embed fonts in html for Excel conversions. +og_title: How to Embed Fonts – Full Java Tutorial +tags: +- Aspose.Cells +- Java +- Document Export +title: How to Embed Fonts – Complete Guide for HTML, XPS, and OLE Export +url: /java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Embed Fonts – Complete Guide for HTML, XPS, and OLE Export + +Ever wondered **how to embed fonts** when you turn an Excel workbook into a web page or a printable document? You’re not alone. Many developers hit a wall when the output looks fine on their machine but breaks on another because the required fonts are missing. + +In this tutorial we’ll walk through a real‑world scenario using Aspose.Cells for Java: we’ll embed fonts in HTML, preserve emoji variation selectors while converting to XPS, and even keep an OLE object editable when exporting to PPTX. By the end you’ll have a solid, copy‑and‑paste solution that answers “how to embed fonts” and also touches on **embed fonts in html**, **convert excel to html**, **how to export ole**, and **convert excel to xps**. + +## Prerequisites + +- Java 17 (or any recent JDK) +- Aspose.Cells for Java 25.x or later +- A development IDE (IntelliJ IDEA, Eclipse, or VS Code) +- Basic familiarity with Excel data structures + +No external services are required—everything runs locally. + +## Overview of the Solution + +1. **Create a workbook** and use the `WRAPCOLS` function to transform a vertical range into a three‑column layout. +2. **Save the workbook as XPS** while turning on font variation selectors so emoji stay intact. +3. **Export to HTML** with embedded fonts, guaranteeing that the page looks the same everywhere. +4. **Export a workbook containing an OLE object to PPTX**, preserving editability. +5. **Apply a Smart Marker template** that demonstrates master‑detail data binding. + +Each step is isolated in its own H2 section, making the guide easy to skim for both search engines and AI assistants. + +![How to embed fonts illustration](image.png "how to embed fonts") + +*Image alt text: how to embed fonts diagram showing the workflow from Excel to HTML, XPS, and PPTX.* + +--- + +## Step 1 – Create a Workbook and Use WRAPCOLS (Why This Matters for embed fonts in html) + +Before we can talk about embedding fonts, we need a workbook that actually contains data. The `WRAPCOLS` function is a handy way to split a single column into multiple columns, which often makes the final HTML more readable. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Why this step?** +The `WRAPCOLS` call generates a multi‑column range that later appears in HTML as a table. When we later **embed fonts in html**, the table’s styling will rely on the fonts we embed, ensuring consistent rendering across browsers. + +--- + +## Step 2 – Save the Workbook as XPS While Preserving Emoji (convert excel to xps) + +If you need a print‑ready format, XPS is a solid choice. However, modern documents often contain emoji or symbols that use variation selectors. Turning on `EnableFontVariationSelectors` makes sure those characters survive the conversion. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**What you get:** +An XPS file that displays any embedded emoji exactly as in the source workbook. This satisfies the **convert excel to xps** requirement and demonstrates that font handling isn’t limited to HTML. + +--- + +## Step 3 – Export to HTML with Embedded Fonts (how to embed fonts & embed fonts in html) + +Now we hit the core of the tutorial: **how to embed fonts** when converting Excel to HTML. Aspose.Cells lets us embed the fonts directly into the generated HTML file, eliminating the need for external font files. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**How it works:** +`setEmbedFonts(true)` tells the renderer to read the font files used in the workbook and embed them as Base64‑encoded `@font-face` rules inside the ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Notice the `@font-face` rule—this is the concrete answer to **embed fonts in html**. + +--- + +## Step 4 – Export a Workbook Containing an OLE Object to PPTX (how to export ole) + +Many business reports embed Word documents, PDFs, or other Excel sheets as OLE objects. When you export such a workbook to PowerPoint, you often lose the ability to edit that object. Aspose.Cells preserves editability out of the box. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Why this matters:** +If you’re looking for **how to export ole**, this snippet shows the exact API call. The resulting PowerPoint slide contains the OLE object as a live, double‑click‑to‑edit component—no extra post‑processing needed. + +--- + +## Step 5 – Apply a Smart Marker Template (master‑detail) and Finish the Demo + +Smart Markers let you bind a data source (Map, JSON, DataTable) directly to an Excel template. Here’s a minimal example that prints master‑detail rows. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**What you see:** +A new workbook (`smartMarkerResult.xlsx`) where the template placeholders are replaced with the data. This step isn’t directly about fonts, but it rounds out the tutorial by showing a typical reporting workflow that often precedes an **embed fonts in html** export. + +--- + +## Common Pitfalls & Pro Tips (Ensuring Successful Font Embedding) + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Fonts are missing in the HTML file | The workbook uses a system font that isn’t installed on the server. | Use `Workbook.getSettings().setDefaultFont("Arial")` before loading data, or embed the required font files manually. | +| Output HTML is huge | Embedding many large fonts inflates the file size. | Limit embedding to only the fonts you actually use: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji disappear after XPS conversion | Variation selectors are stripped by default. | Enable `settings.setEnableFontVariationSelectors(true)` as shown in Step 2. | +| OLE object becomes a static image in PPTX | The source workbook was saved with `setSuppressOLEObjects(true)`. | Ensure you **do not** suppress OLE objects when saving to PPTX. | + +--- + +## Verifying the Results + +1. Open `embeddedFonts.html` in Chrome/Firefox. The table should display using the embedded font (e.g., Arial) even if that font isn’t installed on the machine. +2. Open `withVariations.xps` in the Windows XPS Viewer. Emoji such as 👍 should render correctly. +3. Open `oleEditable.pptx` in PowerPoint. Double‑click the OLE shape; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/french/java/excel-import-export/_index.md b/cells/french/java/excel-import-export/_index.md index 3417a5c52e..7a7502430f 100644 --- a/cells/french/java/excel-import-export/_index.md +++ b/cells/french/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ Apprenez à importer des données en masse depuis Excel avec l'API Aspose.Cells Exploitez le potentiel des méthodes d'exportation de données Excel avec Aspose.Cells pour Java. Apprenez-en plus grâce à des exemples concrets de code source dans ce guide complet. Optimisez vos compétences en gestion de données dès aujourd'hui. ### [Exportation CSV de code Java](./csv-export-java-code/) Découvrez comment exporter des données au format CSV avec Aspose.Cells pour Java. Guide étape par étape avec code source pour une exportation CSV fluide. +### [Comment exporter CSV avec Java – Définir les chiffres significatifs et la plage d'exportation CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Apprenez à exporter des données CSV en définissant les chiffres significatifs et la plage d'exportation avec Aspose.Cells pour Java. ### [Exportation d'Excel au format PDF](./exporting-excel-to-pdf/) Apprenez à exporter facilement des fichiers Excel au format PDF avec Aspose.Cells pour Java. Notre guide étape par étape simplifie le processus. Commencez la conversion dès aujourd'hui ! +### [Comment créer un PDF à partir d'un classeur – Guide complet Java](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Apprenez à générer un fichier PDF à partir d'un classeur Excel en Java avec Aspose.Cells, guide complet pas à pas. ### [Exporter Excel vers XML Java](./export-excel-to-xml-java/) Apprenez à exporter des données Excel vers XML en Java avec Aspose.Cells pour Java. Guide étape par étape avec code source pour une conversion de données fluide. ### [Importation de données depuis Excel](./data-import-from-excel/) diff --git a/cells/french/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/french/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..eabb4bb5ca --- /dev/null +++ b/cells/french/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Comment créer un PDF et enregistrer le classeur au format PDF, exporter + Excel en HTML, et utiliser la fonction d’extension avec Aspose.Cells pour Java. + Code étape par étape inclus. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: fr +og_description: Comment créer un PDF à partir d’un classeur avec Aspose.Cells pour + Java. Apprenez à enregistrer le classeur au format PDF, à exporter Excel en HTML + et à utiliser la fonction EXPAND. +og_title: Comment créer un PDF à partir d'un classeur – Tutoriel Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Comment créer un PDF à partir d’un classeur – Guide complet Java +url: /fr/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment créer un PDF à partir d'un classeur – Guide complet Java + +Vous vous êtes déjà demandé **comment créer un PDF** directement à partir d'un classeur Excel sans jongler avec des convertisseurs tiers ? Vous n'êtes pas seul. De nombreux développeurs se heurtent à un mur lorsqu'ils ont besoin d'une exportation PDF rapide, d'un aperçu HTML ou de formules de tableau dynamiques—le tout en une seule fois. + +Dans ce tutoriel, nous parcourrons un programme Java autonome qui fait exactement cela. Nous **enregistrerons le classeur au format PDF**, vous montrerons comment **exporter Excel en HTML** tout en conservant les lignes figées, et démontrerons **l'utilisation de la fonction EXPAND** dans une feuille de calcul. À la fin, vous disposerez d'un projet exécutable que vous pourrez intégrer à n'importe quel build Maven ou Gradle. + +> **Astuce :** Tout le code ci‑dessus fonctionne avec Aspose.Cells 23.10 (ou plus récent). Si vous utilisez une version antérieure, certains noms de méthodes peuvent différer légèrement. + +--- + +## Prérequis + +- **Java 17** (ou toute version LTS) installé et configuré. +- **Aspose.Cells for Java** library. Ajoutez la dépendance Maven suivante à votre `pom.xml` : + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Un IDE ou éditeur de texte de votre choix (IntelliJ IDEA, VS Code, Eclipse…). + +Pas d'API externes, pas de services web—juste du Java pur et le SDK Aspose.Cells. + +--- + +## Vue d'ensemble de la solution + +Nous diviserons l'implémentation en **sept étapes logiques** : + +1. Créer un classeur et démontrer la fonction **EXPAND**. +2. Activer les sélecteurs de variation de police et **enregistrer le classeur au format PDF**. +3. Exporter le même classeur en HTML tout en préservant les lignes figées. +4. Utiliser un Smart Marker avec un paramètre `IF` pour injecter du texte conditionnel. +5. Appliquer un Smart Marker maître‑détail pour des données hiérarchiques. +6. Charger un fichier Markdown contenant des images encodées en Base‑64. +7. Configurer les options GridJs pour l'alignement et les bordures, puis insérer les données. + +Chaque étape est encapsulée dans sa propre méthode afin de garder la méthode `main` claire et d'illustrer **pourquoi** nous faisons ce que nous faisons, pas seulement **quoi** nous tapons. + +--- + +## Étape 1 – Créer un classeur et utiliser la fonction EXPAND + +La fonction **EXPAND** est une nouvelle formule de tableau dynamique introduite dans Office 365. Elle vous permet de déverser une plage dans une zone plus grande sans copier manuellement les cellules. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Pourquoi c’est important :** +- `EXPAND` remplit automatiquement le résultat avec des cellules vides, ce qui est parfait lorsque vous **enregistrez le classeur au format PDF** plus tard—le PDF affichera un tableau propre et rectangulaire. +- Appeler `calculateFormula()` garantit que le moteur de formules s'exécute avant que nous n'exportions quoi que ce soit. + +--- + +## Étape 2 – Activer les sélecteurs de variation de police et **enregistrer le classeur au format PDF** + +Si vous devez prendre en charge une typographie avancée (par ex., les emojis ou les sélecteurs de variation CJK), vous devez activer la fonctionnalité **avant** l’enregistrement. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Point clé :** le mot‑clé principal **how to create pdf** trouve sa réponse ici—en appelant `workbook.save(..., SaveFormat.PDF)` après avoir configuré les paramètres. + +--- + +## Étape 3 – **Exporter Excel en HTML** tout en conservant les lignes figées + +Souvent, les parties prenantes demandent un aperçu web rapide. Aspose.Cells peut exporter en HTML, et avec `setPreserveFrozenRows(true)` nous conservons la même expérience de défilement qu’Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Pourquoi cela vous importe :** les lignes figées sont un atout d’utilisabilité ; sans elles, les lignes d’en‑tête disparaissent lorsque les utilisateurs font défiler la page. + +--- + +## Étape 4 – Smart Marker avec un paramètre IF + +Les Smart Markers vous permettent de fusionner des données dans un modèle sans écrire de boucles. Le paramètre `if` ajoute une logique conditionnelle directement dans le marqueur. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Le PDF généré affichera **« VIP Customer : Acme Corp »** parce que `IsVIP` vaut `true`. Changez le drapeau à `false` et vous obtiendrez **« Regular Customer : Acme Corp »**—aucun code supplémentaire nécessaire. + +--- + +## Étape 5 – Smart Marker maître‑détail utilisant une plage hiérarchique + +Lorsque vous avez des données parent‑enfant (par ex., des commandes et leurs lignes), un marqueur maître‑détail vous évite d’insérer manuellement des lignes. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Ce que vous gagnez :** le moteur développe les lignes maîtres pour chaque commande et imbrique automatiquement les lignes de détail en dessous—idéal pour les factures ou les rapports d’achats. + +--- + +## Étape 6 – Charger un document Markdown avec des images encodées en Base‑64 + +Si vos données sources sont en Markdown (courant dans les pipelines de documentation), Aspose.Cells peut les rendre directement dans un classeur. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Note de cas limite :** si la chaîne Base‑64 est malformée, Aspose ignorera l’image mais continuera à traiter le reste du document—pas de plantage. + +--- + +## Étape 7 – Configurer les options GridJs et insérer des données + +GridJs est une grille JavaScript légère qu’Aspose peut rendre en HTML. Aligner les nombres et appliquer des bordures améliore la lisibilité. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Pourquoi cela compte :** un alignement correct et des bordures donnent à l’HTML généré l’aspect d’une feuille de calcul soignée—utile pour les tableaux de bord. + +--- + +## Rassembler le tout – La méthode `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/french/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/french/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..1863f24b12 --- /dev/null +++ b/cells/french/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-01 +description: Apprenez à exporter un CSV depuis un classeur Java tout en définissant + les chiffres significatifs et la plage d’exportation, le tout dans un guide unique + et clair. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: fr +og_description: Maîtrisez comment exporter un CSV en Java, définir les chiffres significatifs + et exporter une plage vers CSV avec du code pratique et des astuces. +og_title: Comment exporter un CSV avec Java – Guide complet étape par étape +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Comment exporter un CSV avec Java – définir les chiffres significatifs et la + plage d’exportation en CSV +url: /fr/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment exporter un CSV avec Java – Définir les chiffres significatifs & exporter une plage vers CSV + +Vous vous êtes déjà demandé **comment exporter un csv** depuis un classeur Java sans perdre la précision numérique ? Peut‑être avez‑vous essayé un rapide `toString()` et vous êtes retrouvé avec un tas d’erreurs d’arrondi. C’est un problème fréquent, surtout lorsqu’il faut **définir les chiffres significatifs** pour des données financières ou scientifiques. + +Dans ce tutoriel vous verrez un exemple complet, prêt à l’emploi, qui montre **comment exporter csv**, comment **définir les chiffres significatifs**, et même comment **exporter une plage vers csv** tout en gardant vos données propres. Nous parcourrons chaque ligne, expliquerons le *pourquoi* des appels d’API, et vous donnerons des astuces pour éviter les pièges habituels. Pas de documentation supplémentaire à chercher — juste une solution autonome que vous pouvez copier‑coller dès aujourd’hui. + +## Ce que vous allez apprendre + +- Créer un classeur et configurer la précision numérique avec `setNumberSignificantDigits`. +- Exporter une plage de cellules spécifique sous forme de chaîne CSV bien formatée. +- Analyser les dates d’ère japonaise avec `DateTimeFormatInfo`. +- Recalculer les formules afin que les résultats de tableaux dynamiques restent à jour. +- Rendre un tableau croisé dynamique en image PNG. +- Utiliser Smart Marker pour injecter des commentaires et enfin enregistrer le classeur. + +Tout cela est réalisé avec la bibliothèque Aspose.Cells for Java, version 23.12 (la plus récente au moment de la rédaction). Si le JAR est présent dans votre classpath, vous êtes prêt à démarrer. + +--- + +## Étape 1 : Créer un classeur et **définir les chiffres significatifs** + +Avant de pouvoir exporter quoi que ce soit, il nous faut un objet workbook. La première chose que de nombreux développeurs négligent est la précision numérique. Par défaut, Aspose.Cells utilise la pleine précision double, ce qui peut entraîner des chaînes longues et peu maniables dans le CSV. Définir le nombre de chiffres significatifs réduit la sortie tout en conservant les chiffres les plus importants. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Pourquoi est‑ce important ?** +Si vous exportez une cellule contenant `12345.6789` sans limiter les chiffres, le CSV affichera la valeur complète, encombrant les rapports. Avec `setNumberSignificantDigits(5)`, la même cellule devient `12346`, ce qui correspond souvent à ce que les utilisateurs métier attendent. + +> **Conseil pro :** Si vous avez besoin de précisions différentes par colonne, vous pouvez appliquer un `Style` personnalisé au lieu du paramètre global. + +--- + +## Étape 2 : **Exporter une plage vers CSV** – Le format compte + +Maintenant que le classeur est prêt, extrayons un bloc rectangulaire de données et transformons‑le en chaîne CSV. Nous appliquerons également un format à deux décimales (`0.00`) afin que chaque nombre s’aligne correctement. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +L’appel `exportDataTable` fait le gros du travail. Parce que nous avons défini `exportAsString`, la méthode renvoie une `String` que nous pouvons afficher, écrire dans un fichier ou envoyer via HTTP. L’étape **export range to csv** respecte également le `setNumberSignificantDigits` global défini précédemment, de sorte que les nombres sont à la fois arrondis à cinq chiffres significatifs *et* affichés avec deux décimales. + +**Sortie attendue (troncature) :** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Question fréquente :** *Et si j’ai besoin d’un séparateur différent, comme un point‑virgule ?* +> Il suffit d’appeler `exportOptions.setSeparator(";")` avant l’exportation. + +--- + +## Étape 3 : Analyser une date d’ère japonaise (outil bonus) + +Même si ce n’est pas directement lié au CSV, de nombreuses feuilles Excel contiennent des dates spécifiques à une locale. Voici comment transformer une chaîne d’ère japonaise telle que `"R3/04/01"` en un objet `DateTime` standard. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Sortie : + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Pourquoi l’inclure ?** +Si votre export CSV alimente des systèmes en aval qui attendent des dates au format ISO‑8601, vous devrez d’abord normaliser les formats localisés. Ce fragment montre le *comment* et le *pourquoi* en un seul endroit. + +--- + +## Étape 4 : Recalculer les formules – Garder les résultats de tableaux dynamiques à jour + +Si votre classeur contient des formules (par ex. `=SUM(A1:A10)`), elles ne se mettront pas à jour automatiquement après la modification des paramètres. Appeler `calculateFormula` force un recalcul complet, garantissant que le CSV exporté reflète les dernières valeurs. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Attention :** Les classeurs volumineux peuvent prendre un temps notable pour le recalcul. Pour les scénarios critiques en performance, envisagez `calculateFormula(FormulaCalculationOptions)` afin de limiter la portée. + +--- + +## Étape 5 : Rendre le premier tableau croisé dynamique en image PNG + +Parfois, vous avez besoin d’une capture visuelle d’un tableau croisé dynamique en plus du CSV. Le code suivant rend le premier tableau croisé dynamique de la première feuille dans un fichier PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Astuce :** Si le classeur ne contient pas encore de tableau croisé, vous pouvez en créer un programmatiquement — consultez la documentation Aspose.Cells pour un exemple rapide. + +--- + +## Étape 6 : Utiliser Smart Marker pour écrire un commentaire et enregistrer le classeur + +Smart Marker vous permet d’injecter du contenu dynamique dans les cellules à l’aide de simples espaces réservés. Ici, nous écrivons un commentaire tel que « Reviewed by QA » dans une cellule désignée, puis nous enregistrons le classeur. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +L’espace réservé `${Comment}` peut être placé n’importe où dans la feuille (par ex. cellule `A1`). Lorsque `apply` s’exécute, le placeholder est remplacé par la valeur fournie. + +**Résultat :** Vous trouverez un fichier `output/commented.xlsx` contenant le commentaire, ainsi que le `pivot.png` généré précédemment et la chaîne CSV affichée dans la console. + +--- + +## Exemple complet fonctionnel + +En réunissant tous les éléments, voici le programme complet que vous pouvez compiler et exécuter : + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Sortie console attendue + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Vous trouverez également `output/pivot.png` (si un tableau croisé existait) et `output/commented.xlsx` sur le disque. + +--- + +## Questions fréquentes & cas limites + +- **Puis‑je exporter directement vers un fichier CSV physique ?** + Oui. Remplacez le bloc `exportAsString` par `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Et si ma feuille utilise une locale différente pour les nombres ?** + Définissez `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` avant l’exportation ; cela remplacera + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/french/java/excel-pivot-tables/_index.md b/cells/french/java/excel-pivot-tables/_index.md index 50f0d91b95..83913c8042 100644 --- a/cells/french/java/excel-pivot-tables/_index.md +++ b/cells/french/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Apprenez à créer des champs calculés dans des tableaux croisés dynamiques av Apprenez à actualiser les données d'un tableau croisé dynamique dans Aspose.Cells pour Java. Maintenez vos données à jour facilement. ### [Personnalisation des styles de tableau croisé dynamique](./customizing-pivot-table-styles/) Découvrez comment personnaliser les styles de tableaux croisés dynamiques dans l'API Aspose.Cells pour Java. Créez facilement des tableaux croisés dynamiques attrayants. +### [Copier un tableau croisé dynamique en Java – le conserver, exporter en PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Apprenez à copier un tableau croisé dynamique, le préserver et l'exporter au format PPTX avec Aspose.Cells pour Java. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/french/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..f0972eadfb --- /dev/null +++ b/cells/french/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-01 +description: Copier un tableau croisé dynamique en Java tout en préservant le pivot, + puis exporter Excel en PPTX, désactiver le filtre automatique d’Excel et utiliser + Smart Marker pour les tableaux JSON – guide complet étape par étape. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: fr +og_description: Copier un tableau croisé dynamique en Java, conserver la définition + du tableau croisé, exporter en PPTX, désactiver l’AutoFilter et utiliser Smart Marker + – guide complet pour les développeurs. +og_title: Copier le tableau croisé dynamique en Java – le conserver, l'exporter en + PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Copier le tableau croisé dynamique en Java – le préserver, l’exporter en PPTX +url: /fr/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Copier un tableau croisé dynamique en Java – le préserver, l'exporter en PPTX + +Vous avez déjà eu besoin de **copier un tableau croisé dynamique** d’un classeur à un autre sans perdre la définition sous‑jacente du tableau croisé dynamique ? Vous n'êtes pas le seul à vous creuser la tête à ce sujet. Dans de nombreux projets réels, vous vous retrouverez à déplacer des données, et la dernière chose que vous voulez est un tableau croisé dynamique cassé qui génère des erreurs à l’exécution. + +Dans ce tutoriel, nous parcourrons une solution complète qui non seulement **copie un tableau croisé dynamique**, mais vous montre également comment **préserver le tableau croisé dynamique** lors de la copie, **exporter Excel vers PPTX**, **désactiver le filtre automatique d’Excel**, et **utiliser les smart markers** pour insérer un tableau JSON dans une seule cellule. À la fin, vous disposerez d’un programme Java unique et exécutable couvrant les quatre scénarios. + +## Prérequis + +- Java 8 ou plus récent (le code fonctionne également avec Java 11) +- Bibliothèque Aspose.Cells for Java (version 23.9 ou ultérieure) – vous pouvez la récupérer depuis Maven Central +- Familiarité de base avec les concepts Excel tels que les tableaux croisés dynamiques, les tables et les zones de texte + +Si le JAR Aspose.Cells vous manque, ajoutez ceci à votre `pom.xml` : + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Maintenant, plongeons‑y. + +## Étape 1 : Copier le tableau croisé dynamique – préserver la définition du tableau croisé dynamique + +Lorsque vous copiez simplement la plage de cellules qui contient un tableau croisé dynamique, les métadonnées du tableau sont souvent laissées de côté. Aspose.Cells nous offre une méthode pratique pour conserver la définition intacte en utilisant `copyRange` avec une instance de `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Pourquoi cela fonctionne :** `CopyOptions` indique à Aspose.Cells de transférer tout, y compris le cache du tableau croisé dynamique et les paramètres de champ. Sans cela, vous vous retrouverez avec des valeurs simples et perdrez la capacité de rafraîchir le tableau croisé dynamique. + +**Cas particulier :** Si votre tableau croisé dynamique source s’étend au‑delà de la plage codée en dur `A1:G20`, ajustez la plage en conséquence ou utilisez `sourceSheet.getPivotTables().get(0).getDataRange()` pour la récupérer dynamiquement. + +![Exemple de copie de tableau croisé dynamique](image.png "Copier un tableau croisé dynamique en Java") + +*Texte alternatif de l’image : diagramme de copie de tableau croisé dynamique en Java* + +## Étape 2 : Exporter une feuille de calcul avec une zone de texte éditable vers PPTX + +Il arrive souvent que vous deviez transformer une feuille Excel en diapositive PowerPoint—pensez aux tableaux de bord hebdomadaires à présenter. Aspose.Cells peut enregistrer directement une feuille de calcul au format PPTX tout en préservant les formes telles que les zones de texte. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Ce qui se passe :** La méthode `save` avec `SaveFormat.PPTX` convertit toute la feuille, y compris toute zone de texte éditable, en une diapositive PowerPoint. Le texte à l’intérieur de la zone reste éditable lorsque vous ouvrez le PPTX dans PowerPoint. + +**Astuce :** Si vous avez plusieurs feuilles et que vous ne voulez qu’une feuille spécifique, appelez `wb.getWorksheets().removeAt(index)` pour les autres avant d’enregistrer. + +## Étape 3 : Désactiver le filtre automatique d’Excel d’une table + +Le filtre automatique est pratique pour les utilisateurs finaux, mais il faut parfois le désactiver par programme—peut‑être avant d’exporter des données ou lors de la génération d’un rapport propre. Voici comment **désactiver le filtre automatique d’Excel** sur une table Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Pourquoi cela peut être nécessaire :** L’exportation vers des formats qui ne prennent pas en charge le filtre automatique (comme CSV ou PDF) peut faire apparaître des icônes de filtre parasites. Le désactiver garantit une sortie propre. + +**Erreur fréquente :** Si la feuille ne contient aucune table, `getTables().get(0)` lèvera une `IndexOutOfBoundsException`. Vérifiez toujours d’abord `sheet.getTables().size()` dans le code de production. + +## Étape 4 : Utiliser Smart Marker – Insérer un tableau JSON comme valeur d’une seule cellule + +Smart Marker est le moteur de templating d’Aspose. Une astuce pratique consiste à traiter un tableau JSON complet comme valeur d’une seule cellule, ce qui est parfait pour la journalisation ou le passage de données structurées en aval. Utilisons **Smart Marker** pour y parvenir. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Comment cela fonctionne :** Le marqueur `${json}` dans le classeur est remplacé par la chaîne JSON complète car nous avons défini `ArrayAsSingle`. Sans cette option, Aspose tenterait d’étendre chaque élément du tableau en lignes séparées. + +**Variation :** Si vous avez besoin que le tableau soit réparti sur plusieurs lignes, omettez simplement `ArrayAsSingle` et laissez Smart Marker gérer automatiquement l’expansion. + +## Exemple complet fonctionnel – Toutes les étapes combinées + +Voici une classe Java unique qui enchaîne toutes les opérations que nous avons couvertes. Exécutez‑la comme une méthode `main` ordinaire ; ajustez simplement les chemins de fichiers pour correspondre à votre environnement. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/french/java/getting-started/_index.md b/cells/french/java/getting-started/_index.md index badba4e111..b81cd8e57a 100644 --- a/cells/french/java/getting-started/_index.md +++ b/cells/french/java/getting-started/_index.md @@ -71,7 +71,8 @@ Apprenez à ouvrir et traiter efficacement des fichiers SpreadsheetML en Java av ### [Comment récupérer la version d'Aspose.Cells en Java : guide étape par étape](./retrieve-aspose-cells-version-java-guide/) Découvrez comment vérifier la version d'Aspose.Cells dans vos projets Java grâce à ce guide complet. Assurez la compatibilité et exploitez efficacement les nouvelles fonctionnalités. - +### [Créer un classeur sous licence – Guide complet Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Apprenez à créer un classeur Excel avec licence Aspose.Cells en Java, incluant la configuration de la licence et les meilleures pratiques. ## Ressources supplémentaires diff --git a/cells/french/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/french/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..da8be6d972 --- /dev/null +++ b/cells/french/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Créez rapidement un classeur sous licence avec Aspose.Cells Java. Apprenez + comment licencier Aspose, définir la licence Aspose Java et lire des fichiers Excel + avec Aspose dans un seul tutoriel. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: fr +og_description: Créer un classeur sous licence avec Aspose.Cells Java. Ce guide montre + comment activer la licence Aspose, configurer la licence Aspose en Java et lire + des fichiers Excel avec Aspose. +og_title: Créer un classeur sous licence – Tutoriel Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Créer un classeur sous licence – Guide complet Aspose.Cells Java +url: /fr/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un classeur sous licence – Guide complet Aspose.Cells Java + +Vous vous êtes déjà demandé comment **créer un classeur sous licence** sans rencontrer d’erreurs de licence ? Vous n'êtes pas le seul—de nombreux développeurs se heurtent à ce problème lorsqu'ils utilisent Aspose.Cells pour la première fois. Bonne nouvelle ? La solution est simple, et ce guide vous l'expliquera étape par étape. + +En quelques minutes, vous saurez **comment licencier Aspose**, exactement **définir la licence Aspose Java**, et vous serez prêt à **lire Excel avec Aspose** pour des tâches réelles comme le reporting ou la migration de données. Pas de références vagues, juste un exemple complet et exécutable que vous pouvez copier‑coller dès aujourd'hui. + +--- + +## Ce dont vous avez besoin + +- Java 17 ou plus récent (la dernière version stable fonctionne le mieux) +- Aspose.Cells for Java 23.9 (ou toute version récente) +- Votre fichier de licence Aspose.Cells (`Aspose.Cells.Java.lic`) +- Un IDE ou un outil de construction avec lequel vous êtes à l'aise (Maven, Gradle ou simplement `javac`) + +Si l'un de ces éléments vous semble inconnu, ne vous inquiétez pas—chaque point est abordé dans les étapes suivantes. + +--- + +## Étape 1 : Ajouter la dépendance Aspose.Cells + +Avant de pouvoir **créer un classeur sous licence**, la bibliothèque doit être sur votre classpath. Avec Maven, cela ressemble à ceci : + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Pour Gradle : + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Astuce :** Si vous utilisez une compilation `javac` simple, il suffit de placer le JAR dans un dossier `libs/` et de l'ajouter au drapeau `-cp`. + +--- + +## Étape 2 : **Comment licencier Aspose** – Charger le fichier de licence + +Dès que vous appelez une API Aspose sans licence, vous verrez un filigrane dans le fichier Excel généré. Pour éviter cela, vous devez **définir la licence Aspose Java** tôt dans votre programme. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Pourquoi c’est important :** L’objet `License` indique à Aspose de passer le mode d'évaluation, supprimant les filigranes et débloquant l’ensemble de l’API. Si le chemin est incorrect, une exception est levée—vous le saurez immédiatement. + +--- + +## Étape 3 : **Créer un classeur sous licence** – Construire un fichier Excel + +Maintenant que la licence est appliquée, vous pouvez créer en toute sécurité des objets **create licensed workbook**. Voici un exemple minimal mais complet qui montre également **read Excel with Aspose** plus tard. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Ce que cela fait :** + +1. Appelle l’utilitaire de **l’Étape 2** pour **définir la licence Aspose Java**. +2. Instancie un nouveau `Workbook` – le cœur d’une opération **create licensed workbook**. +3. Écrit une petite table, l’enregistre au format XLSX, puis la relit immédiatement pour prouver que **read Excel with Aspose** fonctionne sans filigranes. + +L’exécution du programme affiche: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Si vous ouvrez le fichier généré, vous verrez une feuille de calcul propre sans filigrane Aspose—preuve que la licence est active. + +--- + +## Étape 4 : Pièges courants et cas limites + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **LicenseNotFoundException** | Le chemin est incorrect ou le fichier est manquant. | Utilisez un chemin absolu ou chargez le fichier depuis les ressources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Le JAR Aspose n’est pas sur le classpath. | Vérifiez la dépendance Maven/Gradle ou ajoutez le JAR manuellement. | +| **Saving fails on Windows** | Le dossier de destination n’existe pas. | Assurez‑vous que le répertoire `output/` est créé (`new File("output").mkdirs();`). | +| **Reading older .xls files** | Le `SaveFormat` par défaut peut ne pas prendre en charge l’ancien format. | Utilisez `SaveFormat.XLS` lors de l’enregistrement, ou laissez Aspose détecter automatiquement lors du chargement. | + +> **Attention :** Si vous déployez sur un serveur, le fichier de licence doit être en dehors de la racine de l’application web pour éviter toute exposition accidentelle. + +--- + +## Étape 5 : Vérifier la licence par programme (optionnel) + +Parfois, vous voulez revérifier que la licence a été chargée correctement avant d’effectuer des opérations lourdes. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Vous pouvez appeler `LicenseChecker.isLicensed("...")` et interrompre si cela renvoie `false`. Cela ajoute une couche de sécurité supplémentaire, notamment dans les pipelines CI/CD. + +--- + +## Vue d’ensemble visuelle + +![Diagramme montrant le flux depuis l'application de la licence jusqu'à la création et la lecture d'un classeur](create-licensed-workbook-diagram.png "create licensed workbook") + +*Texte alternatif de l’image :* **diagramme create licensed workbook** – illustre les étapes d’application de la licence Aspose, de création du classeur et de lecture d’Excel. + +--- + +## Conclusion + +Vous disposez maintenant d’une solution complète, de bout en bout, pour **create licensed workbook** avec Aspose.Cells pour Java. Nous avons couvert **how to license Aspose**, démontré le code exact **set Aspose license Java**, et vous avons donné un aperçu rapide de **read Excel with Aspose** pour confirmer que tout fonctionne. + +Ensuite, vous pourriez vouloir explorer : + +- Mise en forme des cellules (polices, couleurs) – idéal pour des rapports professionnels. +- Exportation vers CSV ou PDF – Aspose prend en charge de nombreux formats prêts à l’emploi. +- Gestion de grands ensembles de données – utilisez `WorkbookDesigner` pour le templating. + +N’hésitez pas à expérimenter, et si vous rencontrez des problèmes, laissez un commentaire ci‑dessous. Bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/french/java/ole-objects-embedded-content/_index.md b/cells/french/java/ole-objects-embedded-content/_index.md index ed5c0a0d52..b6ccb4c4df 100644 --- a/cells/french/java/ole-objects-embedded-content/_index.md +++ b/cells/french/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Découvrez comment extraire efficacement les GUID d'objets PowerPoint intégrés ### [Supprimer les contrôles ActiveX d'Excel avec Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Un tutoriel de code pour Aspose.Words Java - +### [Comment incorporer des polices – Guide complet pour l'exportation HTML, XPS et OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Apprenez à intégrer des polices dans les fichiers HTML, XPS et OLE lors de l'exportation avec Aspose.Cells pour Java. ## Ressources supplémentaires diff --git a/cells/french/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/french/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..b914adf45a --- /dev/null +++ b/cells/french/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-01 +description: Apprenez à intégrer des polices dans HTML et d’autres formats. Tutoriel + étape par étape couvrant l’intégration de polices dans HTML, la conversion d’Excel + en HTML, comment exporter OLE et la conversion d’Excel en XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: fr +og_description: Comment intégrer des polices dans les exportations HTML, XPS et OLE. + Apprenez le flux complet, consultez du code Java exécutable et maîtrisez l’intégration + de polices dans le HTML pour les conversions Excel. +og_title: Comment intégrer des polices – Tutoriel complet Java +tags: +- Aspose.Cells +- Java +- Document Export +title: Comment intégrer des polices – Guide complet pour l’exportation HTML, XPS et + OLE +url: /fr/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment intégrer des polices – Guide complet pour HTML, XPS et export OLE + +Vous vous êtes déjà demandé **comment intégrer des polices** lorsque vous transformez un classeur Excel en page web ou en document imprimable ? Vous n'êtes pas seul. De nombreux développeurs se heurtent à un mur lorsque le rendu est correct sur leur machine mais se casse ailleurs parce que les polices requises sont absentes. + +Dans ce tutoriel, nous parcourrons un scénario réel avec Aspose.Cells for Java : nous intégrerons des polices dans le HTML, préserverons les sélecteurs de variation d’emoji lors de la conversion en XPS, et garderons même un objet OLE éditable lors de l’exportation vers PPTX. À la fin, vous disposerez d’une solution prête à copier‑coller qui répond à la question « comment intégrer des polices » et aborde également **embed fonts in html**, **convert excel to html**, **how to export ole**, et **convert excel to xps**. + +## Prérequis + +- Java 17 (ou tout JDK récent) +- Aspose.Cells for Java 25.x ou ultérieur +- Un IDE de développement (IntelliJ IDEA, Eclipse ou VS Code) +- Une connaissance de base des structures de données Excel + +Aucun service externe n’est requis — tout s’exécute localement. + +## Vue d’ensemble de la solution + +1. **Créer un classeur** et utiliser la fonction `WRAPCOLS` pour transformer une plage verticale en mise en page à trois colonnes. +2. **Enregistrer le classeur au format XPS** tout en activant les sélecteurs de variation de police afin que les emoji restent intacts. +3. **Exporter en HTML** avec des polices intégrées, garantissant que la page apparaît de la même façon partout. +4. **Exporter un classeur contenant un objet OLE vers PPTX**, en préservant son éditabilité. +5. **Appliquer un modèle Smart Marker** qui montre la liaison de données maître‑détail. + +Chaque étape est isolée dans sa propre section H2, ce qui rend le guide facile à parcourir tant pour les moteurs de recherche que pour les assistants IA. + +![Illustration de comment intégrer des polices](image.png "comment intégrer des polices") + +*Texte alternatif de l’image : diagramme montrant le flux de travail d’Excel vers HTML, XPS et PPTX.* + +--- + +## Étape 1 – Créer un classeur et utiliser WRAPCOLS (Pourquoi cela importe pour embed fonts in html) + +Avant de parler d’intégration de polices, nous avons besoin d’un classeur contenant réellement des données. La fonction `WRAPCOLS` est un moyen pratique de diviser une seule colonne en plusieurs colonnes, ce qui rend souvent le HTML final plus lisible. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Pourquoi cette étape ?** +L’appel `WRAPCOLS` génère une plage multi‑colonnes qui apparaît plus tard dans le HTML sous forme de tableau. Lorsque nous **intégrerons des polices dans le HTML**, le style du tableau dépendra des polices que nous intégrons, assurant un rendu cohérent sur tous les navigateurs. + +--- + +## Étape 2 – Enregistrer le classeur au format XPS tout en préservant les emoji (convert excel to xps) + +Si vous avez besoin d’un format prêt à l’impression, le XPS est un bon choix. Cependant, les documents modernes contiennent souvent des emoji ou des symboles qui utilisent des sélecteurs de variation. Activer `EnableFontVariationSelectors` garantit que ces caractères survivent à la conversion. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Ce que vous obtenez :** +Un fichier XPS qui affiche tous les emoji intégrés exactement comme dans le classeur source. Cela satisfait le besoin **convert excel to xps** et montre que la gestion des polices ne se limite pas au HTML. + +--- + +## Étape 3 – Exporter en HTML avec des polices intégrées (how to embed fonts & embed fonts in html) + +Nous arrivons maintenant au cœur du tutoriel : **comment intégrer des polices** lors de la conversion d’Excel en HTML. Aspose.Cells permet d’intégrer les polices directement dans le fichier HTML généré, éliminant le besoin de fichiers de police externes. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Comment cela fonctionne :** +`setEmbedFonts(true)` indique au rendu de lire les fichiers de police utilisés dans le classeur et de les intégrer sous forme de règles `@font-face` encodées en Base64 à l’intérieur de la balise ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Remarquez la règle `@font-face — c’est la réponse concrète à **embed fonts in html**. + +--- + +## Étape 4 – Exporter un classeur contenant un objet OLE vers PPTX (how to export ole) + +De nombreux rapports d’entreprise intègrent des documents Word, PDF ou d’autres feuilles Excel comme objets OLE. Lors de l’exportation d’un tel classeur vers PowerPoint, on perd souvent la possibilité d’éditer cet objet. Aspose.Cells préserve l’éditabilité dès le départ. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Pourquoi c’est important :** +Si vous cherchez **how to export ole**, cet extrait montre l’appel d’API exact. La diapositive PowerPoint résultante contient l’objet OLE comme un composant vivant, double‑clic‑pour‑éditer — sans post‑traitement supplémentaire. + +--- + +## Étape 5 – Appliquer un modèle Smart Marker (master‑detail) et terminer la démo + +Les Smart Markers vous permettent de lier une source de données (Map, JSON, DataTable) directement à un modèle Excel. Voici un exemple minimal qui imprime des lignes maître‑détail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Ce que vous voyez :** +Un nouveau classeur (`smartMarkerResult.xlsx`) où les espaces réservés du modèle sont remplacés par les données. Cette étape n’est pas directement liée aux polices, mais elle complète le tutoriel en montrant un flux de travail de reporting typique qui précède souvent un export **embed fonts in html**. + +--- + +## Pièges courants & Astuces pro (Assurer une intégration réussie des polices) + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| Les polices sont absentes dans le fichier HTML | Le classeur utilise une police système qui n’est pas installée sur le serveur. | Utilisez `Workbook.getSettings().setDefaultFont("Arial")` avant de charger les données, ou intégrez manuellement les fichiers de police requis. | +| Le HTML de sortie est volumineux | L’intégration de nombreuses polices lourdes gonfle la taille du fichier. | Limitez l’intégration aux seules polices réellement utilisées : `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Les emoji disparaissent après la conversion XPS | Les sélecteurs de variation sont supprimés par défaut. | Activez `settings.setEnableFontVariationSelectors(true)` comme montré à l’Étape 2. | +| L’objet OLE devient une image statique dans le PPTX | Le classeur source a été enregistré avec `setSuppressOLEObjects(true)`. | Assurez‑vous de **ne pas** supprimer les objets OLE lors de l’enregistrement en PPTX. | + +--- + +## Vérification des résultats + +1. Ouvrez `embeddedFonts.html` dans Chrome/Firefox. Le tableau doit s’afficher avec la police intégrée (par ex., Arial) même si cette police n’est pas installée sur la machine. +2. Ouvrez `withVariations.xps` dans le Visionneur XPS de Windows. Les emoji tels que 👍 doivent se rendre correctement. +3. Ouvrez `oleEditable.pptx` dans PowerPoint. Double‑cliquez la forme OLE ; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/german/java/excel-import-export/_index.md b/cells/german/java/excel-import-export/_index.md index ca6cc4a43e..4900994490 100644 --- a/cells/german/java/excel-import-export/_index.md +++ b/cells/german/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ Erfahren Sie, wie Sie mit Aspose.Cells für die Java-API einen Massendatenimport Nutzen Sie das Potenzial der Excel-Datenexportmethoden mit Aspose.Cells für Java. Lernen Sie anhand praktischer Quellcodebeispiele in diesem umfassenden Handbuch. Optimieren Sie noch heute Ihr Datenmanagement. ### [CSV-Export-Java-Code](./csv-export-java-code/) Erfahren Sie, wie Sie Daten mit Aspose.Cells für Java ins CSV-Format exportieren. Schritt-für-Schritt-Anleitung mit Quellcode für den nahtlosen CSV-Export. +### [CSV mit Java exportieren – Signifikante Stellen festlegen & Exportbereich in CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Erfahren Sie, wie Sie mit Aspose.Cells für Java CSV-Dateien exportieren, signifikante Stellen festlegen und einen bestimmten Bereich exportieren. ### [Exportieren von Excel in PDF](./exporting-excel-to-pdf/) Erfahren Sie, wie Sie Excel-Dateien mit Aspose.Cells für Java mühelos in PDF exportieren. Unsere Schritt-für-Schritt-Anleitung vereinfacht den Prozess. Starten Sie noch heute mit der Konvertierung! +### [Wie man aus einer Arbeitsmappe ein PDF erstellt – Vollständiger Java-Leitfaden](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Erfahren Sie, wie Sie mit Aspose.Cells für Java eine Arbeitsmappe in ein PDF konvertieren. Schritt-für-Schritt-Anleitung mit Beispielcode. ### [Exportieren von Excel nach XML Java](./export-excel-to-xml-java/) Erfahren Sie, wie Sie mit Aspose.Cells für Java Excel in XML in Java exportieren. Schritt-für-Schritt-Anleitung mit Quellcode für die nahtlose Datenkonvertierung. ### [Datenimport aus Excel](./data-import-from-excel/) diff --git a/cells/german/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/german/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..756ce735fd --- /dev/null +++ b/cells/german/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Wie man PDF erstellt und die Arbeitsmappe als PDF speichert, Excel nach + HTML exportiert und die Expand‑Funktion mit Aspose.Cells für Java verwendet. Schritt‑für‑Schritt‑Code + enthalten. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: de +og_description: Wie man mit Aspose.Cells für Java ein PDF aus einer Arbeitsmappe erstellt. + Erfahren Sie, wie Sie die Arbeitsmappe als PDF speichern, Excel nach HTML exportieren + und die EXPAND‑Funktion verwenden. +og_title: Wie man ein PDF aus einer Arbeitsmappe erstellt – Java‑Tutorial +tags: +- Aspose.Cells +- Java +- PDF generation +title: Wie man ein PDF aus einer Arbeitsmappe erstellt – Vollständiger Java-Leitfaden +url: /de/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man PDF aus einer Arbeitsmappe erstellt – Vollständiger Java‑Leitfaden + +Haben Sie sich jemals gefragt, **wie man PDF** direkt aus einer Excel‑Arbeitsmappe erstellt, ohne Drittanbieter‑Konverter zu jonglieren? Sie sind nicht allein. Viele Entwickler stoßen an Grenzen, wenn sie einen schnellen PDF‑Export, eine HTML‑Vorschau oder ausgefallene Array‑Formeln benötigen – alles in einem Schritt. + +In diesem Tutorial führen wir Sie durch ein einzelnes, eigenständiges Java‑Programm, das genau das leistet. Wir **speichern die Arbeitsmappe als PDF**, zeigen Ihnen, wie Sie **Excel nach HTML exportieren** und dabei gefrorene Zeilen beibehalten, und demonstrieren die **Verwendung der EXPAND‑Funktion** innerhalb eines Arbeitsblatts. Am Ende haben Sie ein lauffähiges Projekt, das Sie in jede Maven‑ oder Gradle‑Umgebung einbinden können. + +> **Pro Tipp:** Der gesamte nachfolgende Code funktioniert mit Aspose.Cells 23.10 (oder neuer). Wenn Sie eine ältere Version verwenden, können einige Methodennamen leicht abweichen. + +--- + +## Voraussetzungen + +- **Java 17** (oder jede andere LTS‑Version) installiert und konfiguriert. +- **Aspose.Cells for Java**‑Bibliothek. Fügen Sie die folgende Maven‑Abhängigkeit zu Ihrer `pom.xml` hinzu: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Eine IDE oder ein Text‑Editor Ihrer Wahl (IntelliJ IDEA, VS Code, Eclipse …). + +Keine externen APIs, keine Web‑Services – nur reines Java und das Aspose.Cells‑SDK. + +--- + +## Übersicht der Lösung + +Wir teilen die Implementierung in **sieben logische Schritte** auf: + +1. Erstellen einer Arbeitsmappe und Demonstration der **EXPAND**‑Funktion. +2. Aktivieren von Schrift‑Variations‑Selektoren und **Arbeitsmappe als PDF speichern**. +3. dieselbe Arbeitsmappe nach HTML exportieren und gefrorene Zeilen beibehalten. +4. Einen Smart Marker mit einem `IF`‑Parameter verwenden, um bedingten Text einzufügen. +5. Einen Master‑Detail‑Smart Marker für hierarchische Daten anwenden. +6. Eine Markdown‑Datei laden, die Base‑64‑kodierte Bilder enthält. +7. GridJs‑Optionen für Ausrichtung und Rahmen konfigurieren und dann Daten einfügen. + +Jeder Schritt ist in einer eigenen Methode gekapselt, um die `main`‑Methode übersichtlich zu halten und zu verdeutlichen, **warum** wir etwas tun, nicht nur **was** wir tippen. + +--- + +## Schritt 1 – Erstellen einer Arbeitsmappe und Verwenden der EXPAND‑Funktion + +Die **EXPAND**‑Funktion ist eine neue dynamische Array‑Formel, die in Office 365 eingeführt wurde. Sie ermöglicht es, einen Bereich in einen größeren Bereich zu „spill‑en“, ohne Zellen manuell zu kopieren. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Warum das wichtig ist:** +- `EXPAND` füllt das Ergebnis automatisch mit Leerwerten auf, was ideal ist, wenn Sie später **die Arbeitsmappe als PDF speichern** – das PDF zeigt dann eine saubere, rechteckige Tabelle. +- Der Aufruf von `calculateFormula()` stellt sicher, dass die Formelengine ausgeführt wird, bevor wir irgendetwas exportieren. + +--- + +## Schritt 2 – Schrift‑Variations‑Selektoren aktivieren und **Arbeitsmappe als PDF speichern** + +Wenn Sie erweiterte Typografie unterstützen müssen (z. B. Emoji‑ oder CJK‑Variations‑Selektoren), müssen Sie die Funktion **vor** dem Speichern aktivieren. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Wichtiger Hinweis:** Das zentrale Stichwort **how to create pdf** wird hier beantwortet – durch den Aufruf von `workbook.save(..., SaveFormat.PDF)` nach der Konfiguration der Einstellungen. + +--- + +## Schritt 3 – **Excel nach HTML exportieren** und gefrorene Zeilen beibehalten + +Oft verlangen Stakeholder eine schnelle Web‑Vorschau. Aspose.Cells kann nach HTML exportieren, und mit `setPreserveFrozenRows(true)` behalten wir das gleiche Scroll‑Verhalten wie in Excel bei. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Warum das für Sie relevant ist:** Gefrorene Zeilen sind ein Komfortmerkmal; ohne sie verschwinden die Kopfzeilen, wenn Benutzer die Seite nach unten scrollen. + +--- + +## Schritt 4 – Smart Marker mit einem IF‑Parameter + +Smart Marker ermöglichen das Einfügen von Daten in eine Vorlage, ohne Schleifen zu schreiben. Der `if`‑Parameter fügt bedingte Logik direkt im Marker hinzu. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Das erzeugte PDF enthält **„VIP Customer: Acme Corp“**, weil `IsVIP` den Wert `true` hat. Ändern Sie die Flagge zu `false` und Sie erhalten **„Regular Customer: Acme Corp“** – ohne zusätzlichen Code. + +--- + +## Schritt 5 – Master‑Detail‑Smart‑Marker mit einem hierarchischen Bereich + +Wenn Sie Eltern‑Kind‑Daten haben (z. B. Aufträge und Positionen), spart ein Master‑Detail‑Marker das manuelle Einfügen von Zeilen. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Was Sie gewinnen:** Die Engine erweitert die Master‑Zeilen für jeden Auftrag und verschachtelt automatisch die Detail‑Zeilen darunter – ideal für Rechnungen oder Einkaufsberichte. + +--- + +## Schritt 6 – Laden eines Markdown‑Dokuments mit eingebetteten Base‑64‑Bildern + +Falls Ihre Quelldaten in Markdown vorliegen (häufig in Dokumentations‑Pipelines), kann Aspose.Cells sie direkt in eine Arbeitsmappe rendern. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Hinweis zum Randfall:** Wenn die Base‑64‑Zeichenkette fehlerhaft ist, überspringt Aspose das Bild, verarbeitet aber den Rest des Dokuments weiter – es kommt zu keinem Absturz. + +--- + +## Schritt 7 – GridJs‑Optionen konfigurieren und Daten einfügen + +GridJs ist ein leichtgewichtiges JavaScript‑Raster, das Aspose in HTML rendern kann. Zahlen auszurichten und Rahmen anzuwenden verbessert die Lesbarkeit. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Warum das wichtig ist:** Richtige Ausrichtung und Rahmen lassen das erzeugte HTML wie eine professionell aussehende Tabelle wirken – nützlich für Dashboards. + +--- + +## Alles zusammenführen – Die `main`‑Methode + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/german/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/german/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..4ed54ba62c --- /dev/null +++ b/cells/german/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-01 +description: Erfahren Sie, wie Sie CSV aus einer Java-Arbeitsmappe exportieren, während + Sie signifikante Stellen und den Exportbereich festlegen – in einem einzigen, klaren + Leitfaden. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: de +og_description: Meistern Sie, wie Sie CSV in Java exportieren, signifikante Stellen + festlegen und einen Bereich in CSV exportieren – mit praktischem Code und Tipps. +og_title: CSV mit Java exportieren – Vollständige Schritt‑für‑Schritt‑Anleitung +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: CSV mit Java exportieren – Signifikante Stellen festlegen & Exportbereich in + CSV +url: /de/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man CSV mit Java exportiert – Signifikante Stellen festlegen & Datenbereich als CSV exportieren + +Haben Sie sich jemals gefragt, **wie man CSV** aus einer Java‑Arbeitsmappe exportiert, ohne die numerische Präzision zu verlieren? Vielleicht haben Sie es mit einem schnellen `toString()` versucht und sind in einem Wirrwarr von Rundungsfehlern gelandet. Das ist ein häufiges Problem, besonders wenn Sie **signifikante Stellen** für Finanzdaten oder wissenschaftliche Ergebnisse festlegen müssen. + +In diesem Tutorial sehen Sie ein komplettes, sofort ausführbares Beispiel, das **zeigt, wie man CSV exportiert**, wie man **signifikante Stellen festlegt** und sogar wie man **einen Datenbereich als CSV exportiert**, während Ihre Daten ordentlich bleiben. Wir gehen jede Zeile durch, erklären das *Warum* hinter den API‑Aufrufen und geben Ihnen Tipps, um die üblichen Fallstricke zu vermeiden. Keine zusätzlichen Dokumente zum Suchen – nur eine eigenständige Lösung, die Sie noch heute kopieren und einfügen können. + +## Was Sie lernen werden + +- Erstellen Sie eine Arbeitsmappe und konfigurieren Sie die numerische Präzision mit `setNumberSignificantDigits`. +- Exportieren Sie einen bestimmten Zellbereich als schön formatierte CSV‑Zeichenkette. +- Parsen Sie japanische Ära‑Daten mit `DateTimeFormatInfo`. +- Berechnen Sie Formeln neu, damit dynamische Array‑Ergebnisse aktuell bleiben. +- Rendern Sie eine Pivot‑Tabelle als PNG‑Bild. +- Verwenden Sie Smart Marker, um Kommentare einzufügen und schließlich die Arbeitsmappe zu speichern. + +All dies wird mit der Aspose.Cells für Java Bibliothek, Version 23.12 (die zum Zeitpunkt des Schreibens neueste), durchgeführt. Wenn Sie die JAR-Datei in Ihrem Klassenpfad haben, können Sie loslegen. + +--- + +## Schritt 1: Erstellen einer Arbeitsmappe und **signifikante Stellen festlegen** + +Bevor wir etwas exportieren können, benötigen wir ein Arbeitsmappen‑Objekt. Das erste, was viele Entwickler übersehen, ist die numerische Präzision. Standardmäßig verwendet Aspose.Cells die volle Double‑Präzision, was zu langen, unhandlichen Zeichenketten in CSV führen kann. Das Festlegen der Anzahl signifikanter Stellen kürzt die Ausgabe, während die wichtigsten Ziffern erhalten bleiben. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Warum ist das wichtig?** +Wenn Sie eine Zelle mit `12345.6789` exportieren, ohne die Stellen zu begrenzen, zeigt die CSV den vollen Wert an und verstopft Berichte. Mit `setNumberSignificantDigits(5)` wird dieselbe Zelle zu `12346`, was oft das ist, was Geschäfts‑User erwarten. + +> **Pro‑Tipp:** Wenn Sie unterschiedliche Präzision pro Spalte benötigen, können Sie stattdessen einen benutzerdefinierten `Style` anwenden, anstatt die globale Einstellung zu verwenden. + +--- + +## Schritt 2: **Datenbereich als CSV exportieren** – Formatierung ist wichtig + +Jetzt, da die Arbeitsmappe bereit ist, holen wir uns einen rechteckigen Datenblock und wandeln ihn in eine CSV‑Zeichenkette um. Wir erzwingen außerdem ein Zwei‑Dezimal‑Format (`0.00`), sodass jede Zahl schön ausgerichtet ist. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Der Aufruf `exportDataTable` übernimmt die Hauptarbeit. Da wir `exportAsString` gesetzt haben, gibt die Methode einen `String` zurück, den wir ausgeben, in eine Datei schreiben oder über HTTP senden können. Der **export range to csv**‑Schritt berücksichtigt außerdem das zuvor definierte globale `setNumberSignificantDigits`, sodass die Zahlen sowohl auf fünf signifikante Stellen gerundet *als auch* mit zwei Dezimalstellen angezeigt werden. + +**Erwartete Ausgabe (gekürzt):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Häufige Frage:** *Was, wenn ich ein anderes Trennzeichen benötige, z. B. ein Semikolon?* +> Rufen Sie einfach `exportOptions.setSeparator(";")` vor dem Export auf. + +--- + +## Schritt 3: Japanisches Ära‑Datum parsen (Bonus‑Utility) + +Obwohl es nicht direkt mit CSV zu tun hat, enthalten viele Excel‑Tabellen lokalspezifische Datumsangaben. Hier erfahren Sie, wie Sie einen japanischen Ära‑String wie `"R3/04/01"` in ein standardmäßiges `DateTime`‑Objekt umwandeln. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Warum das einbinden?** +Wenn Ihr CSV‑Export nachgelagerte Systeme versorgt, die ISO‑8601‑Datumsangaben erwarten, müssen Sie zunächst alle lokalisierte Formate normalisieren. Dieses Snippet zeigt das *Wie* und *Warum* an einer Stelle. + +--- + +## Schritt 4: Formeln neu berechnen – Dynamische Array‑Ergebnisse aktuell halten + +Wenn Ihre Arbeitsmappe Formeln enthält (z. B. `=SUM(A1:A10)`), werden diese nach einer Einstellungänderung nicht automatisch aktualisiert. Der Aufruf `calculateFormula` erzwingt eine vollständige Neuberechnung, sodass die exportierte CSV die neuesten Werte widerspiegelt. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Achtung:** Große Arbeitsmappen können merklich Zeit für die Neuberechnung benötigen. Für leistungskritische Szenarien sollten Sie `calculateFormula(FormulaCalculationOptions)` in Betracht ziehen, um den Umfang zu begrenzen. + +--- + +## Schritt 5: Erste Pivot‑Tabelle als PNG‑Bild rendern + +Manchmal benötigen Sie einen visuellen Schnappschuss einer Pivot‑Tabelle zusammen mit der CSV. Der folgende Code rendert die erste Pivot‑Tabelle im ersten Arbeitsblatt in eine PNG‑Datei. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tipp:** Wenn die Arbeitsmappe noch keine Pivot‑Tabelle enthält, können Sie programmgesteuert eine erstellen – siehe die Aspose.Cells‑Dokumentation für ein kurzes Beispiel. + +--- + +## Schritt 6: Smart Marker verwenden, um einen Kommentar zu schreiben und die Arbeitsmappe zu speichern + +Smart Marker ermöglicht das Einfügen dynamischer Inhalte in Zellen mittels einfacher Platzhalter. Hier schreiben wir einen Kommentar wie „Reviewed by QA“ in eine bestimmte Zelle und speichern anschließend die Arbeitsmappe. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Der Platzhalter `${Comment}` kann überall im Blatt platziert werden (z. B. Zelle `A1`). Wenn `apply` ausgeführt wird, wird der Platzhalter durch den bereitgestellten Wert ersetzt. + +**Ergebnis:** Sie finden eine Datei `output/commented.xlsx`, die den Kommentar enthält, sowie die zuvor erzeugte `pivot.png` und die CSV‑Zeichenkette, die in der Konsole ausgegeben wird. + +--- + +## Vollständiges funktionierendes Beispiel + +Wenn wir alles zusammenfügen, hier das komplette Programm, das Sie kompilieren und ausführen können: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Erwartete Konsolenausgabe + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Sie finden außerdem `output/pivot.png` (falls eine Pivot‑Tabelle existierte) und `output/commented.xlsx` auf der Festplatte. + +--- + +## Häufig gestellte Fragen & Sonderfälle + +- **Kann ich direkt in eine physische CSV‑Datei exportieren?** + Ja. Ersetzen Sie den `exportAsString`‑Block durch `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Was, wenn mein Blatt eine andere Gebietsschema‑Einstellung für Zahlen verwendet?** + Setzen Sie `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` vor dem Export; dies wird ... + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/german/java/excel-pivot-tables/_index.md b/cells/german/java/excel-pivot-tables/_index.md index 79550fcf1e..e4408b94f6 100644 --- a/cells/german/java/excel-pivot-tables/_index.md +++ b/cells/german/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Erfahren Sie, wie Sie mit Aspose.Cells für Java berechnete Felder in Pivot-Tabe Erfahren Sie, wie Sie PivotTable-Daten in Aspose.Cells für Java aktualisieren. Halten Sie Ihre Daten mühelos auf dem neuesten Stand. ### [Anpassen von PivotTable-Stilen](./customizing-pivot-table-styles/) Erfahren Sie, wie Sie Pivot-Tabellenstile in Aspose.Cells für die Java-API anpassen. Erstellen Sie mühelos optisch ansprechende Pivot-Tabellen. +### [Pivot-Tabelle in Java kopieren – beibehalten und nach PPTX exportieren](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Erfahren Sie, wie Sie mit Aspose.Cells Pivot-Tabellen in Java duplizieren, unverändert behalten und als PPTX-Präsentation exportieren. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/german/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..fc19af4e80 --- /dev/null +++ b/cells/german/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Pivot‑Tabelle in Java kopieren und dabei die Pivot beibehalten, dann + Excel nach PPTX exportieren, den Excel‑AutoFilter deaktivieren und Smart Marker + für JSON‑Arrays verwenden – vollständige Schritt‑für‑Schritt‑Anleitung. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: de +og_description: Pivot‑Tabelle in Java kopieren, Pivot‑Definition beibehalten, nach + PPTX exportieren, AutoFilter deaktivieren und Smart Marker verwenden – vollständige + Anleitung für Entwickler. +og_title: Pivot‑Tabelle in Java kopieren – beibehalten, nach PPTX exportieren +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Pivot‑Tabelle in Java kopieren – beibehalten, nach PPTX exportieren +url: /de/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Pivot‑Tabelle in Java kopieren – beibehalten, nach PPTX exportieren + +Haben Sie jemals eine **Pivot‑Tabelle** von einer Arbeitsmappe in eine andere kopieren müssen, ohne die zugrunde liegende Pivot‑Definition zu verlieren? Sie sind nicht der Einzige, der darüber nachdenkt. In vielen realen Projekten werden Sie Daten verschieben, und das Letzte, was Sie wollen, ist ein kaputter Pivot, der zur Laufzeit Fehler wirft. + +In diesem Tutorial führen wir Sie durch eine vollständige Lösung, die nicht nur **Pivot‑Tabelle kopieren** ermöglicht, sondern Ihnen auch zeigt, wie Sie beim Kopieren **Pivot‑Tabelle beibehalten**, **Excel nach PPTX exportieren**, **Excel‑AutoFilter deaktivieren** und **Smart Marker verwenden**, um ein JSON‑Array in eine einzelne Zelle zu schieben. Am Ende haben Sie ein einzelnes, ausführbares Java‑Programm, das alle vier Szenarien abdeckt. + +## Voraussetzungen + +- Java 8 oder neuer (der Code funktioniert auch mit Java 11) +- Aspose.Cells für Java Bibliothek (Version 23.9 oder später) – Sie können sie von Maven Central beziehen +- Grundlegende Kenntnisse der Excel‑Konzepte wie Pivot‑Tabellen, Tabellen und Textfelder + +Falls Ihnen das Aspose.Cells‑JAR fehlt, fügen Sie Folgendes zu Ihrer `pom.xml` hinzu: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Jetzt tauchen wir ein. + +## Schritt 1: Pivot‑Tabelle kopieren – Pivot‑Definition beibehalten + +Wenn Sie einfach den Zellbereich, der eine Pivot‑Tabelle enthält, kopieren, bleiben die Pivot‑Metadaten häufig zurück. Aspose.Cells bietet uns eine elegante Möglichkeit, die Definition intakt zu halten, indem `copyRange` mit einer `CopyOptions`‑Instanz verwendet wird. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Warum das funktioniert:** `CopyOptions` weist Aspose.Cells an, alles zu übernehmen, einschließlich des Pivot‑Cache und der Feldeinstellungen. Ohne diese Option erhalten Sie nur reine Werte und verlieren die Möglichkeit, die Pivot‑Tabelle zu aktualisieren. + +**Randfall:** Falls Ihre Quell‑Pivot‑Tabelle größer ist als der fest codierte Bereich `A1:G20`, passen Sie den Bereich entsprechend an oder verwenden Sie `sourceSheet.getPivotTables().get(0).getDataRange()`, um ihn dynamisch abzurufen. + +![Beispiel für das Kopieren einer Pivot‑Tabelle](image.png "Pivot‑Tabelle in Java kopieren") + +*Bildbeschreibung: Diagramm zum Kopieren einer Pivot‑Tabelle in Java* + +## Schritt 2: Ein Arbeitsblatt mit editierbarem Textfeld nach PPTX exportieren + +Oft müssen Sie ein Excel‑Blatt in eine PowerPoint‑Folien umwandeln – denken Sie an wöchentliche Dashboards, die präsentiert werden müssen. Aspose.Cells kann ein Arbeitsblatt direkt als PPTX‑Datei speichern und dabei Formen wie Textfelder erhalten. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Was passiert:** Die `save`‑Methode mit `SaveFormat.PPTX` konvertiert das gesamte Blatt, einschließlich jedes editierbaren Textfeldes, in eine PowerPoint‑Folien. Der Text im Feld bleibt editierbar, wenn Sie die PPTX in PowerPoint öffnen. + +**Tipp:** Falls Sie mehrere Blätter haben und nur ein bestimmtes benötigen, rufen Sie `wb.getWorksheets().removeAt(index)` für die anderen auf, bevor Sie speichern. + +## Schritt 3: Excel‑AutoFilter in einer Tabelle deaktivieren + +AutoFilter ist praktisch für Endbenutzer, aber manchmal müssen Sie ihn programmgesteuert ausschalten – vielleicht vor dem Export von Daten oder beim Erstellen eines sauberen Berichts. So **deaktivieren Sie den Excel‑AutoFilter** in einer Excel‑Tabelle. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Warum Sie das benötigen könnten:** Der Export in Formate, die AutoFilter nicht unterstützen (wie CSV oder PDF), kann verirrte Filter‑Icons erzeugen. Durch das Deaktivieren wird ein sauberes Ergebnis sichergestellt. + +**Häufige Falle:** Falls das Blatt keine Tabellen enthält, wirft `getTables().get(0)` eine `IndexOutOfBoundsException`. Überprüfen Sie in Produktionscode immer zuerst `sheet.getTables().size()`. + +## Schritt 4: Smart Marker verwenden – JSON‑Array als einzelnen Zellenwert einfügen + +Smart Marker ist Asposes Templating‑Engine. Ein nützlicher Trick ist, ein komplettes JSON‑Array als einzelnen Zellenwert zu behandeln, was sich ideal zum Protokollieren oder Weitergeben strukturierter Daten eignet. Lassen Sie uns **Smart Marker verwenden**, um dies zu erreichen. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Wie es funktioniert:** Der `${json}`‑Marker im Arbeitsbuch wird durch den gesamten JSON‑String ersetzt, weil wir `ArrayAsSingle` gesetzt haben. Ohne diese Option würde Aspose versuchen, jedes Array‑Element in separate Zeilen zu expandieren. + +**Variation:** Falls Sie das Array über mehrere Zeilen verteilt benötigen, lassen Sie einfach `ArrayAsSingle` weg und lassen Sie Smart Marker die Expansion automatisch übernehmen. + +## Vollständiges funktionierendes Beispiel – Alle Schritte kombiniert + +Unten steht eine einzelne Java‑Klasse, die alle behandelten Vorgänge zusammenführt. Führen Sie sie als reguläre `main`‑Methode aus; passen Sie lediglich die Dateipfade an Ihre Umgebung an. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/german/java/getting-started/_index.md b/cells/german/java/getting-started/_index.md index 58678d03f5..017624a26a 100644 --- a/cells/german/java/getting-started/_index.md +++ b/cells/german/java/getting-started/_index.md @@ -38,6 +38,9 @@ Ein Code-Tutorial für Aspose.Words Java ### [Aspose.Cells Java-Lizenzeinrichtung und -überprüfung: Vollständige Anleitung](./aspose-cells-java-license-setup-guide/) Meistern Sie die Einrichtung und Überprüfung Ihrer Aspose.Cells Java-Lizenz mit unserem umfassenden Leitfaden. Sichern Sie sich mühelos vollen Zugriff auf erweiterte Funktionen. +### [Erstellen einer lizenzierten Arbeitsmappe – Vollständiger Aspose.Cells Java Leitfaden](./create-licensed-workbook-full-aspose-cells-java-guide/) +Erfahren Sie, wie Sie mit Aspose.Cells für Java eine lizenzierte Arbeitsmappe erstellen und alle Funktionen voll nutzen. + ### [Aspose.Cells für Java: So erstellen und formatieren Sie Excel-Arbeitsmappen effizient](./aspose-cells-java-workbook-creation-guide/) Erfahren Sie, wie Sie die Erstellung und Formatierung von Excel-Arbeitsmappen in Java mit Aspose.Cells automatisieren. Diese Anleitung behandelt die Einrichtung, die Bearbeitung von Arbeitsmappen und Techniken zur Zellenformatierung. diff --git a/cells/german/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/german/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..039054ba81 --- /dev/null +++ b/cells/german/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Erstellen Sie schnell ein lizenziertes Arbeitsbuch mit Aspose.Cells Java. + Erfahren Sie, wie Sie Aspose lizenzieren, die Aspose‑Lizenz in Java setzen und Excel + mit Aspose in einem einzigen Tutorial lesen. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: de +og_description: Erstellen Sie eine lizenzierte Arbeitsmappe mit Aspose.Cells Java. + Dieser Leitfaden zeigt, wie man Aspose lizenziert, die Aspose‑Lizenz in Java festlegt + und Excel mit Aspose liest. +og_title: Lizenziertes Arbeitsbuch erstellen – Aspose.Cells Java‑Tutorial +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Erstellen einer lizenzierten Arbeitsmappe – Vollständiger Aspose.Cells Java‑Leitfaden +url: /de/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Erstellen einer lizenzierten Arbeitsmappe – Vollständige Aspose.Cells Java‑Anleitung + +Haben Sie sich jemals gefragt, wie man **create licensed workbook** ohne Lizenzierungsfehler erstellt? Sie sind nicht der Einzige – viele Entwickler stoßen an diese Grenze, wenn sie das erste Mal Aspose.Cells benutzen. Die gute Nachricht? Die Lösung ist einfach, und diese Anleitung führt Sie Schritt für Schritt durch den Prozess. + +In nur wenigen Minuten wissen Sie **how to license Aspose**, genau **set Aspose license Java**, und Sie sind bereit, **read Excel with Aspose** für reale Aufgaben wie Reporting oder Datenmigration zu verwenden. Keine vagen Hinweise, nur ein vollständiges, ausführbares Beispiel, das Sie noch heute kopieren und einfügen können. + +--- + +## Was Sie benötigen + +- Java 17 oder neuer (die neueste stabile Version funktioniert am besten) +- Aspose.Cells for Java 23.9 (oder jede aktuelle Version) +- Ihre Aspose.Cells‑Lizenzdatei (`Aspose.Cells.Java.lic`) +- Eine IDE oder ein Build‑Tool, mit dem Sie vertraut sind (Maven, Gradle oder einfaches `javac`) + +Falls Ihnen etwas davon unbekannt ist, keine Sorge – jeder Punkt wird in den nachfolgenden Schritten behandelt. + +--- + +## Schritt 1: Aspose.Cells‑Abhängigkeit hinzufügen + +Bevor Sie **create licensed workbook** ausführen können, muss die Bibliothek im Klassenpfad sein. Mit Maven sieht das so aus: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Für Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro‑Tipp:** Wenn Sie eine reine `javac`‑Kompilierung verwenden, legen Sie die JAR einfach in einen `libs/`‑Ordner und fügen Sie sie dem `-cp`‑Parameter hinzu. + +--- + +## Schritt 2: **How to License Aspose** – Lizenzdatei laden + +Sobald Sie irgendeine Aspose‑API ohne Lizenz aufrufen, erscheint ein Wasserzeichen in der erzeugten Excel‑Datei. Um das zu vermeiden, müssen Sie **set Aspose license Java** früh im Programm setzen. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Warum das wichtig ist:** Das `License`‑Objekt weist Aspose an, den Evaluierungsmodus zu überspringen, entfernt Wasserzeichen und schaltet die gesamte API frei. Ist der Pfad falsch, wird eine Ausnahme ausgelöst – Sie wissen also sofort Bescheid. + +--- + +## Schritt 3: **Create Licensed Workbook** – Erstellen einer Excel‑Datei + +Jetzt, wo die Lizenz angewendet ist, können Sie sicher **create licensed workbook**‑Objekte erstellen. Unten finden Sie ein minimales, aber vollständiges Beispiel, das zudem **read Excel with Aspose** später demonstriert. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Was das macht:** + +1. Ruft das Hilfsprogramm aus **Step 2** auf, um **set Aspose license Java** auszuführen. +2. Instanziiert ein neues `Workbook` – das Kernstück einer **create licensed workbook**‑Operation. +3. Schreibt eine kleine Tabelle, speichert sie als XLSX und liest sie sofort wieder ein, um zu beweisen, dass **read Excel with Aspose** ohne Wasserzeichen funktioniert. + +Running the program prints: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Wenn Sie die erzeugte Datei öffnen, sehen Sie ein sauberes Tabellenblatt ohne Aspose‑Wasserzeichen – ein Beweis dafür, dass die Lizenz aktiv ist. + +--- + +## Schritt 4: Häufige Stolperfallen & Sonderfälle + +| Problem | Warum es passiert | Lösung | +|-------|----------------|-----| +| **LicenseNotFoundException** | Pfad ist falsch oder Datei fehlt. | Verwenden Sie einen absoluten Pfad oder laden Sie die Datei aus den Ressourcen (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose‑JAR nicht im Klassenpfad. | Überprüfen Sie die Maven/Gradle‑Abhängigkeit oder fügen Sie das JAR manuell hinzu. | +| **Saving fails on Windows** | Zielordner existiert nicht. | Stellen Sie sicher, dass das Verzeichnis `output/` erstellt wird (`new File("output").mkdirs();`). | +| **Reading older .xls files** | Das Standard‑`SaveFormat` unterstützt das alte Format möglicherweise nicht. | Verwenden Sie `SaveFormat.XLS` beim Speichern oder lassen Sie Aspose beim Laden automatisch erkennen. | + +> **Achtung:** Wenn Sie auf einem Server bereitstellen, sollte die Lizenzdatei außerhalb des Web‑App‑Root liegen, um eine versehentliche Veröffentlichung zu vermeiden. + +--- + +## Schritt 5: Lizenz programmgesteuert überprüfen (optional) + +Manchmal möchten Sie doppelt prüfen, ob die Lizenz korrekt geladen wurde, bevor Sie schwere Operationen ausführen. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Sie können `LicenseChecker.isLicensed("...")` aufrufen und abbrechen, wenn es `false` zurückgibt. Das bietet ein zusätzliches Sicherheitsnetz, besonders in CI/CD‑Pipelines. + +--- + +## Visuelle Übersicht + +![Diagramm, das den Ablauf vom Anwenden der Lizenz bis zum Erstellen und Lesen einer Arbeitsmappe zeigt](create-licensed-workbook-diagram.png "create licensed workbook") + +*Bild‑Alt‑Text:* **create licensed workbook diagram** – veranschaulicht die Schritte zum Anwenden der Aspose‑Lizenz, zum Erstellen einer Arbeitsmappe und zum Lesen von Excel. + +--- + +## Fazit + +Sie haben nun eine vollständige End‑zu‑End‑Lösung für **create licensed workbook** mit Aspose.Cells für Java. Wir haben **how to license Aspose** behandelt, den genauen **set Aspose license Java**‑Code demonstriert und Ihnen einen kurzen Einblick in **read Excel with Aspose** gegeben, um zu bestätigen, dass alles funktioniert. + +Als Nächstes könnten Sie Folgendes erkunden: + +- Zellen formatieren (Schriftarten, Farben) – ideal für professionelle Berichte. +- Export nach CSV oder PDF – Aspose unterstützt viele Formate sofort. +- Arbeiten mit großen Datensätzen – verwenden Sie `WorkbookDesigner` für Vorlagen. + +Fühlen Sie sich frei zu experimentieren, und falls Sie auf Probleme stoßen, hinterlassen Sie unten einen Kommentar. Viel Spaß beim Programmieren! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/german/java/ole-objects-embedded-content/_index.md b/cells/german/java/ole-objects-embedded-content/_index.md index 9aa1de69e4..847393bbea 100644 --- a/cells/german/java/ole-objects-embedded-content/_index.md +++ b/cells/german/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Erfahren Sie, wie Sie mit Aspose.Cells für Java effizient GUIDs aus eingebettet ### [Entfernen Sie ActiveX-Steuerelemente aus Excel mit Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Ein Code-Tutorial für Aspose.Words Java - +### [So betten Sie Schriftarten ein – Vollständige Anleitung für HTML-, XPS- und OLE-Export](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Erfahren Sie, wie Sie Schriftarten in HTML-, XPS- und OLE-Exporten mit Aspose.Cells für Java einbetten, um konsistente Darstellung sicherzustellen. ## Weitere Ressourcen diff --git a/cells/german/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/german/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..1e727db3d0 --- /dev/null +++ b/cells/german/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-01 +description: Erfahren Sie, wie Sie Schriftarten in HTML und anderen Formaten einbetten. + Schritt‑für‑Schritt‑Anleitung, die das Einbetten von Schriftarten in HTML, das Konvertieren + von Excel zu HTML, das Exportieren von OLE und das Konvertieren von Excel zu XPS + abdeckt. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: de +og_description: Wie man Schriftarten in HTML-, XPS- und OLE-Exporten einbettet. Lernen + Sie den kompletten Workflow, sehen Sie ausführbaren Java‑Code und beherrschen Sie + das Einbetten von Schriftarten in HTML für Excel‑Konvertierungen. +og_title: Wie man Schriftarten einbettet – Vollständiges Java‑Tutorial +tags: +- Aspose.Cells +- Java +- Document Export +title: Schriftarten einbetten – Vollständiger Leitfaden für HTML-, XPS- und OLE-Export +url: /de/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man Schriftarten einbettet – Vollständiger Leitfaden für HTML, XPS und OLE‑Export + +Haben Sie sich jemals gefragt, **wie man Schriftarten einbettet**, wenn Sie eine Excel‑Arbeitsmappe in eine Webseite oder ein druckbares Dokument umwandeln? Sie sind nicht allein. Viele Entwickler stoßen auf ein Problem, wenn die Ausgabe auf ihrem Rechner gut aussieht, aber auf einem anderen wegen fehlender Schriftarten fehlschlägt. + +In diesem Tutorial führen wir Sie durch ein praxisnahes Szenario mit Aspose.Cells für Java: Wir betten Schriftarten in HTML ein, erhalten Emoji‑Variationsselektoren beim Konvertieren nach XPS und halten sogar ein OLE‑Objekt editierbar, wenn wir nach PPTX exportieren. Am Ende haben Sie eine solide Copy‑and‑Paste‑Lösung, die die Frage „wie man Schriftarten einbettet“ beantwortet und zudem **embed fonts in html**, **convert excel to html**, **how to export ole** und **convert excel to xps** behandelt. + +## Voraussetzungen + +- Java 17 (oder ein aktuelles JDK) +- Aspose.Cells for Java 25.x oder neuer +- Eine Entwicklungs‑IDE (IntelliJ IDEA, Eclipse oder VS Code) +- Grundlegende Kenntnisse der Excel‑Datenstrukturen + +Es werden keine externen Dienste benötigt – alles läuft lokal. + +## Überblick über die Lösung + +1. **Erstellen Sie eine Arbeitsmappe** und verwenden Sie die `WRAPCOLS`‑Funktion, um einen vertikalen Bereich in ein dreispaltiges Layout zu verwandeln. +2. **Speichern Sie die Arbeitsmappe als XPS**, wobei Sie die Schriftvariationsselektoren aktivieren, damit Emojis erhalten bleiben. +3. **Exportieren Sie nach HTML** mit eingebetteten Schriftarten, um sicherzustellen, dass die Seite überall gleich aussieht. +4. **Exportieren Sie eine Arbeitsmappe mit einem OLE‑Objekt nach PPTX**, wobei die Editierbarkeit erhalten bleibt. +5. **Wenden Sie eine Smart‑Marker‑Vorlage an**, die Master‑Detail‑Datenbindung demonstriert. + +Jeder Schritt ist in einem eigenen H2‑Abschnitt isoliert, wodurch der Leitfaden sowohl für Suchmaschinen als auch für KI‑Assistenten leicht zu überfliegen ist. + +![How to embed fonts illustration](image.png "wie man Schriftarten einbettet") + +*Bild‑Alt‑Text: Diagramm zum Einbetten von Schriftarten, das den Workflow von Excel zu HTML, XPS und PPTX zeigt.* + +--- + +## Schritt 1 – Erstellen einer Arbeitsmappe und Verwendung von WRAPCOLS (Warum das für embed fonts in html wichtig ist) + +Bevor wir über das Einbetten von Schriftarten sprechen können, benötigen wir eine Arbeitsmappe, die tatsächlich Daten enthält. Die `WRAPCOLS`‑Funktion ist ein praktisches Mittel, um eine einzelne Spalte in mehrere Spalten zu teilen, was das endgültige HTML oft lesbarer macht. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Warum dieser Schritt?** +Der Aufruf von `WRAPCOLS` erzeugt einen mehrspaltigen Bereich, der später in HTML als Tabelle erscheint. Wenn wir später **embed fonts in html** verwenden, hängt das Styling der Tabelle von den eingebetteten Schriftarten ab, was ein konsistentes Rendering in allen Browsern gewährleistet. + +--- + +## Schritt 2 – Speichern der Arbeitsmappe als XPS unter Beibehaltung von Emoji (convert excel to xps) + +Wenn Sie ein druckfertiges Format benötigen, ist XPS eine solide Wahl. Moderne Dokumente enthalten jedoch häufig Emojis oder Symbole, die Variationsselektoren verwenden. Das Aktivieren von `EnableFontVariationSelectors` stellt sicher, dass diese Zeichen die Konvertierung überstehen. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Was Sie erhalten:** +Eine XPS‑Datei, die alle eingebetteten Emojis exakt wie in der Quellarbeitsmappe anzeigt. Dies erfüllt die Anforderung **convert excel to xps** und zeigt, dass die Schriftarten‑Verarbeitung nicht auf HTML beschränkt ist. + +--- + +## Schritt 3 – Export nach HTML mit eingebetteten Schriftarten (how to embed fonts & embed fonts in html) + +Jetzt kommen wir zum Kern des Tutorials: **how to embed fonts** beim Konvertieren von Excel nach HTML. Aspose.Cells ermöglicht das direkte Einbetten der Schriftarten in die erzeugte HTML‑Datei, wodurch externe Schriftdateien überflüssig werden. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Wie es funktioniert:** +`setEmbedFonts(true)` weist den Renderer an, die in der Arbeitsmappe verwendeten Schriftdateien zu lesen und sie als Base64‑kodierte `@font-face`‑Regeln innerhalb des ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Beachten Sie die `@font-face`‑Regel – dies ist die konkrete Antwort auf **embed fonts in html**. + +--- + +## Schritt 4 – Export einer Arbeitsmappe mit OLE‑Objekt nach PPTX (how to export ole) + +Viele Geschäftsberichte betten Word‑Dokumente, PDFs oder andere Excel‑Blätter als OLE‑Objekte ein. Beim Export einer solchen Arbeitsmappe nach PowerPoint geht häufig die Möglichkeit zur Bearbeitung dieses Objekts verloren. Aspose.Cells bewahrt die Editierbarkeit standardmäßig. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Warum das wichtig ist:** +Wenn Sie nach **how to export ole** suchen, zeigt dieses Snippet den genauen API‑Aufruf. Die resultierende PowerPoint‑Folien enthält das OLE‑Objekt als ein lebendes, per Doppelklick zu bearbeitendes Element – keine zusätzliche Nachbearbeitung nötig. + +--- + +## Schritt 5 – Anwenden einer Smart‑Marker‑Vorlage (Master‑Detail) und Abschluss der Demo + +Smart Markers ermöglichen das direkte Binden einer Datenquelle (Map, JSON, DataTable) an eine Excel‑Vorlage. Hier ein minimales Beispiel, das Master‑Detail‑Zeilen ausgibt. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Was Sie sehen:** +Eine neue Arbeitsmappe (`smartMarkerResult.xlsx`), in der die Platzhalter der Vorlage durch die Daten ersetzt wurden. Dieser Schritt behandelt nicht direkt Schriftarten, rundet das Tutorial jedoch ab, indem er einen typischen Reporting‑Workflow zeigt, der häufig einem **embed fonts in html**‑Export vorausgeht. + +--- + +## Häufige Fallstricke & Pro‑Tipps (Sicherstellung einer erfolgreichen Schriftarteinbettung) + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| Schriftarten fehlen in der HTML‑Datei | Die Arbeitsmappe verwendet eine Systemschriftart, die auf dem Server nicht installiert ist. | Verwenden Sie `Workbook.getSettings().setDefaultFont("Arial")` bevor Sie Daten laden, oder betten Sie die erforderlichen Schriftdateien manuell ein. | +| Ausgabe‑HTML ist riesig | Das Einbetten vieler großer Schriftarten vergrößert die Dateigröße. | Beschränken Sie das Einbetten auf nur die tatsächlich genutzten Schriftarten: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji verschwinden nach XPS‑Konvertierung | Variationsselektoren werden standardmäßig entfernt. | Aktivieren Sie `settings.setEnableFontVariationSelectors(true)` wie in Schritt 2 gezeigt. | +| OLE‑Objekt wird zu einem statischen Bild in PPTX | Die Quellarbeitsmappe wurde mit `setSuppressOLEObjects(true)` gespeichert. | Stellen Sie sicher, dass Sie **nicht** OLE‑Objekte beim Speichern nach PPTX unterdrücken. | + +--- + +## Überprüfung der Ergebnisse + +1. Öffnen Sie `embeddedFonts.html` in Chrome/Firefox. Die Tabelle sollte die eingebettete Schriftart (z. B. Arial) verwenden, selbst wenn diese Schriftart nicht auf dem Rechner installiert ist. +2. Öffnen Sie `withVariations.xps` im Windows XPS Viewer. Emojis wie 👍 sollten korrekt dargestellt werden. +3. Öffnen Sie `oleEditable.pptx` in PowerPoint. Doppelklicken Sie auf die OLE‑Form; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/greek/java/excel-import-export/_index.md b/cells/greek/java/excel-import-export/_index.md index d635c75e3e..1a391286e3 100644 --- a/cells/greek/java/excel-import-export/_index.md +++ b/cells/greek/java/excel-import-export/_index.md @@ -47,6 +47,10 @@ Μάθετε πώς να εφαρμόσετε την επικύρωση δεδομένων εισαγωγής Excel χρησιμοποιώντας το Aspose.Cells για Java με αυτόν τον ολοκληρωμένο οδηγό βήμα προς βήμα. Εξασφαλίστε την ακρίβεια των δεδομένων και βελτιώστε την εμπειρία χρήστη. ### [Εξαγωγή Excel σε HTML Java](./export-excel-to-html-java/) Μάθετε πώς να εξάγετε αρχεία Excel σε HTML σε Java χρησιμοποιώντας το Aspose.Cells για Java. Ακολουθήστε αυτόν τον αναλυτικό οδηγό με πηγαίο κώδικα για να μετατρέψετε απρόσκοπτα τα αρχεία Excel σε HTML χωρίς κόπο. +### [Πώς να εξάγετε CSV με Java – Ορισμός Σημαντικών Ψηφίων & Εξαγωγή Εύρους σε CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Μάθετε πώς να ρυθμίσετε τα σημαντικά ψηφία και να εξάγετε συγκεκριμένο εύρος κελιών σε αρχείο CSV χρησιμοποιώντας το Aspose.Cells για Java. +### [Πώς να δημιουργήσετε PDF από ένα βιβλίο εργασίας – Πλήρης οδηγός Java](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Μάθετε πώς να μετατρέψετε ένα βιβλίο εργασίας Excel σε PDF χρησιμοποιώντας το Aspose.Cells για Java με πλήρη οδηγό βήμα προς βήμα. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/greek/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..5ca44e3007 --- /dev/null +++ b/cells/greek/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Πώς να δημιουργήσετε PDF και να αποθηκεύσετε το βιβλίο εργασίας ως PDF, + να εξάγετε το Excel σε HTML και να χρησιμοποιήσετε τη λειτουργία expand με το Aspose.Cells + για Java. Περιλαμβάνεται κώδικας βήμα‑προς‑βήμα. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: el +og_description: Πώς να δημιουργήσετε PDF από ένα βιβλίο εργασίας χρησιμοποιώντας το + Aspose.Cells για Java. Μάθετε πώς να αποθηκεύσετε το βιβλίο εργασίας ως PDF, να + εξάγετε το Excel σε HTML και να χρησιμοποιήσετε τη λειτουργία EXPAND. +og_title: Πώς να δημιουργήσετε PDF από ένα βιβλίο εργασίας – Εγχειρίδιο Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Πώς να δημιουργήσετε PDF από ένα βιβλίο εργασίας – Πλήρης οδηγός Java +url: /el/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να δημιουργήσετε PDF από ένα Workbook – Πλήρης οδηγός Java + +Έχετε αναρωτηθεί ποτέ **πώς να δημιουργήσετε PDF** απευθείας από ένα Excel workbook χωρίς να χρησιμοποιείτε τρίτους μετατροπείς; Δεν είστε μόνοι. Πολλοί προγραμματιστές συναντούν δυσκολίες όταν χρειάζονται γρήγορη εξαγωγή PDF, προεπισκόπηση HTML ή εξελιγμένες συναρτήσεις πίνακα — όλα σε ένα. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από ένα ενιαίο, αυτόνομο πρόγραμμα Java που κάνει ακριβώς αυτό. Θα **αποθηκεύσουμε το workbook ως PDF**, θα σας δείξουμε πώς να **εξάγετε το Excel σε HTML** διατηρώντας τις παγωμένες γραμμές, και θα επιδείξουμε τη **χρήση της συνάρτησης expand** μέσα σε ένα φύλλο εργασίας. Στο τέλος θα έχετε ένα εκτελέσιμο project που μπορείτε να ενσωματώσετε σε οποιοδήποτε Maven ή Gradle build. + +> **Pro tip:** Όλος ο κώδικας παρακάτω λειτουργεί με Aspose.Cells 23.10 (ή νεότερη έκδοση). Αν χρησιμοποιείτε παλαιότερη έκδοση, ορισμένα ονόματα μεθόδων μπορεί να διαφέρουν ελαφρώς. + +--- + +## Προαπαιτήσεις + +- **Java 17** (ή οποιαδήποτε LTS έκδοση) εγκατεστημένη και ρυθμισμένη. +- **Aspose.Cells for Java** βιβλιοθήκη. Προσθέστε την παρακάτω εξάρτηση Maven στο `pom.xml` σας: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Ένα IDE ή κειμενογράφο της επιλογής σας (IntelliJ IDEA, VS Code, Eclipse…). + +Δεν απαιτούνται εξωτερικά APIs, δεν χρειάζονται web services — μόνο καθαρή Java και το Aspose.Cells SDK. + +--- + +## Επισκόπηση της Λύσης + +Θα χωρίσουμε την υλοποίηση σε **επτά λογικά βήματα**: + +1. Δημιουργία workbook και επίδειξη της **EXPAND** συνάρτησης. +2. Ενεργοποίηση επιλογέων παραλλαγής γραμματοσειράς και **αποθήκευση του workbook ως PDF**. +3. Εξαγωγή του ίδιου workbook σε HTML διατηρώντας τις παγωμένες γραμμές. +4. Χρήση Smart Marker με παράμετρο `IF` για εισαγωγή υπό όρους κειμένου. +5. Εφαρμογή Smart Marker master‑detail για ιεραρχικά δεδομένα. +6. Φόρτωση αρχείου Markdown που περιέχει εικόνες κωδικοποιημένες σε Base‑64. +7. Διαμόρφωση επιλογών GridJs για στοίχιση και περιθώρια, έπειτα εισαγωγή δεδομένων. + +Κάθε βήμα είναι ενσωματωμένο σε ξεχωριστή μέθοδο ώστε η μέθοδος `main` να παραμένει καθαρή και για να δείξουμε **γιατί** κάνουμε ό,τι κάνουμε, όχι μόνο **τι** πληκτρολογούμε. + +--- + +## Βήμα 1 – Δημιουργία Workbook και χρήση της συνάρτησης EXPAND + +Η **EXPAND** συνάρτηση είναι μια νέα δυναμική‑συνάρτηση πίνακα που εισήχθη στο Office 365. Σας επιτρέπει να «χύσετε» μια περιοχή σε μεγαλύτερο χώρο χωρίς να αντιγράψετε χειροκίνητα τα κελιά. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Γιατί είναι σημαντικό:** +- Η `EXPAND` προσθέτει αυτόματα κενά στη συνέχεια, κάτι που είναι ιδανικό όταν αργότερα **αποθηκεύσετε το workbook ως PDF** — το PDF θα εμφανίζει έναν καθαρό, ορθογώνιο πίνακα. +- Η κλήση `calculateFormula()` εξασφαλίζει ότι η μηχανή τύπων εκτελείται πριν εξάγουμε οτιδήποτε. + +--- + +## Βήμα 2 – Ενεργοποίηση επιλογέων παραλλαγής γραμματοσειράς και **Αποθήκευση Workbook ως PDF** + +Αν χρειάζεται να υποστηρίξετε προχωρημένη τυπογραφία (π.χ. emoji ή επιλογείς παραλλαγής CJK), πρέπει να ενεργοποιήσετε τη δυνατότητα **πριν** την αποθήκευση. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Κύριο σημείο:** Η κύρια ερώτηση **πώς να δημιουργήσετε pdf** απαντάται εδώ — καλώντας `workbook.save(..., SaveFormat.PDF)` μετά τη διαμόρφωση των ρυθμίσεων. + +--- + +## Βήμα 3 – **Εξαγωγή Excel σε HTML** διατηρώντας τις παγωμένες γραμμές + +Συχνά οι ενδιαφερόμενοι ζητούν γρήγορη προεπισκόπηση στο web. Το Aspose.Cells μπορεί να εξάγει σε HTML, και με `setPreserveFrozenRows(true)` διατηρούμε την ίδια εμπειρία κύλισης όπως στο Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Γιατί σας ενδιαφέρει:** Οι παγωμένες γραμμές είναι μια ευχάριστη λειτουργία χρηστικότητας· χωρίς αυτές, οι γραμμές κεφαλίδας εξαφανίζονται όταν οι χρήστες κυλούν προς τα κάτω στη σελίδα. + +--- + +## Βήμα 4 – Smart Marker με παράμετρο IF + +Τα Smart Markers σας επιτρέπουν να συγχωνεύετε δεδομένα σε ένα πρότυπο χωρίς να γράφετε βρόχους. Η παράμετρος `if` προσθέτει λογική υπό όρους απευθείας μέσα στο marker. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Το παραγόμενο PDF θα διαβάζει **“VIP Customer: Acme Corp”** επειδή το `IsVIP` είναι `true`. Αλλάξτε τη σημαία σε `false` και θα δείτε **“Regular Customer: Acme Corp”** — χωρίς επιπλέον κώδικα. + +--- + +## Βήμα 5 – Smart Marker Master‑Detail χρησιμοποιώντας ιεραρχική περιοχή + +Όταν έχετε δεδομένα γονέα‑παιδίου (π.χ. παραγγελίες και γραμμές παραγγελίας), ένα master‑detail marker σας εξοικονομεί την ανάγκη χειροκίνητης εισαγωγής γραμμών. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Τι κερδίζετε:** Η μηχανή επεκτείνει τις master γραμμές για κάθε παραγγελία και αυτόματα ενσωματώνει τις detail γραμμές κάτω από αυτές — ιδανικό για τιμολόγια ή αναφορές αγορών. + +--- + +## Βήμα 6 – Φόρτωση εγγράφου Markdown με ενσωματωμένες εικόνες Base‑64 + +Αν τα δεδομένα προέρχονται από Markdown (συνηθισμένο σε pipelines τεκμηρίωσης), το Aspose.Cells μπορεί να τα αποδώσει απευθείας σε ένα workbook. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Σημείωση για ειδικές περιπτώσεις:** Αν η συμβολοσειρά Base‑64 είναι κακή, το Aspose θα παραλείψει την εικόνα αλλά θα συνεχίσει την επεξεργασία του υπόλοιπου εγγράφου — χωρίς κατάρρευση. + +--- + +## Βήμα 7 – Διαμόρφωση επιλογών GridJs και εισαγωγή δεδομένων + +Το GridJs είναι ένα ελαφρύ JavaScript grid που το Aspose μπορεί να αποδώσει σε HTML. Η στοίχιση αριθμών και η εφαρμογή περιθωρίων βελτιώνουν την αναγνωσιμότητα. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Γιατί μας ενδιαφέρει:** Η σωστή στοίχιση και τα περιθώρια κάνουν το παραγόμενο HTML να μοιάζει με ένα επαγγελματικό spreadsheet — χρήσιμο για dashboards. + +--- + +## Συνένωση όλων – Η μέθοδος `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/greek/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/greek/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..100a787795 --- /dev/null +++ b/cells/greek/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-01 +description: Μάθετε πώς να εξάγετε CSV από ένα βιβλίο εργασίας Java, ορίζοντας τα + σημαντικά ψηφία και το εύρος εξαγωγής σε CSV, σε έναν ενιαίο, σαφή οδηγό. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: el +og_description: Μάθετε πώς να εξάγετε csv σε Java, να ορίσετε σημαντικά ψηφία και + να εξάγετε εύρος σε csv με πρακτικό κώδικα και συμβουλές. +og_title: Πώς να εξάγετε CSV με Java – Πλήρης οδηγός βήμα‑προς‑βήμα +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Πώς να εξάγετε CSV με Java – Ορίστε σημαντικά ψηφία & εξαγωγή περιοχής σε CSV +url: /el/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Εξάγετε CSV με Java – Ορίστε Σημαντικά Ψηφία & Εξάγετε Περιοχή σε CSV + +Έχετε αναρωτηθεί ποτέ **πώς να εξάγετε csv** από ένα βιβλίο εργασίας Java χωρίς να χάσετε την αριθμητική ακρίβεια; Ίσως να έχετε δοκιμάσει ένα γρήγορο `toString()` και να καταλήξατε με ένα χάος σφαλμάτων στρογγυλοποίησης. Αυτό είναι ένα κοινό πρόβλημα, ειδικά όταν χρειάζεται να **ορίσετε σημαντικά ψηφία** για οικονομικά δεδομένα ή επιστημονικά αποτελέσματα. + +Σε αυτό το tutorial θα δείτε ένα πλήρες, έτοιμο‑για‑εκτέλεση παράδειγμα που δείχνει **πώς να εξάγετε csv**, πώς να **ορίσετε σημαντικά ψηφία**, και ακόμη πώς να **εξάγετε περιοχή σε csv** διατηρώντας τα δεδομένα σας τακτικά. Θα περάσουμε γραμμή‑γραμμή, θα εξηγήσουμε το *γιατί* πίσω από τις κλήσεις API, και θα σας δώσουμε συμβουλές για να αποφύγετε τα συνηθισμένα προβλήματα. Χωρίς επιπλέον τεκμηρίωση—απλώς μια αυτόνομη λύση που μπορείτε να αντιγράψετε‑και‑επικολλήσετε σήμερα. + +## Τι Θα Μάθετε + +- Δημιουργήστε ένα βιβλίο εργασίας και διαμορφώστε την αριθμητική ακρίβεια με `setNumberSignificantDigits`. +- Εξάγετε μια συγκεκριμένη περιοχή κελιών ως μια ωραία μορφοποιημένη συμβολοσειρά CSV. +- Αναλύστε ημερομηνίες ιαπωνικής εποχής χρησιμοποιώντας `DateTimeFormatInfo`. +- Επανυπολογίστε τύπους ώστε τα αποτελέσματα δυναμικών πινάκων να παραμένουν ενημερωμένα. +- Αποδώστε έναν πίνακα Pivot σε εικόνα PNG. +- Χρησιμοποιήστε Smart Marker για να εισάγετε σχόλια και τελικά να αποθηκεύσετε το βιβλίο εργασίας. + +Όλα αυτά γίνονται με τη βιβλιοθήκη Aspose.Cells for Java, έκδοση 23.12 (η πιο πρόσφατη τη στιγμή της συγγραφής). Αν έχετε το JAR στο classpath σας, είστε έτοιμοι να ξεκινήσετε. + +--- + +## Βήμα 1: Δημιουργήστε ένα Βιβλίο Εργασίας και **Ορίστε Σημαντικά Ψηφία** + +Πριν μπορέσουμε να εξάγουμε οτιδήποτε, χρειαζόμαστε ένα αντικείμενο workbook. Το πρώτο πράγμα που παραβλέπουν πολλοί προγραμματιστές είναι η αριθμητική ακρίβεια. Από προεπιλογή, το Aspose.Cells χρησιμοποιεί την πλήρη διπλή ακρίβεια, κάτι που μπορεί να οδηγήσει σε μακριές, ακατάλληλες συμβολοσειρές σε CSV. Ορίζοντας τον αριθμό των σημαντικών ψηφίων μειώνουμε το αποτέλεσμα διατηρώντας τα πιο σημαντικά νούμερα. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Γιατί είναι σημαντικό αυτό;** +Αν εξάγετε ένα κελί που περιέχει `12345.6789` χωρίς περιορισμό ψηφίων, το CSV θα εμφανίσει την πλήρη τιμή, γεμίζοντας τις αναφορές. Με `setNumberSignificantDigits(5)`, το ίδιο κελί γίνεται `12346`, που είναι συχνά αυτό που περιμένουν οι επιχειρηματικοί χρήστες. + +> **Pro tip:** Αν χρειάζεστε διαφορετική ακρίβεια ανά στήλη, μπορείτε να εφαρμόσετε ένα προσαρμοσμένο `Style` αντί για τη γενική ρύθμιση. + +--- + +## Βήμα 2: **Εξάγετε Περιοχή σε CSV** – Η Μορφοποίηση Μετρά + +Τώρα που το βιβλίο εργασίας είναι έτοιμο, ας πάρουμε ένα ορθογώνιο μπλοκ δεδομένων και ας το μετατρέψουμε σε συμβολοσειρά CSV. Θα επιβάλλουμε επίσης μορφή δύο δεκαδικών (`0.00`) ώστε κάθε αριθμός να ευθυγραμμίζεται ωραία. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Η κλήση `exportDataTable` κάνει το βαριά δουλειά. Επειδή ορίσαμε `exportAsString`, η μέθοδος επιστρέφει ένα `String` που μπορούμε να εκτυπώσουμε, να γράψουμε σε αρχείο ή να στείλουμε μέσω HTTP. Το βήμα **export range to csv** σέβεται επίσης το παγκόσμιο `setNumberSignificantDigits` που ορίσαμε νωρίτερα, έτσι οι αριθμοί στρογγυλοποιούνται σε πέντε σημαντικά ψηφία *και* εμφανίζονται με δύο δεκαδικά ψηφία. + +**Αναμενόμενη έξοδος (κομμένη):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Common question:** *Τι γίνεται αν χρειάζομαι διαφορετικό διαχωριστικό, όπως άνω‑κάτω τελεία;* +> Απλώς καλέστε `exportOptions.setSeparator(";")` πριν την εξαγωγή. + +--- + +## Βήμα 3: Αναλύστε Ημερομηνία Ιαπωνικής Εποχής (Επιπλέον Χρήσιμη Λειτουργία) + +Αν και δεν σχετίζεται άμεσα με CSV, πολλά φύλλα Excel περιέχουν ημερομηνίες ειδικές για τοπικές ρυθμίσεις. Εδώ φαίνεται πώς μπορείτε να μετατρέψετε μια ιαπωνική συμβολοσειρά εποχής όπως `"R3/04/01"` σε ένα τυπικό αντικείμενο `DateTime`. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Γιατί να το συμπεριλάβουμε αυτό;** +Αν η εξαγωγή CSV τροφοδοτεί συστήματα που αναμένουν ημερομηνίες ISO‑8601, πρέπει πρώτα να ομαλοποιήσετε τυχόν τοπικές μορφές. Αυτό το απόσπασμα δείχνει το *πώς* και το *γιατί* σε ένα μέρος. + +--- + +## Βήμα 4: Επανυπολογίστε Τύπους – Κρατήστε τα Αποτελέσματα Δυναμικών Πινάκων Φρέσκα + +Αν το βιβλίο εργασίας σας περιέχει τύπους (π.χ., `=SUM(A1:A10)`), αυτοί δεν θα ενημερωθούν αυτόματα μετά τις αλλαγές ρυθμίσεων. Η κλήση `calculateFormula` αναγκάζει έναν πλήρη επανυπολογισμό, διασφαλίζοντας ότι το εξαγόμενο CSV αντικατοπτρίζει τις πιο πρόσφατες τιμές. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Watch out:** Τα μεγάλα βιβλία εργασίας μπορεί να χρειαστούν αξιοσημείωτο χρόνο για επανυπολογισμό. Για σενάρια κρίσιμης απόδοσης, σκεφτείτε `calculateFormula(FormulaCalculationOptions)` για περιορισμό του εύρους. + +--- + +## Βήμα 5: Αποδώστε τον Πρώτο Πίνακα Pivot σε Εικόνα PNG + +Μερικές φορές χρειάζεστε μια οπτική λήψη ενός πίνακα pivot δίπλα στο CSV. Ο παρακάτω κώδικας αποδίδει τον πρώτο πίνακα pivot στο πρώτο φύλλο εργασίας σε αρχείο PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Συμβουλή:** Αν το βιβλίο εργασίας δεν περιέχει ήδη pivot, μπορείτε να δημιουργήσετε ένα προγραμματιστικά—δείτε τα docs του Aspose.Cells για ένα γρήγορο παράδειγμα. + +--- + +## Βήμα 6: Χρησιμοποιήστε Smart Marker για να Γράψετε Σχόλιο και να Αποθηκεύσετε το Βιβλίο Εργασίας + +Το Smart Marker σας επιτρέπει να εισάγετε δυναμικό περιεχόμενο στα κελιά χρησιμοποιώντας απλούς placeholders. Εδώ γράφουμε ένα σχόλιο όπως “Reviewed by QA” σε ένα καθορισμένο κελί και στη συνέχεια αποθηκεύουμε το βιβλίο εργασίας. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Το placeholder `${Comment}` μπορεί να τοποθετηθεί οπουδήποτε στο φύλλο (π.χ., κελί `A1`). Όταν τρέξει το `apply`, το placeholder αντικαθίσταται με την τιμή που δόθηκε. + +**Αποτέλεσμα:** Θα βρείτε ένα αρχείο `output/commented.xlsx` που περιέχει το σχόλιο, μαζί με το προηγουμένως δημιουργημένο `pivot.png` και τη συμβολοσειρά CSV που εκτυπώθηκε στην κονσόλα. + +--- + +## Πλήρες Παράδειγμα Εργασίας + +Συνδυάζοντας όλα τα παραπάνω, εδώ είναι το πλήρες πρόγραμμα που μπορείτε να μεταγλωττίσετε και να τρέξετε: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Αναμενόμενη Έξοδος Κονσόλας + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Θα βρείτε επίσης `output/pivot.png` (αν υπήρχε pivot) και `output/commented.xlsx` στο δίσκο. + +--- + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +- **Μπορώ να εξάγω απευθείας σε φυσικό αρχείο CSV;** + Ναι. Αντικαταστήστε το τμήμα `exportAsString` με `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Τι γίνεται αν το φύλλο μου χρησιμοποιεί διαφορετική τοπική ρύθμιση για τους αριθμούς;** + Ορίστε `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` πριν την εξαγωγή· αυτό θα αλλάξει + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/greek/java/excel-pivot-tables/_index.md b/cells/greek/java/excel-pivot-tables/_index.md index cec0b56ea8..a7ae830853 100644 --- a/cells/greek/java/excel-pivot-tables/_index.md +++ b/cells/greek/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Μάθετε πώς να ανανεώνετε δεδομένα Συγκεντρωτικού Πίνακα στο Aspose.Cells για Java. Διατηρήστε τα δεδομένα σας ενημερωμένα χωρίς κόπο. ### [Προσαρμογή στυλ Συγκεντρωτικού Πίνακα](./customizing-pivot-table-styles/) Μάθετε πώς να προσαρμόζετε στυλ συγκεντρωτικών πινάκων στο Aspose.Cells για Java API. Δημιουργήστε οπτικά ελκυστικούς συγκεντρωτικούς πίνακες με ευκολία. +### [Αντιγραφή Συγκεντρωτικού Πίνακα σε Java – Διατήρηση, Εξαγωγή σε PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Μάθετε πώς να αντιγράψετε έναν Συγκεντρωτικό Πίνακα, να τον διατηρήσετε και να τον εξάγετε σε αρχείο PPTX χρησιμοποιώντας Aspose.Cells για Java. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/greek/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..ecae0b32f4 --- /dev/null +++ b/cells/greek/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Αντιγράψτε τον συγκεντρωτικό πίνακα σε Java διατηρώντας τον συγκεντρωτικό, + στη συνέχεια εξάγετε το Excel σε PPTX, απενεργοποιήστε το AutoFilter του Excel και + χρησιμοποιήστε το Smart Marker για πίνακες JSON – πλήρης οδηγός βήμα‑προς‑βήμα. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: el +og_description: Αντιγραφή πίνακα Pivot σε Java, διατήρηση του ορισμού του Pivot, εξαγωγή + σε PPTX, απενεργοποίηση του AutoFilter και χρήση Smart Marker – πλήρης οδηγός για + προγραμματιστές. +og_title: Αντιγραφή Πίνακα Pivot σε Java – Διατήρηση, Εξαγωγή σε PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Αντιγραφή Πίνακα Pivot σε Java – Διατήρηση, Εξαγωγή σε PPTX +url: /el/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Αντιγραφή Πίνακα Pivot σε Java – Διατήρηση, Εξαγωγή σε PPTX + +Ποτέ χρειάστηκε να **αντιγράψετε πίνακα pivot** από ένα βιβλίο εργασίας σε άλλο χωρίς να χάσετε τον υποκείμενο ορισμό του pivot; Δεν είστε ο μόνος που το σκέφτεται. Σε πολλά πραγματικά έργα θα βρείτε τον εαυτό σας να μετακινεί δεδομένα, και το τελευταίο που θέλετε είναι ένας σπασμένος pivot που πετάει σφάλματα κατά το χρόνο εκτέλεσης. + +Σε αυτό το tutorial θα περάσουμε από μια πλήρη λύση που όχι μόνο **αντιγράφει πίνακα pivot** αλλά επίσης σας δείχνει πώς να **διατηρήσετε τον πίνακα pivot** κατά την αντιγραφή, **εξάγετε Excel σε PPTX**, **απενεργοποιήσετε το Excel AutoFilter**, και **χρησιμοποιήσετε smart marker** για να τοποθετήσετε έναν JSON array σε ένα μόνο κελί. Στο τέλος θα έχετε ένα ενιαίο, εκτελέσιμο πρόγραμμα Java που καλύπτει και τις τέσσερις περιπτώσεις. + +## Προαπαιτούμενα + +- Java 8 ή νεότερη (ο κώδικας λειτουργεί επίσης με Java 11) +- Βιβλιοθήκη Aspose.Cells for Java (έκδοση 23.9 ή νεότερη) – μπορείτε να την κατεβάσετε από το Maven Central +- Βασική εξοικείωση με έννοιες του Excel όπως πίνακες pivot, πίνακες και πλαίσια κειμένου + +Αν λείπει το JAR του Aspose.Cells, προσθέστε το στο `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Τώρα, ας ξεκινήσουμε. + +## Βήμα 1: Αντιγραφή Πίνακα Pivot – Διατήρηση του Ορισμού Pivot + +Όταν απλώς αντιγράφετε την περιοχή κελιών που περιέχει έναν πίνακα pivot, τα μεταδεδομένα του pivot συχνά μένουν πίσω. Το Aspose.Cells μας παρέχει έναν εύκολο τρόπο να διατηρήσουμε τον ορισμό αμετάβλητο χρησιμοποιώντας `copyRange` με μια παρουσία `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Γιατί λειτουργεί αυτό:** `CopyOptions` λέει στο Aspose.Cells να μεταφέρει τα πάντα, συμπεριλαμβανομένης της κρυφής μνήμης pivot και των ρυθμίσεων πεδίων. Χωρίς αυτό, θα καταλήξετε με απλές τιμές και θα χάσετε τη δυνατότητα ανανέωσης του pivot. + +**Edge case:** Αν ο πηγαίος pivot σας εκτείνεται πέρα από το σκληρά κωδικοποιημένο `A1:G20`, προσαρμόστε την περιοχή ανάλογα ή χρησιμοποιήστε `sourceSheet.getPivotTables().get(0).getDataRange()` για να την λάβετε δυναμικά. + +![Παράδειγμα αντιγραφής πίνακα pivot](image.png "Αντιγραφή πίνακα pivot σε Java") + +*Κείμενο alt εικόνας: διάγραμμα αντιγραφής πίνακα pivot σε Java* + +## Βήμα 2: Εξαγωγή Φύλλου Εργασίας με Επεξεργάσιμο Πλαίσιο Κειμένου σε PPTX + +Συχνά χρειάζεται να μετατρέψετε ένα φύλλο Excel σε διαφάνεια PowerPoint—σκεφτείτε τα εβδομαδιαία dashboards που πρέπει να παρουσιαστούν. Το Aspose.Cells μπορεί να αποθηκεύσει απευθείας ένα φύλλο εργασίας ως αρχείο PPTX διατηρώντας σχήματα όπως τα πλαίσια κειμένου. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Τι συμβαίνει:** Η μέθοδος `save` με `SaveFormat.PPTX` μετατρέπει ολόκληρο το φύλλο, συμπεριλαμβανομένου οποιουδήποτε επεξεργάσιμου TextBox, σε διαφάνεια PowerPoint. Το κείμενο μέσα στο πλαίσιο παραμένει επεξεργάσιμο όταν ανοίγετε το PPTX στο PowerPoint. + +**Tip:** Αν έχετε πολλά φύλλα και θέλετε μόνο ένα συγκεκριμένο, καλέστε `wb.getWorksheets().removeAt(index)` για τα υπόλοιπα πριν από την αποθήκευση. + +## Βήμα 3: Απενεργοποίηση AutoFilter του Excel από Πίνακα + +Το AutoFilter είναι χρήσιμο για τους τελικούς χρήστες, αλλά μερικές φορές χρειάζεται να το απενεργοποιήσετε προγραμματιστικά—ίσως πριν από την εξαγωγή δεδομένων ή όταν δημιουργείτε μια καθαρή αναφορά. Δείτε πώς να **απενεργοποιήσετε το excel autofilter** σε έναν πίνακα Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Γιατί μπορεί να το χρειαστείτε:** Η εξαγωγή σε μορφές που δεν υποστηρίζουν AutoFilter (όπως CSV ή PDF) μπορεί να εμφανίσει ανεπιθύμητα εικονίδια φίλτρου. Η απενεργοποίησή του εξασφαλίζει καθαρό αποτέλεσμα. + +**Κοινό λάθος:** Αν το φύλλο δεν έχει πίνακες, το `getTables().get(0)` θα ρίξει `IndexOutOfBoundsException`. Πάντα ελέγχετε πρώτα το `sheet.getTables().size()` σε κώδικα παραγωγής. + +## Βήμα 4: Χρήση Smart Marker – Εισαγωγή JSON Array ως Μονή Τιμή Κελιού + +Το Smart Marker είναι η μηχανή προτύπων του Aspose. Ένα χρήσιμο κόλπο είναι να αντιμετωπίζετε ολόκληρο έναν JSON array ως μια μοναδική τιμή κελιού, ιδανικό για logging ή για μεταβίβαση δομημένων δεδομένων. Ας **χρησιμοποιήσουμε smart marker** για να το πετύχουμε. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Πώς λειτουργεί:** Ο δείκτης `${json}` στο βιβλίο εργασίας αντικαθίσταται από ολόκληρη τη συμβολοσειρά JSON επειδή ορίσαμε `ArrayAsSingle`. Χωρίς αυτήν την επιλογή, το Aspose θα προσπαθούσε να επεκτείνει κάθε στοιχείο του array σε ξεχωριστές γραμμές. + +**Παραλλαγή:** Αν χρειάζεστε το array να χωριστεί σε γραμμές, απλώς παραλείψτε το `ArrayAsSingle` και αφήστε το Smart Marker να διαχειριστεί αυτόματα την επέκταση. + +## Πλήρες Παράδειγμα Εργασίας – Όλα τα Βήματα Συνδυασμένα + +Παρακάτω υπάρχει μια μοναδική κλάση Java που ενώνει όλες τις λειτουργίες που καλύψαμε. Εκτελέστε την ως κανονική μέθοδο `main`; απλώς προσαρμόστε τις διαδρομές αρχείων ώστε να ταιριάζουν στο περιβάλλον σας. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/greek/java/getting-started/_index.md b/cells/greek/java/getting-started/_index.md index 184b2c1421..b18f4a203e 100644 --- a/cells/greek/java/getting-started/_index.md +++ b/cells/greek/java/getting-started/_index.md @@ -38,6 +38,9 @@ ### [Ρύθμιση και επαλήθευση άδειας χρήσης Java για το Aspose.Cells: Πλήρης οδηγός](./aspose-cells-java-license-setup-guide/) Εξασκηθείτε στη ρύθμιση και την επαλήθευση της άδειας χρήσης Java του Aspose.Cells με τον ολοκληρωμένο οδηγό μας. Εξασφαλίστε πλήρη πρόσβαση σε προηγμένες λειτουργίες χωρίς κόπο. +### [Δημιουργία Αδειοδοτημένου Βιβλίου Εργασίας – Πλήρης Οδηγός Aspose.Cells για Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Μάθετε πώς να δημιουργήσετε ένα αδειοδοτημένο βιβλίο εργασίας Excel χρησιμοποιώντας το Aspose.Cells για Java, με πλήρη οδηγίες βήμα προς βήμα. + ### [Aspose.Cells για Java: Πώς να δημιουργήσετε και να μορφοποιήσετε βιβλία εργασίας Excel αποτελεσματικά](./aspose-cells-java-workbook-creation-guide/) Μάθετε πώς να αυτοματοποιήσετε τη δημιουργία και τη μορφοποίηση βιβλίων εργασίας του Excel σε Java με το Aspose.Cells. Αυτός ο οδηγός καλύπτει τις τεχνικές εγκατάστασης, χειρισμού βιβλίων εργασίας και μορφοποίησης κελιών. diff --git a/cells/greek/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/greek/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..49ee8f6a35 --- /dev/null +++ b/cells/greek/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Δημιουργήστε γρήγορα αδειοδοτημένο βιβλίο εργασίας με το Aspose.Cells + Java. Μάθετε πώς να αδειοδοτήσετε το Aspose, να ορίσετε την άδεια Aspose Java και + να διαβάσετε Excel με το Aspose σε ένα μόνο οδηγό. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: el +og_description: Δημιουργήστε αδειοδοτημένο βιβλίο εργασίας χρησιμοποιώντας το Aspose.Cells + Java. Αυτός ο οδηγός δείχνει πώς να αδειοδοτήσετε το Aspose, να ορίσετε την άδεια + Aspose Java και να διαβάσετε Excel με το Aspose. +og_title: Δημιουργία Αδειοδοτημένου Φύλλου Εργασίας – Εκμάθηση Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Δημιουργία βιβλίου εργασίας με άδεια – Πλήρης οδηγός Aspose.Cells για Java +url: /el/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Licensed Workbook – Πλήρης Οδηγός Aspose.Cells για Java + +Έχετε αναρωτηθεί ποτέ πώς να **δημιουργήσετε licensed workbook** χωρίς να αντιμετωπίσετε σφάλματα αδειοδότησης; Δεν είστε οι μόνοι—πολλοί προγραμματιστές συναντούν αυτό το εμπόδιο όταν χρησιμοποιούν για πρώτη φορά το Aspose.Cells. Τα καλά νέα; Η λύση είναι απλή, και αυτός ο οδηγός θα σας καθοδηγήσει βήμα‑βήμα. + +Σε λίγα λεπτά θα ξέρετε **πώς να αδειοδοτήσετε το Aspose**, ακριβώς **πώς να ορίσετε την άδεια Aspose Java**, και θα είστε έτοιμοι να **διαβάσετε Excel με Aspose** για πραγματικές εργασίες όπως αναφορές ή μεταφορά δεδομένων. Χωρίς ασαφείς αναφορές, μόνο ένα πλήρες, εκτελέσιμο παράδειγμα που μπορείτε να αντιγράψετε‑επικολλήσετε σήμερα. + +--- + +## Τι Θα Χρειαστείτε + +- Java 17 ή νεότερη (η τελευταία σταθερή έκδοση λειτουργεί καλύτερα) +- Aspose.Cells for Java 23.9 (ή οποιαδήποτε πρόσφατη έκδοση) +- Το αρχείο άδειας του Aspose.Cells (`Aspose.Cells.Java.lic`) +- Ένα IDE ή εργαλείο κατασκευής με το οποίο αισθάνεστε άνετα (Maven, Gradle ή απλό `javac`) + +Αν κάποιο από αυτά σας φαίνεται άγνωστο, μην ανησυχείτε—κάθε στοιχείο καλύπτεται στα παρακάτω βήματα. + +--- + +## Βήμα 1: Προσθήκη Εξάρτησης Aspose.Cells + +Πριν μπορέσετε να **δημιουργήσετε licensed workbook**, η βιβλιοθήκη πρέπει να βρίσκεται στο classpath σας. Με Maven φαίνεται έτσι: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Για Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro tip:** Αν χρησιμοποιείτε απλή μεταγλώττιση με `javac`, απλώς τοποθετήστε το JAR σε φάκελο `libs/` και προσθέστε το στην παράμετρο `-cp`. + +--- + +## Βήμα 2: **Πώς να Αδειοδοτήσετε το Aspose** – Φόρτωση του Αρχείου Άδειας + +Την στιγμή που καλέσετε οποιοδήποτε API του Aspose χωρίς άδεια, θα δείτε ένα υδατογράφημα στο παραγόμενο αρχείο Excel. Για να το αποφύγετε, πρέπει να **ορίσετε την άδεια Aspose Java** νωρίς στο πρόγραμμα σας. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Γιατί είναι σημαντικό:** Το αντικείμενο `License` λέει στο Aspose να παραλείψει τη λειτουργία αξιολόγησης, αφαιρώντας τα υδατογραφήματα και ξεκλειδώνοντας όλη τη λειτουργικότητα του API. Αν η διαδρομή είναι λανθασμένη, θα ριχτεί εξαίρεση—οπότε θα το γνωρίζετε αμέσως. + +--- + +## Βήμα 3: **Δημιουργία Licensed Workbook** – Δημιουργία Αρχείου Excel + +Τώρα που η άδεια έχει εφαρμοστεί, μπορείτε με ασφάλεια να **δημιουργήσετε licensed workbook** αντικείμενα. Παρακάτω υπάρχει ένα ελάχιστο αλλά πλήρες παράδειγμα που επίσης δείχνει **πώς να διαβάσετε Excel με Aspose** αργότερα. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Τι κάνει αυτό:** + +1. Καλεί τη βοηθητική μέθοδο από το **Βήμα 2** για να **ορίσει την άδεια Aspose Java**. +2. Δημιουργεί ένα νέο `Workbook` – τον πυρήνα μιας λειτουργίας **create licensed workbook**. +3. Γράφει έναν μικρό πίνακα, τον αποθηκεύει ως XLSX και αμέσως τον διαβάζει ξανά για να αποδείξει ότι η **read Excel with Aspose** λειτουργεί χωρίς υδατογραφήματα. + +Η εκτέλεση του προγράμματος εμφανίζει: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Αν ανοίξετε το παραγόμενο αρχείο, θα δείτε ένα καθαρό φύλλο χωρίς υδατογράφημα του Aspose—απόδειξη ότι η άδεια είναι ενεργή. + +--- + +## Βήμα 4: Συνηθισμένα Προβλήματα & Ακραίες Περιπτώσεις + +| Πρόβλημα | Γιατί Συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| **LicenseNotFoundException** | Η διαδρομή είναι λανθασμένη ή το αρχείο λείπει. | Χρησιμοποιήστε απόλυτη διαδρομή ή φορτώστε το αρχείο από resources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Το JAR του Aspose δεν βρίσκεται στο classpath. | Επαληθεύστε την εξάρτηση Maven/Gradle ή προσθέστε το JAR χειροκίνητα. | +| **Αποτυχία αποθήκευσης στα Windows** | Ο φάκελος προορισμού δεν υπάρχει. | Βεβαιωθείτε ότι ο φάκελος `output/` δημιουργείται (`new File("output").mkdirs();`). | +| **Ανάγνωση παλαιότερων αρχείων .xls** | Το προεπιλεγμένο `SaveFormat` μπορεί να μην υποστηρίζει παλιές μορφές. | Χρησιμοποιήστε `SaveFormat.XLS` κατά την αποθήκευση, ή αφήστε το Aspose να ανιχνεύσει αυτόματα κατά τη φόρτωση. | + +> **Προσοχή:** Αν κάνετε ανάπτυξη σε διακομιστή, το αρχείο άδειας θα πρέπει να βρίσκεται εκτός του ριζικού φακέλου της web‑εφαρμογής για να αποφύγετε τυχαία έκθεση. + +--- + +## Βήμα 5: Επαλήθευση της Άδειας Προγραμματιστικά (Προαιρετικό) + +Μερικές φορές θέλετε να ελέγξετε διπλά ότι η άδεια φορτώθηκε σωστά πριν εκτελέσετε βαριές λειτουργίες. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Μπορείτε να καλέσετε `LicenseChecker.isLicensed("...")` και να τερματίσετε την εκτέλεση αν επιστρέψει `false`. Αυτό προσθέτει ένα επιπλέον δίχτυ ασφαλείας, ειδικά σε pipelines CI/CD. + +--- + +## Οπτική Επισκόπηση + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Κείμενο alt εικόνας:* **create licensed workbook diagram** – απεικονίζει τα βήματα για την εφαρμογή της άδειας Aspose, τη δημιουργία του workbook και την ανάγνωση του Excel. + +--- + +## Συμπέρασμα + +Τώρα έχετε μια πλήρη, end‑to‑end λύση για **create licensed workbook** χρησιμοποιώντας το Aspose.Cells για Java. Καλύψαμε **πώς να αδειοδοτήσετε το Aspose**, παρουσιάσαμε τον ακριβή κώδικα **set Aspose license Java**, και σας δώσαμε μια γρήγορη ματιά στο **read Excel with Aspose** για να επιβεβαιώσετε ότι όλα λειτουργούν. + +Στη συνέχεια, ίσως θελήσετε να εξερευνήσετε: + +- Διαμόρφωση κελιών (γραμματοσειρές, χρώματα) – ιδανικό για επαγγελματικές αναφορές. +- Εξαγωγή σε CSV ή PDF – το Aspose υποστηρίζει πολλές μορφές έτοιμες προς χρήση. +- Εργασία με μεγάλα σύνολα δεδομένων – χρησιμοποιήστε το `WorkbookDesigner` για δημιουργία προτύπων. + +Πειραματιστείτε ελεύθερα, και αν αντιμετωπίσετε δυσκολίες, αφήστε ένα σχόλιο παρακάτω. Καλό κώδικα! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/greek/java/ole-objects-embedded-content/_index.md b/cells/greek/java/ole-objects-embedded-content/_index.md index 08db201cbb..0bb9adb66d 100644 --- a/cells/greek/java/ole-objects-embedded-content/_index.md +++ b/cells/greek/java/ole-objects-embedded-content/_index.md @@ -42,12 +42,13 @@ Μάθετε πώς να εξάγετε αποτελεσματικά αντικείμενα OLE από αρχεία Excel χρησιμοποιώντας το Aspose.Cells για Java. Αυτός ο οδηγός καλύπτει τα βήματα εγκατάστασης, εξαγωγής και τις βέλτιστες πρακτικές. ### [Πώς να εξαγάγετε GUID από αντικείμενο OLE στο Excel χρησιμοποιώντας Aspose.Cells για Java](./extract-guid-ole-object-excel-aspose-cells-java/) -Μάθετε πώς να εξαγάγετε αποτελεσματικά GUID από ενσωματωμένα αντικείμενα PowerPoint σε αρχεία Excel χρησιμοποιώντας το Aspose.Cells για Java. Ακολουθήστε αυτόν τον οδηγό βήμα προς βήμα για απρόσκοπτη ενσωμάτωση. +Μάθετε πώς να εξάγετε αποτελεσματικά GUID από ενσωματωμένα αντικείμενα PowerPoint σε αρχεία Excel χρησιμοποιώντας το Aspose.Cells για Java. Ακολουθήστε αυτόν τον οδηγό βήμα προς βήμα για απρόσκοπτη ενσωμάτωση. ### [Αφαίρεση στοιχείων ελέγχου ActiveX από το Excel με το Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Ένα σεμινάριο κώδικα για το Aspose.Words Java - +### [Πώς να ενσωματώσετε γραμματοσειρές – Πλήρης οδηγός για εξαγωγή HTML, XPS και OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Μάθετε πώς να ενσωματώνετε γραμματοσειρές σε έγγραφα HTML, XPS και εξαγωγές OLE χρησιμοποιώντας το Aspose.Cells για Java. ## Πρόσθετοι Πόροι diff --git a/cells/greek/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/greek/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..6b23d5693f --- /dev/null +++ b/cells/greek/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-01 +description: Μάθετε πώς να ενσωματώνετε γραμματοσειρές σε HTML και άλλα μορφότυπα. + Αναλυτικό βήμα‑βήμα tutorial που καλύπτει την ενσωμάτωση γραμματοσειρών σε HTML, + τη μετατροπή του Excel σε HTML, πώς να εξάγετε OLE και τη μετατροπή του Excel σε + XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: el +og_description: Πώς να ενσωματώσετε γραμματοσειρές σε εξαγωγές HTML, XPS και OLE. + Μάθετε τη πλήρη ροή εργασίας, δείτε εκτελέσιμο κώδικα Java και κατακτήστε την ενσωμάτωση + γραμματοσειρών σε HTML για μετατροπές Excel. +og_title: Πώς να ενσωματώσετε γραμματοσειρές – Πλήρης οδηγός Java +tags: +- Aspose.Cells +- Java +- Document Export +title: Πώς να ενσωματώσετε γραμματοσειρές – Πλήρης οδηγός για εξαγωγή HTML, XPS και + OLE +url: /el/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Ενσωματώσετε Γραμματοσειρές – Πλήρης Οδηγός για HTML, XPS και Εξαγωγή OLE + +Έχετε αναρωτηθεί ποτέ **πώς να ενσωματώσετε γραμματοσειρές** όταν μετατρέπετε ένα βιβλίο εργασίας του Excel σε ιστοσελίδα ή σε εκτυπώσιμο έγγραφο; Δεν είστε μόνοι. Πολλοί προγραμματιστές συναντούν πρόβλημα όταν το αποτέλεσμα φαίνεται σωστό στον δικό τους υπολογιστή αλλά σπάει σε άλλο επειδή λείπουν οι απαιτούμενες γραμματοσειρές. + +Σε αυτό το tutorial θα περάσουμε από ένα πραγματικό σενάριο χρησιμοποιώντας το Aspose.Cells for Java: θα ενσωματώσουμε γραμματοσειρές σε HTML, θα διατηρήσουμε τους επιλογείς παραλλαγής emoji κατά τη μετατροπή σε XPS, και ακόμη θα κρατήσουμε ένα αντικείμενο OLE επεξεργάσιμο κατά την εξαγωγή σε PPTX. Στο τέλος θα έχετε μια σταθερή λύση copy‑and‑paste που απαντά στο “πώς να ενσωματώσετε γραμματοσειρές” και επίσης αγγίζει τα **embed fonts in html**, **convert excel to html**, **how to export ole**, και **convert excel to xps**. + +## Προαπαιτούμενα + +- Java 17 (ή οποιοδήποτε πρόσφατο JDK) +- Aspose.Cells for Java 25.x ή νεότερο +- Ένα IDE ανάπτυξης (IntelliJ IDEA, Eclipse ή VS Code) +- Βασική εξοικείωση με τις δομές δεδομένων του Excel + +Δεν απαιτούνται εξωτερικές υπηρεσίες—όλα εκτελούνται τοπικά. + +## Επισκόπηση της Λύσης + +1. **Δημιουργήστε ένα βιβλίο εργασίας** και χρησιμοποιήστε τη λειτουργία `WRAPCOLS` για να μετατρέψετε μια κάθετη περιοχή σε διάταξη τριών στηλών. +2. **Αποθηκεύστε το βιβλίο εργασίας ως XPS** ενεργοποιώντας τους επιλογείς παραλλαγής γραμματοσειράς ώστε τα emoji να παραμείνουν αμετάβλητα. +3. **Εξαγωγή σε HTML** με ενσωματωμένες γραμματοσειρές, εξασφαλίζοντας ότι η σελίδα φαίνεται το ίδιο παντού. +4. **Εξαγωγή ενός βιβλίου εργασίας που περιέχει αντικείμενο OLE σε PPTX**, διατηρώντας τη δυνατότητα επεξεργασίας. +5. **Εφαρμογή προτύπου Smart Marker** που δείχνει τη σύνδεση δεδομένων master‑detail. + +Κάθε βήμα είναι απομονωμένο στη δική του ενότητα H2, καθιστώντας τον οδηγό εύκολο στην περιήγηση τόσο για τις μηχανές αναζήτησης όσο και για τους βοηθούς AI. + +![Εικόνα για το πώς να ενσωματώσετε γραμματοσειρές](image.png "πώς να ενσωματώσετε γραμματοσειρές") + +*Κείμενο alt εικόνας: διάγραμμα που δείχνει τη ροή εργασίας από το Excel στο HTML, XPS και PPTX.* + +--- + +## Βήμα 1 – Δημιουργία Βιβλίου Εργασίας και Χρήση WRAPCOLS (Γιατί Αυτό Σημαίνει για embed fonts in html) + +Πριν μπορέσουμε να μιλήσουμε για την ενσωμάτωση γραμματοσειρών, χρειαζόμαστε ένα βιβλίο εργασίας που να περιέχει πραγματικά δεδομένα. Η λειτουργία `WRAPCOLS` είναι ένας βολικός τρόπος για να χωρίσετε μια στήλη σε πολλές στήλες, κάτι που συχνά κάνει το τελικό HTML πιο ευανάγνωστο. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Γιατί αυτό το βήμα;** +Η κλήση `WRAPCOLS` δημιουργεί μια πολλαπλών στηλών περιοχή που αργότερα εμφανίζεται στο HTML ως πίνακας. Όταν αργότερα **embed fonts in html**, η μορφοποίηση του πίνακα θα εξαρτηθεί από τις γραμματοσειρές που ενσωματώνουμε, εξασφαλίζοντας συνεπή απόδοση σε όλα τα προγράμματα περιήγησης. + +## Βήμα 2 – Αποθήκευση του Βιβλίου Εργασίας ως XPS Διατηρώντας τα Emoji (convert excel to xps) + +Αν χρειάζεστε μια μορφή έτοιμη για εκτύπωση, το XPS είναι μια αξιόπιστη επιλογή. Ωστόσο, τα σύγχρονα έγγραφα συχνά περιέχουν emoji ή σύμβολα που χρησιμοποιούν επιλογείς παραλλαγής. Η ενεργοποίηση του `EnableFontVariationSelectors` εξασφαλίζει ότι αυτοί οι χαρακτήρες θα παραμείνουν μετά τη μετατροπή. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Τι λαμβάνετε:** +Ένα αρχείο XPS που εμφανίζει οποιοδήποτε ενσωματωμένο emoji ακριβώς όπως στο πηγαίο βιβλίο εργασίας. Αυτό ικανοποιεί την απαίτηση **convert excel to xps** και δείχνει ότι η διαχείριση γραμματοσειρών δεν περιορίζεται μόνο στο HTML. + +## Βήμα 3 – Εξαγωγή σε HTML με Ενσωματωμένες Γραμματοσειρές (how to embed fonts & embed fonts in html) + +Τώρα φτάνουμε στον πυρήνα του tutorial: **how to embed fonts** κατά τη μετατροπή του Excel σε HTML. Το Aspose.Cells μας επιτρέπει να ενσωματώσουμε τις γραμματοσειρές απευθείας στο παραγόμενο αρχείο HTML, εξαλείφοντας την ανάγκη για εξωτερικά αρχεία γραμματοσειρών. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Πώς λειτουργεί:** +`setEmbedFonts(true)` λέει στον renderer να διαβάσει τα αρχεία γραμματοσειρών που χρησιμοποιούνται στο βιβλίο εργασίας και να τα ενσωματώσει ως κανόνες `@font-face` κωδικοποιημένους σε Base64 μέσα στην ετικέτα ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Παρατηρήστε τον κανόνα `@font-face`—αυτή είναι η συγκεκριμένη απάντηση στο **embed fonts in html**. + +## Βήμα 4 – Εξαγωγή Βιβλίου Εργασίας που Περιέχει Αντικείμενο OLE σε PPTX (how to export ole) + +Πολλές επιχειρηματικές αναφορές ενσωματώνουν έγγραφα Word, PDF ή άλλα φύλλα Excel ως αντικείμενα OLE. Όταν εξάγετε ένα τέτοιο βιβλίο εργασίας σε PowerPoint, συχνά χάνετε τη δυνατότητα επεξεργασίας του αντικειμένου. Το Aspose.Cells διατηρεί τη δυνατότητα επεξεργασίας από την αρχή. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Γιατί είναι σημαντικό:** +Αν ψάχνετε για **how to export ole**, αυτό το απόσπασμα δείχνει την ακριβή κλήση API. Η προκύπτουσα διαφάνεια PowerPoint περιέχει το αντικείμενο OLE ως ζωντανό στοιχείο διπλού‑κλικ‑για‑επεξεργασία—χωρίς επιπλέον επεξεργασία. + +## Βήμα 5 – Εφαρμογή Προτύπου Smart Marker (master‑detail) και Ολοκλήρωση της Επίδειξης + +Τα Smart Markers σας επιτρέπουν να συνδέσετε μια πηγή δεδομένων (Map, JSON, DataTable) απευθείας με ένα πρότυπο Excel. Ακολουθεί ένα ελάχιστο παράδειγμα που εκτυπώνει γραμμές master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Τι βλέπετε:** +Ένα νέο βιβλίο εργασίας (`smartMarkerResult.xlsx`) όπου τα placeholders του προτύπου έχουν αντικατασταθεί με τα δεδομένα. Αυτό το βήμα δεν αφορά άμεσα τις γραμματοσειρές, αλλά ολοκληρώνει τον οδηγό δείχνοντας μια τυπική ροή αναφοράς που συχνά προηγείται μιας εξαγωγής **embed fonts in html**. + +## Συνηθισμένα Παράπλευρα Προβλήματα & Συμβουλές (Διασφάλιση Επιτυχούς Ενσωμάτωσης Γραμματοσειρών) + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|------------------|----------| +| Οι γραμματοσειρές λείπουν από το αρχείο HTML | Το βιβλίο εργασίας χρησιμοποιεί μια σύστημα γραμματοσειρά που δεν είναι εγκατεστημένη στον διακομιστή. | Χρησιμοποιήστε `Workbook.getSettings().setDefaultFont("Arial")` πριν τη φόρτωση των δεδομένων, ή ενσωματώστε τα απαιτούμενα αρχεία γραμματοσειρών χειροκίνητα. | +| Το παραγόμενο HTML είναι τεράστιο | Η ενσωμάτωση πολλών μεγάλων γραμματοσειρών αυξάνει το μέγεθος του αρχείου. | Περιορίστε την ενσωμάτωση μόνο στις γραμματοσειρές που χρησιμοποιείτε πραγματικά: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Τα emoji εξαφανίζονται μετά τη μετατροπή σε XPS | Οι επιλογείς παραλλαγής αφαιρούνται εξ ορισμού. | Ενεργοποιήστε `settings.setEnableFontVariationSelectors(true)` όπως φαίνεται στο Βήμα 2. | +| Το αντικείμενο OLE γίνεται στατική εικόνα σε PPTX | Το πηγαίο βιβλίο εργασίας αποθηκεύτηκε με `setSuppressOLEObjects(true)`. | Βεβαιωθείτε ότι **δεν** καταστέλλετε τα αντικείμενα OLE κατά την αποθήκευση σε PPTX. | + +## Επαλήθευση των Αποτελεσμάτων + +1. Ανοίξτε το `embeddedFonts.html` σε Chrome/Firefox. Ο πίνακας θα πρέπει να εμφανίζεται χρησιμοποιώντας την ενσωματωμένη γραμματοσειρά (π.χ., Arial) ακόμη και αν αυτή η γραμματοσειρά δεν είναι εγκατεστημένη στον υπολογιστή. +2. Ανοίξτε το `withVariations.xps` στον Windows XPS Viewer. Τα emoji όπως 👍 πρέπει να εμφανίζονται σωστά. +3. Ανοίξτε το `oleEditable.pptx` στο PowerPoint. Κάντε διπλό‑κλικ στο σχήμα OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hindi/java/excel-import-export/_index.md b/cells/hindi/java/excel-import-export/_index.md index 86b4803d9b..6a035a905a 100644 --- a/cells/hindi/java/excel-import-export/_index.md +++ b/cells/hindi/java/excel-import-export/_index.md @@ -22,7 +22,7 @@ ## जावा डेवलपर्स के लिए चरण-दर-चरण ट्यूटोरियल: -हमारे व्यापक ट्यूटोरियल आपको जावा के लिए Aspose.Cells का उपयोग करके एक्सेल आयात और निर्यात की जटिल प्रक्रिया के माध्यम से मार्गदर्शन करेंगे। चाहे आप नौसिखिए हों या अनुभवी जावा डेवलपर, हमारे चरण-दर-चरण मार्गदर्शिकाएँ यह सुनिश्चित करने के लिए डिज़ाइन की गई हैं कि आप आवश्यक कौशल प्राप्त करें। आप सीखेंगे कि एक्सेल फ़ाइलों में डेटा को कुशलतापूर्वक कैसे आयात किया जाए और इसे एक्सेल वर्कबुक से सटीकता और आसानी से कैसे निर्यात किया जाए। +हमारे व्यापक ट्यूटोरियल आपको जावा के लिए Aspose.Cells का उपयोग करके एक्सेल आयात और निर्यात की जटिल प्रक्रिया के माध्यम से मार्गदर्शन करेंगे। चाहे आप नौसिखिए हों या अनुभवी जावा डेवलपर, हमारे चरण-दर-स्तर मार्गदर्शिकाएँ यह सुनिश्चित करने के लिए डिज़ाइन की गई हैं कि आप आवश्यक कौशल प्राप्त करें। आप सीखेंगे कि एक्सेल फ़ाइलों में डेटा को कुशलतापूर्वक कैसे आयात किया जाए और इसे एक्सेल वर्कबुक से सटीकता और आसानी से कैसे निर्यात किया जाए। ## आज ही एक्सेल हैंडलिंग में निपुणता प्राप्त करें: @@ -30,23 +30,27 @@ Aspose.Cells for Java के साथ एक्सेल आयात और ## एक्सेल आयात निर्यात ट्यूटोरियल ### [बल्क डेटा आयात एक्सेल](./bulk-data-import-excel/) -Aspose.Cells for Java API का उपयोग करके Excel से बल्क डेटा आयात करना सीखें। इस चरण-दर-चरण मार्गदर्शिका के साथ अपने डेटा प्रोसेसिंग को सुव्यवस्थित करें। +Aspose.Cells for Java API का उपयोग करके Excel से बल्क डेटा आयात करना सीखें। इस चरण-दर-स्तर मार्गदर्शिका के साथ अपने डेटा प्रोसेसिंग को सुव्यवस्थित करें। ### [एक्सेल डेटा निर्यात विधियाँ](./excel-data-export-methods/) जावा के लिए Aspose.Cells का उपयोग करके Excel डेटा निर्यात विधियों की क्षमता को अनलॉक करें। इस व्यापक गाइड में व्यावहारिक स्रोत कोड उदाहरणों के साथ सीखें। आज ही अपने डेटा प्रबंधन कौशल को अनुकूलित करें। ### [CSV निर्यात जावा कोड](./csv-export-java-code/) -Java के लिए Aspose.Cells का उपयोग करके CSV प्रारूप में डेटा निर्यात करना सीखें। सहज CSV निर्यात के लिए स्रोत कोड के साथ चरण-दर-चरण मार्गदर्शिका। +Java के लिए Aspose.Cells का उपयोग करके CSV प्रारूप में डेटा निर्यात करना सीखें। सहज CSV निर्यात के लिए स्रोत कोड के साथ चरण-दर-स्तर मार्गदर्शिका। ### [एक्सेल को पीडीएफ में निर्यात करना](./exporting-excel-to-pdf/) -जावा के लिए Aspose.Cells का उपयोग करके आसानी से Excel फ़ाइलों को PDF में निर्यात करना सीखें। हमारी चरण-दर-चरण मार्गदर्शिका प्रक्रिया को सरल बनाती है। आज ही कनवर्ट करना शुरू करें! +जावा के लिए Aspose.Cells का उपयोग करके आसानी से Excel फ़ाइलों को PDF में निर्यात करना सीखें। हमारी चरण-दर-स्तर मार्गदर्शिका प्रक्रिया को सरल बनाती है। आज ही कनवर्ट करना शुरू करें! ### [एक्सेल को XML जावा में निर्यात करें](./export-excel-to-xml-java/) -Aspose.Cells for Java के साथ जावा में Excel को XML में एक्सपोर्ट करना सीखें। सहज डेटा रूपांतरण के लिए स्रोत कोड के साथ चरण-दर-चरण मार्गदर्शिका। +Aspose.Cells for Java के साथ जावा में Excel को XML में एक्सपोर्ट करना सीखें। सहज डेटा रूपांतरण के लिए स्रोत कोड के साथ चरण-दर-स्तर मार्गदर्शिका। ### [एक्सेल से डेटा आयात करें](./data-import-from-excel/) जावा के लिए Aspose.Cells का उपयोग करके Excel से डेटा आयात करना सीखें। निर्बाध डेटा पुनर्प्राप्ति के लिए स्रोत कोड के साथ एक व्यापक गाइड। ### [एक्सेल को JSON में निर्यात करें](./export-excel-to-json/) -जावा के लिए Aspose.Cells का उपयोग करके Excel डेटा को JSON में निर्यात करना सीखें। सहज रूपांतरण के लिए स्रोत कोड के साथ इस चरण-दर-चरण मार्गदर्शिका का पालन करें। +जावा के लिए Aspose.Cells का उपयोग करके Excel डेटा को JSON में निर्यात सीखें। सहज रूपांतरण के लिए स्रोत कोड के साथ इस चरण-दर-स्तर मार्गदर्शिका का पालन करें। ### [एक्सेल आयात डेटा सत्यापन](./excel-import-data-validation/) -इस विस्तृत चरण-दर-चरण मार्गदर्शिका के साथ Java के लिए Aspose.Cells का उपयोग करके Excel आयात डेटा सत्यापन को लागू करना सीखें। डेटा सटीकता सुनिश्चित करें और उपयोगकर्ता अनुभव को बेहतर बनाएँ। +इस विस्तृत चरण-दर-स्तर मार्गदर्शिका के साथ Java के लिए Aspose.Cells का उपयोग करके Excel आयात डेटा सत्यापन को लागू करना सीखें। डेटा सटीकता सुनिश्चित करें और उपयोगकर्ता अनुभव को बेहतर बनाएँ। ### [एक्सेल को HTML जावा में निर्यात करें](./export-excel-to-html-java/) -जावा के लिए Aspose.Cells का उपयोग करके जावा में Excel को HTML में निर्यात करना सीखें। अपनी Excel फ़ाइलों को आसानी से HTML में बदलने के लिए स्रोत कोड के साथ इस चरण-दर-चरण मार्गदर्शिका का पालन करें। +जावा के लिए Aspose.Cells का उपयोग करके जावा में Excel को HTML में निर्यात करना सीखें। अपनी Excel फ़ाइलों को आसानी से HTML में बदलने के लिए स्रोत कोड के साथ इस चरण-दर-स्तर मार्गदर्शिका का पालन करें। +### [जावा के साथ CSV निर्यात कैसे करें – महत्वपूर्ण अंकों को सेट करें और निर्यात रेंज को CSV में निर्यात करें](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +जावा के लिए Aspose.Cells का उपयोग करके CSV निर्यात करते समय महत्वपूर्ण अंकों को सेट करना और निर्यात रेंज निर्दिष्ट करना सीखें। +### [वर्कबुक से PDF बनाना – पूर्ण जावा गाइड](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +जावा के लिए Aspose.Cells का उपयोग करके वर्कबुक को PDF में बदलना सीखें। चरण-दर-स्तर मार्गदर्शिका के साथ सहज रूपांतरण। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/hindi/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..adeb3789bd --- /dev/null +++ b/cells/hindi/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: PDF कैसे बनाएं और वर्कबुक को PDF के रूप में सहेजें, Excel को HTML में + निर्यात करें, और Aspose.Cells for Java के साथ एक्सपैंड फ़ंक्शन का उपयोग करें। चरण‑दर‑चरण + कोड शामिल है। +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: hi +og_description: Aspose.Cells for Java का उपयोग करके वर्कबुक से PDF कैसे बनाएं। वर्कबुक + को PDF के रूप में सहेजना, Excel को HTML में निर्यात करना, और EXPAND फ़ंक्शन का उपयोग + करना सीखें। +og_title: वर्कबुक से PDF कैसे बनाएं – जावा ट्यूटोरियल +tags: +- Aspose.Cells +- Java +- PDF generation +title: वर्कबुक से PDF कैसे बनाएं – पूर्ण जावा गाइड +url: /hi/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# वर्कबुक से PDF कैसे बनाएं – पूर्ण जावा गाइड + +क्या आपने कभी सोचा है **कि Excel वर्कबुक से सीधे PDF कैसे बनाएं** बिना थर्ड‑पार्टी कन्वर्टर के झंझट के? आप अकेले नहीं हैं। कई डेवलपर्स को तेज़ PDF एक्सपोर्ट, HTML प्रीव्यू, या फैंसी एरे फ़ॉर्मूले की ज़रूरत पड़ने पर रुकावट आती है—सब एक साथ। + +इस ट्यूटोरियल में हम एक ही, स्व-निहित जावा प्रोग्राम के माध्यम से यह सब करेंगे। हम **वर्कबुक को PDF के रूप में सहेजेंगे**, दिखाएंगे कि **Excel को HTML में एक्सपोर्ट** कैसे करें जबकि फ्रीज़्ड रो को बरकरार रखें, और वर्कशीट के अंदर **EXPAND फ़ंक्शन** का उपयोग करेंगे। अंत तक आपके पास एक रन करने योग्य प्रोजेक्ट होगा जिसे आप किसी भी Maven या Gradle बिल्ड में डाल सकते हैं। + +> **प्रो टिप:** नीचे दिया गया सभी कोड Aspose.Cells 23.10 (या नया) के साथ काम करता है। यदि आप पुराना संस्करण उपयोग कर रहे हैं, तो कुछ मेथड नाम थोड़े अलग हो सकते हैं। + +--- + +## प्री‑रिक्विज़िट्स + +- **Java 17** (या कोई भी LTS संस्करण) स्थापित और कॉन्फ़िगर किया हुआ। +- **Aspose.Cells for Java** लाइब्रेरी। अपने `pom.xml` में निम्न Maven डिपेंडेंसी जोड़ें: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- आपका पसंदीदा IDE या टेक्स्ट एडिटर (IntelliJ IDEA, VS Code, Eclipse…)। + +कोई बाहरी API नहीं, कोई वेब सर्विस नहीं—सिर्फ शुद्ध जावा और Aspose.Cells SDK। + +--- + +## समाधान का अवलोकन + +हम कार्यान्वयन को **सात तार्किक चरणों** में विभाजित करेंगे: + +1. वर्कबुक बनाएं और **EXPAND** फ़ंक्शन दिखाएँ। +2. फ़ॉन्ट वैरिएशन सिलेक्टर्स सक्षम करें और **वर्कबुक को PDF के रूप में सहेजें**। +3. वही वर्कबुक को HTML में एक्सपोर्ट करें जबकि फ्रीज़्ड रो को संरक्षित रखें। +4. एक `IF`‑पैरामीटर वाले Smart Marker का उपयोग करके कंडीशनल टेक्स्ट डालें। +5. हायरार्किकल डेटा के लिए मास्टर‑डिटेल Smart Marker लागू करें। +6. बेस‑64‑एन्कोडेड इमेजेज़ वाला Markdown फ़ाइल लोड करें। +7. GridJs विकल्पों को एलाइनमेंट और बॉर्डर के लिए कॉन्फ़िगर करें, फिर डेटा इन्सर्ट करें। + +प्रत्येक चरण को अपने स्वयं के मेथड में रखा गया है ताकि `main` मेथड साफ़ रहे और यह स्पष्ट हो **कि हम क्या कर रहे हैं** (why) न कि सिर्फ **क्या टाइप कर रहे हैं** (what)। + +--- + +## चरण 1 – वर्कबुक बनाएं और EXPAND फ़ंक्शन का उपयोग करें + +**EXPAND** फ़ंक्शन Office 365 में पेश किया गया एक नया डायनामिक‑एरे फ़ॉर्मूला है। यह बिना मैन्युअल कॉपी किए रेंज को बड़े क्षेत्र में फैलाता है। + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**यह क्यों महत्वपूर्ण है:** +- `EXPAND` स्वचालित रूप से परिणाम को खाली सेल्स से पैड करता है, जो बाद में **वर्कबुक को PDF के रूप में सहेजते** समय एक साफ़, आयताकार टेबल देता है। +- `calculateFormula()` को कॉल करने से फ़ॉर्मूला इंजन एक्सपोर्ट से पहले चल जाता है। + +--- + +## चरण 2 – फ़ॉन्ट वैरिएशन सिलेक्टर्स सक्षम करें और **वर्कबुक को PDF के रूप में सहेजें** + +यदि आपको उन्नत टाइपोग्राफी (जैसे इमोजी या CJK वैरिएशन सिलेक्टर्स) का समर्थन चाहिए, तो सेटिंग को **सहेजने से पहले** चालू करना आवश्यक है। + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**मुख्य बिंदु:** यहाँ मुख्य कीवर्ड **how to create pdf** का उत्तर दिया गया है—`workbook.save(..., SaveFormat.PDF)` को कॉल करके, सेटिंग्स कॉन्फ़िगर करने के बाद। + +--- + +## चरण 3 – **Excel को HTML में एक्सपोर्ट** करें जबकि फ्रीज़्ड रो को संरक्षित रखें + +अक्सर स्टेकहोल्डर जल्दी वेब प्रीव्यू चाहते हैं। Aspose.Cells HTML में एक्सपोर्ट कर सकता है, और `setPreserveFrozenRows(true)` के साथ हम Excel जैसा ही स्क्रॉलिंग अनुभव बनाए रखते हैं। + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**आपको क्यों परवाह है:** फ्रीज़्ड रो एक उपयोगिता सुविधा है; इनके बिना, पेज स्क्रॉल करने पर हेडर रो गायब हो जाते हैं। + +--- + +## चरण 4 – IF‑पैरामीटर वाला Smart Marker + +Smart Markers आपको टेम्पलेट में डेटा मर्ज करने की सुविधा देते हैं बिना लूप लिखे। `if`‑पैरामीटर सीधे मार्कर के अंदर कंडीशनल लॉजिक जोड़ता है। + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +आउटपुट PDF में **“VIP Customer: Acme Corp”** दिखेगा क्योंकि `IsVIP` `true` है। फ्लैग को `false` करने पर **“Regular Customer: Acme Corp”** मिलेगा—कोई अतिरिक्त कोड नहीं चाहिए। + +--- + +## चरण 5 – हायरार्किकल रेंज के साथ मास्टर‑डिटेल Smart Marker + +जब आपके पास पैरेंट‑चाइल्ड डेटा हो (जैसे ऑर्डर और लाइन आइटम), तो मास्टर‑डिटेल मार्कर मैन्युअल रो इन्सर्शन से बचाता है। + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**आपको क्या मिलता है:** इंजन प्रत्येक ऑर्डर के लिए मास्टर रो को एक्सपैंड करता है और डिटेल रो को स्वचालित रूप से नीचे नेस्ट करता है—इनवॉइस या खरीद रिपोर्ट के लिए आदर्श। + +--- + +## चरण 6 – एम्बेडेड Base‑64 इमेजेज़ वाला Markdown डॉक्यूमेंट लोड करें + +यदि आपका स्रोत डेटा Markdown में है (डॉक्यूमेंटेशन पाइपलाइन में आम), तो Aspose.Cells इसे सीधे वर्कबुक में रेंडर कर सकता है। + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**एज केस नोट:** यदि Base‑64 स्ट्रिंग खराब है, तो Aspose इमेज को स्किप कर देगा लेकिन बाकी डॉक्यूमेंट प्रोसेसिंग जारी रखेगा—कोई क्रैश नहीं। + +--- + +## चरण 7 – GridJs विकल्प कॉन्फ़िगर करें और डेटा इन्सर्ट करें + +GridJs एक हल्का JavaScript ग्रिड है जिसे Aspose HTML में रेंडर कर सकता है। नंबरों को एलाइन करना और बॉर्डर लगाना पठनीयता बढ़ाता है। + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**हमारी परवाह क्यों है:** सही एलाइनमेंट और बॉर्डर से जनरेटेड HTML एक पॉलिश्ड स्प्रेडशीट जैसा दिखता है—डैशबोर्ड के लिए उपयोगी। + +--- + +## सब कुछ एक साथ – `main` मेथड + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hindi/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/hindi/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..f2ab79790b --- /dev/null +++ b/cells/hindi/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: एक ही स्पष्ट गाइड में जावा वर्कबुक से CSV निर्यात करना सीखें, साथ ही + महत्वपूर्ण अंकों और निर्यात सीमा को सेट करें। +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: hi +og_description: जावा में CSV निर्यात करना, महत्वपूर्ण अंकों को सेट करना, और व्यावहारिक + कोड व टिप्स के साथ रेंज को CSV में निर्यात करना सीखें। +og_title: जावा के साथ CSV निर्यात कैसे करें – पूर्ण चरण‑दर‑चरण गाइड +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: जावा के साथ CSV निर्यात कैसे करें – महत्वपूर्ण अंकों को सेट करें और निर्यात + रेंज को CSV में निर्यात करें +url: /hi/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java के साथ CSV निर्यात कैसे करें – महत्वपूर्ण अंक सेट करें और रेंज को CSV में निर्यात करें + +क्या आपने कभी **CSV निर्यात** को Java वर्कबुक से बिना संख्यात्मक शुद्धता खोए करने के बारे में सोचा है? शायद आपने जल्दी‑से `toString()` इस्तेमाल किया और राउंडिंग त्रुटियों के झंझट में फँस गए। यह एक आम समस्या है, विशेषकर जब आपको वित्तीय डेटा या वैज्ञानिक परिणामों के लिए **महत्वपूर्ण अंक** सेट करने की आवश्यकता होती है। + +इस ट्यूटोरियल में आप एक पूर्ण, तैयार‑चलाने‑योग्य उदाहरण देखेंगे जो दिखाता है **CSV निर्यात** कैसे किया जाता है, **महत्वपूर्ण अंक** कैसे सेट किए जाते हैं, और यहाँ तक कि **रेंज को CSV में निर्यात** कैसे किया जाता है जबकि आपका डेटा व्यवस्थित रहता है। हम प्रत्येक पंक्ति को समझेंगे, API कॉल के *क्यों* को बताएँगे, और सामान्य pitfalls से बचने के टिप्स देंगे। कोई अतिरिक्त दस्तावेज़ नहीं—सिर्फ एक स्व‑समाहित समाधान जिसे आप आज ही कॉपी‑पेस्ट कर सकते हैं। + +## आप क्या सीखेंगे + +- `setNumberSignificantDigits` के साथ वर्कबुक बनाना और संख्यात्मक शुद्धता कॉन्फ़िगर करना। +- एक विशिष्ट सेल रेंज को सुंदर फ़ॉर्मेटेड CSV स्ट्रिंग के रूप में निर्यात करना। +- `DateTimeFormatInfo` का उपयोग करके जापानी युग तिथियों को पार्स करना। +- फ़ॉर्मूले को पुनः‑गणना करना ताकि डायनेमिक‑ऐरे परिणाम ताज़ा रहें। +- पिवट टेबल को PNG इमेज में रेंडर करना। +- Smart Marker का उपयोग करके टिप्पणी जोड़ना और अंत में वर्कबुक को सहेजना। + +इन सभी को Aspose.Cells for Java लाइब्रेरी, संस्करण 23.12 (लेखन के समय नवीनतम) के साथ किया गया है। यदि आपके क्लासपाथ में JAR मौजूद है, तो आप तैयार हैं। + +--- + +## चरण 1: वर्कबुक बनाएं और **महत्वपूर्ण अंक सेट करें** + +किसी भी निर्यात से पहले हमें एक वर्कबुक ऑब्जेक्ट चाहिए। कई डेवलपर्स अक्सर संख्यात्मक शुद्धता को नज़रअंदाज़ कर देते हैं। डिफ़ॉल्ट रूप से Aspose.Cells पूरी डबल प्रिसिशन उपयोग करता है, जिससे CSV में लंबी, अनावश्यक स्ट्रिंग्स बन सकती हैं। महत्वपूर्ण अंकों की संख्या सेट करने से आउटपुट छोटा रहता है जबकि सबसे महत्वपूर्ण अंक संरक्षित रहते हैं। + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**यह क्यों महत्वपूर्ण है?** +यदि आप `12345.6789` वाले सेल को बिना अंक सीमित किए निर्यात करते हैं, तो CSV पूरी वैल्यू दिखाएगा, जिससे रिपोर्ट गड़बड़ हो जाएगी। `setNumberSignificantDigits(5)` के साथ वही सेल `12346` बन जाता है, जो अक्सर बिज़नेस यूज़र्स की अपेक्षा होती है। + +> **प्रो टिप:** यदि आपको कॉलम‑वार अलग‑अलग शुद्धता चाहिए, तो आप ग्लोबल सेटिंग की बजाय कस्टम `Style` लागू कर सकते हैं। + +--- + +## चरण 2: **रेंज को CSV में निर्यात** – फ़ॉर्मेटिंग मायने रखती है + +अब वर्कबुक तैयार है, चलिए डेटा का एक आयताकार ब्लॉक निकालते हैं और उसे CSV स्ट्रिंग में बदलते हैं। हम दो‑दशमलव फ़ॉर्मेट (`0.00`) भी लागू करेंगे ताकि हर संख्या ठीक से संरेखित हो। + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +`exportDataTable` कॉल भारी काम संभालता है। क्योंकि हमने `exportAsString` सेट किया है, मेथड एक `String` लौटाता है जिसे हम प्रिंट, फ़ाइल में लिख, या HTTP पर भेज सकते हैं। **रेंज को CSV में निर्यात** चरण भी पहले सेट किए गए ग्लोबल `setNumberSignificantDigits` का सम्मान करता है, इसलिए संख्याएँ पाँच महत्वपूर्ण अंकों तक राउंड होती हैं *और* दो दशमलव स्थानों के साथ दिखती हैं। + +**अपेक्षित आउटपुट (संक्षिप्त):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **सामान्य प्रश्न:** *यदि मुझे अलग डिलिमिटर चाहिए, जैसे सेमीकोलन?* +> निर्यात से पहले बस `exportOptions.setSeparator(";")` कॉल करें। + +--- + +## चरण 3: जापानी युग तिथि को पार्स करें (बोनस यूटिलिटी) + +हालाँकि यह सीधे CSV से संबंधित नहीं है, कई Excel शीट्स में लोकल‑स्पेसिफिक तिथियाँ होती हैं। यहाँ दिखाया गया है कि आप `"R3/04/01"` जैसी जापानी युग स्ट्रिंग को मानक `DateTime` ऑब्जेक्ट में कैसे बदल सकते हैं। + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +आउटपुट: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**यह क्यों शामिल किया गया?** +यदि आपका CSV निर्यात डाउनस्ट्रीम सिस्टम को फ़ीड करता है जो ISO‑8601 तिथियों की अपेक्षा करता है, तो आपको पहले किसी भी लोकलाइज़्ड फ़ॉर्मेट को सामान्य करना पड़ेगा। यह स्निपेट *कैसे* और *क्यों* को एक ही जगह दिखाता है। + +--- + +## चरण 4: फ़ॉर्मूले पुनः‑गणना करें – डायनेमिक‑ऐरे परिणाम ताज़ा रखें + +यदि आपके वर्कबुक में फ़ॉर्मूले हैं (जैसे `=SUM(A1:A10)`), तो सेटिंग बदलने के बाद वे स्वचालित रूप से अपडेट नहीं होते। `calculateFormula` कॉल पूरी पुनः‑गणना को मजबूर करता है, जिससे निर्यात किया गया CSV नवीनतम मान दर्शाता है। + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **ध्यान रखें:** बड़े वर्कबुक को पुनः‑गणना में उल्लेखनीय समय लग सकता है। प्रदर्शन‑सेंसिटिव परिस्थितियों में, स्कोप सीमित करने के लिए `calculateFormula(FormulaCalculationOptions)` पर विचार करें। + +--- + +## चरण 5: पहले पिवट टेबल को PNG इमेज में रेंडर करें + +कभी‑कभी आपको CSV के साथ पिवट टेबल का एक विज़ुअल स्नैपशॉट भी चाहिए होता है। नीचे दिया गया कोड पहले वर्कशीट के पहले पिवट टेबल को PNG फ़ाइल में रेंडर करता है। + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**टिप:** यदि वर्कबुक में पहले से पिवट नहीं है, तो आप प्रोग्रामेटिकली एक बना सकते हैं—तेज़ उदाहरण के लिए Aspose.Cells दस्तावेज़ देखें। + +--- + +## चरण 6: Smart Marker का उपयोग करके टिप्पणी लिखें और वर्कबुक सहेजें + +Smart Marker आपको सरल प्लेसहोल्डर के माध्यम से सेल्स में डायनेमिक कंटेंट डालने देता है। यहाँ हम एक टिप्पणी जैसे “Reviewed by QA” को निर्दिष्ट सेल में लिखते हैं और फिर वर्कबुक को सहेजते हैं। + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}` प्लेसहोल्डर शीट में कहीं भी रखा जा सकता है (उदा., सेल `A1`)। जब `apply` चलता है, तो प्लेसहोल्डर को प्रदान किए गए मान से बदल दिया जाता है। + +**परिणाम:** आपको `output/commented.xlsx` फ़ाइल मिलेगी जिसमें टिप्पणी होगी, साथ ही पहले जेनरेट की गई `pivot.png` और कंसोल में प्रिंट किया गया CSV स्ट्रिंग भी। + +--- + +## पूर्ण कार्यशील उदाहरण + +सब कुछ एक साथ मिलाकर, यहाँ पूरा प्रोग्राम है जिसे आप कंपाइल और रन कर सकते हैं: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### अपेक्षित कंसोल आउटपुट + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +आपको डिस्क पर `output/pivot.png` (यदि पिवट मौजूद था) और `output/commented.xlsx` भी मिलेंगे। + +--- + +## अक्सर पूछे जाने वाले प्रश्न और किनारे के केस + +- **क्या मैं सीधे एक भौतिक CSV फ़ाइल में निर्यात कर सकता हूँ?** + हाँ। `exportAsString` ब्लॉक को `dataRange.exportDataTable("output/data.csv", exportOptions);` से बदल दें। + +- **यदि मेरी शीट में संख्याओं के लिए अलग लोकैल है तो क्या करें?** + निर्यात से पहले `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` सेट करें; यह स्विच करेगा + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hindi/java/excel-pivot-tables/_index.md b/cells/hindi/java/excel-pivot-tables/_index.md index 89ca371a05..0a204c1675 100644 --- a/cells/hindi/java/excel-pivot-tables/_index.md +++ b/cells/hindi/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Java के लिए Aspose.Cells का उपयोग करके पिव Aspose.Cells for Java में पिवट टेबल डेटा को रिफ्रेश करना सीखें। अपने डेटा को आसानी से अपडेट रखें। ### [पिवट तालिका शैलियों को अनुकूलित करना](./customizing-pivot-table-styles/) Aspose.Cells for Java API में पिवट टेबल शैलियों को अनुकूलित करना सीखें। आसानी से आकर्षक पिवट टेबल बनाएँ। +### [जावा में पिवट टेबल कॉपी करें – इसे संरक्षित रखें, PPTX में निर्यात करें](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Aspose.Cells for Java का उपयोग करके पिवट टेबल को कॉपी करें, उसकी फ़ॉर्मेटिंग बनाए रखें और सीधे PPTX फ़ाइल में निर्यात करें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/hindi/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..bffda63550 --- /dev/null +++ b/cells/hindi/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: जावा में पिवट टेबल को पिवट को बनाए रखते हुए कॉपी करें, फिर एक्सेल को + PPTX में निर्यात करें, एक्सेल ऑटोफ़िल्टर को निष्क्रिय करें, और JSON एरेज़ के लिए + स्मार्ट मार्कर का उपयोग करें – पूर्ण चरण‑दर‑चरण गाइड। +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: hi +og_description: जावा में पिवट टेबल कॉपी करें, पिवट परिभाषा को संरक्षित रखें, PPTX + में निर्यात करें, ऑटोफ़िल्टर को अक्षम करें, और स्मार्ट मार्कर का उपयोग करें – डेवलपर्स + के लिए पूर्ण मार्गदर्शिका। +og_title: जावा में पिवट टेबल कॉपी करें – इसे संरक्षित रखें, PPTX में निर्यात करें +tags: +- Aspose.Cells +- Java +- Excel Automation +title: जावा में पिवट टेबल कॉपी करें – इसे संरक्षित रखें, PPTX में निर्यात करें +url: /hi/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# जावा में पिवट टेबल कॉपी करें – इसे संरक्षित रखें, PPTX में निर्यात करें + +क्या आपको कभी **पिवट टेबल कॉपी** करने की ज़रूरत पड़ी है एक वर्कबुक से दूसरे में बिना मूल पिवट परिभाषा खोए? आप अकेले नहीं हैं जो इस पर सिर खुजा रहे हैं। कई वास्तविक‑दुनिया प्रोजेक्ट्स में आपको डेटा इधर‑उधर ले जाना पड़ेगा, और आखिरी चीज़ जो आप चाहते हैं वह है एक टूटा हुआ पिवट जो रन‑टाइम पर त्रुटियाँ फेंके। + +इस ट्यूटोरियल में हम एक पूर्ण समाधान के माध्यम से चलेंगे जो न केवल **पिवट टेबल कॉपी** करता है बल्कि आपको दिखाता है कि **पिवट टेबल को संरक्षित** कैसे रखें कॉपी करते समय, **Excel को PPTX में निर्यात** करें, **Excel AutoFilter को निष्क्रिय** करें, और **स्मार्ट मार्कर** का उपयोग करके एक JSON एरे को एक ही सेल में डालें। अंत तक आपके पास एक एकल, चलाने योग्य जावा प्रोग्राम होगा जो सभी चार परिदृश्यों को कवर करता है। + +## Prerequisites + +- Java 8 या नया (कोड Java 11 के साथ भी काम करता है) +- Aspose.Cells for Java लाइब्रेरी (संस्करण 23.9 या बाद का) – आप इसे Maven Central से प्राप्त कर सकते हैं +- Excel की अवधारणाओं जैसे पिवट टेबल, टेबल, और टेक्स्ट बॉक्स की बुनियादी परिचितता + +यदि आपके पास Aspose.Cells JAR नहीं है, तो इसे अपने `pom.xml` में जोड़ें: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +अब, चलिए शुरू करते हैं। + +## Step 1: Copy Pivot Table – Preserving the Pivot Definition + +जब आप केवल वह सेल रेंज कॉपी करते हैं जिसमें पिवट टेबल स्थित है, तो पिवट मेटाडेटा अक्सर पीछे रह जाता है। Aspose.Cells हमें `copyRange` को `CopyOptions` इंस्टेंस के साथ उपयोग करके परिभाषा को अपरिवर्तित रखने का एक साफ़ तरीका देता है। + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Why this works:** `CopyOptions` Aspose.Cells को सब कुछ ले जाने के लिए बताता है, जिसमें पिवट कैश और फ़ील्ड सेटिंग्स शामिल हैं। इसके बिना, आपको केवल साधारण मान मिलेंगे और पिवट को रीफ़्रेश करने की क्षमता खो देंगे। + +**Edge case:** यदि आपका स्रोत पिवट हार्ड‑कोडेड `A1:G20` से अधिक विस्तृत है, तो रेंज को उसी अनुसार समायोजित करें या इसे डायनामिक रूप से प्राप्त करने के लिए `sourceSheet.getPivotTables().get(0).getDataRange()` का उपयोग करें। + +![पिवट टेबल कॉपी उदाहरण](image.png "जावा में पिवट टेबल कॉपी") + +*छवि वैकल्पिक पाठ: जावा में पिवट टेबल कॉपी आरेख* + +## Step 2: Export a Worksheet with an Editable TextBox to PPTX + +अक्सर आपको एक Excel शीट को PowerPoint स्लाइड में बदलने की आवश्यकता होती है—जैसे साप्ताहिक डैशबोर्ड जिन्हें प्रस्तुत करना होता है। Aspose.Cells सीधे एक वर्कशीट को PPTX फ़ाइल के रूप में सहेज सकता है जबकि टेक्स्ट बॉक्स जैसे आकारों को संरक्षित रखता है। + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**What’s happening:** `save` मेथड के साथ `SaveFormat.PPTX` पूरी शीट को, जिसमें कोई भी Editable TextBox शामिल है, PowerPoint स्लाइड में बदल देता है। बॉक्स के अंदर का टेक्स्ट PPTX को PowerPoint में खोलने पर संपादन योग्य रहता है। + +**Tip:** यदि आपके पास कई शीट्स हैं और आप केवल एक विशिष्ट शीट चाहते हैं, तो सहेजने से पहले अन्य शीट्स के लिए `wb.getWorksheets().removeAt(index)` कॉल करें। + +## Step 3: Disable Excel AutoFilter from a Table + +AutoFilter उपयोगकर्ताओं के लिए सुविधाजनक है, लेकिन कभी‑कभी आपको इसे प्रोग्रामेटिक रूप से बंद करना पड़ता है—शायद डेटा निर्यात करने से पहले या एक साफ़ रिपोर्ट जनरेट करते समय। यहाँ बताया गया है कि **excel autofilter** को एक Excel टेबल पर कैसे **disable** किया जाए। + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Why you might need this:** उन फ़ॉर्मेट्स में निर्यात करना जो AutoFilter को सपोर्ट नहीं करते (जैसे CSV या PDF) फ़िल्टर आइकन को अनजाने में दिखा सकता है। इसे निष्क्रिय करने से आउटपुट साफ़ रहता है। + +**Common pitfall:** यदि शीट में कोई टेबल नहीं है, तो `getTables().get(0)` `IndexOutOfBoundsException` फेंकेगा। प्रोडक्शन कोड में हमेशा पहले `sheet.getTables().size()` जांचें। + +## Step 4: Use Smart Marker – Insert a JSON Array as a Single Cell Value + +Smart Marker Aspose का टेम्प्लेटिंग इंजन है। एक उपयोगी ट्रिक यह है कि पूरे JSON एरे को एक ही सेल वैल्यू के रूप में माना जाए, जो लॉगिंग या संरचित डेटा को डाउनस्ट्रीम पास करने के लिए परिपूर्ण है। चलिए इसे हासिल करने के लिए **smart marker** का उपयोग करते हैं। + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**How it works:** वर्कबुक में `${json}` मार्कर पूरे JSON स्ट्रिंग से बदल जाता है क्योंकि हमने `ArrayAsSingle` सेट किया है। इस विकल्प के बिना, Aspose प्रत्येक एरे एलिमेंट को अलग‑अलग पंक्तियों में विस्तारित करने की कोशिश करेगा। + +**Variation:** यदि आपको एरे को पंक्तियों में विभाजित करने की आवश्यकता है, तो बस `ArrayAsSingle` को हटाएँ और Smart Marker को स्वचालित रूप से विस्तार करने दें। + +## Full Working Example – All Steps Combined + +नीचे एक एकल जावा क्लास है जो हमने कवर किए गए सभी ऑपरेशन्स को जोड़ता है। इसे एक सामान्य `main` मेथड के रूप में चलाएँ; केवल फ़ाइल पाथ को अपने वातावरण के अनुसार समायोजित करें। + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hindi/java/getting-started/_index.md b/cells/hindi/java/getting-started/_index.md index 8ef3197e37..7b56bb553e 100644 --- a/cells/hindi/java/getting-started/_index.md +++ b/cells/hindi/java/getting-started/_index.md @@ -71,7 +71,8 @@ Aspose.Cells के साथ Java में SpreadsheetML फ़ाइलों ### [जावा में Aspose.Cells संस्करण कैसे प्राप्त करें: एक चरण-दर-चरण मार्गदर्शिका](./retrieve-aspose-cells-version-java-guide/) इस व्यापक गाइड के साथ अपने जावा प्रोजेक्ट में Aspose.Cells के संस्करण की जांच करना सीखें। संगतता सुनिश्चित करें और नई सुविधाओं का कुशलतापूर्वक लाभ उठाएँ। - +### [लाइसेंस प्राप्त वर्कबुक बनाएं – पूर्ण Aspose.Cells जावा गाइड](./create-licensed-workbook-full-aspose-cells-java-guide/) +Aspose.Cells लाइसेंस के साथ वर्कबुक बनाने, सेटअप करने और उपयोग करने की विस्तृत गाइड। ## अतिरिक्त संसाधन diff --git a/cells/hindi/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/hindi/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..69f86fab40 --- /dev/null +++ b/cells/hindi/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells Java के साथ जल्दी लाइसेंसयुक्त वर्कबुक बनाएं। एक ही ट्यूटोरियल + में सीखें कि Aspose को लाइसेंस कैसे दें, Aspose लाइसेंस Java में कैसे सेट करें और + Aspose के साथ Excel कैसे पढ़ें। +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: hi +og_description: Aspose.Cells Java का उपयोग करके लाइसेंस प्राप्त वर्कबुक बनाएं। यह + गाइड दिखाता है कि Aspose को लाइसेंस कैसे दें, Aspose लाइसेंस Java सेट करें और Aspose + के साथ Excel पढ़ें। +og_title: लाइसेंस प्राप्त वर्कबुक बनाएं – Aspose.Cells जावा ट्यूटोरियल +tags: +- Aspose.Cells +- Java +- Excel Automation +title: लाइसेंस प्राप्त वर्कबुक बनाएं – पूर्ण Aspose.Cells जावा गाइड +url: /hi/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# लाइसेंसयुक्त वर्कबुक बनाएं – Aspose.Cells Java का पूर्ण गाइड + +क्या आपने कभी सोचा है कि **लाइसेंसयुक्त वर्कबुक** कैसे बनाएं बिना लाइसेंसिंग त्रुटियों के? आप अकेले नहीं हैं—कई डेवलपर्स पहली बार Aspose.Cells को छूते समय इस समस्या का सामना करते हैं। अच्छी खबर? समाधान सरल है, और यह गाइड आपको चरण‑दर‑चरण ले जाएगा। + +कुछ ही मिनटों में आप जान जाएंगे **Aspose को लाइसेंस कैसे दें**, बिल्कुल **Aspose लाइसेंस Java सेट करें**, और आप **Aspose के साथ Excel पढ़ने** के लिए तैयार हो जाएंगे, जैसे रिपोर्टिंग या डेटा माइग्रेशन जैसे वास्तविक कार्यों के लिए। कोई अस्पष्ट संदर्भ नहीं, बस एक पूर्ण, चलाने योग्य उदाहरण जिसे आप आज ही कॉपी‑पेस्ट कर सकते हैं। + +--- + +## आपको क्या चाहिए + +- Java 17 या नया (सबसे नवीन स्थिर रिलीज़ सबसे अच्छा काम करता है) +- Aspose.Cells for Java 23.9 (या कोई भी हालिया संस्करण) +- आपका Aspose.Cells लाइसेंस फ़ाइल (`Aspose.Cells.Java.lic`) +- एक IDE या बिल्ड टूल जिससे आप सहज हों (Maven, Gradle, या साधारण `javac`) + +यदि इनमें से कोई भी अपरिचित लग रहा है, तो चिंता न करें—प्रत्येक आइटम नीचे दिए गए चरणों में कवर किया गया है। + +--- + +## चरण 1: Aspose.Cells निर्भरता जोड़ें + +**लाइसेंसयुक्त वर्कबुक** बनाने से पहले, लाइब्रेरी आपके क्लासपाथ पर होनी चाहिए। Maven के साथ यह इस प्रकार दिखता है: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Gradle के लिए: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **प्रो टिप:** यदि आप साधारण `javac` कंपाइल का उपयोग कर रहे हैं, तो JAR को `libs/` फ़ोल्डर में रखें और `-cp` फ़्लैग में जोड़ दें। + +--- + +## चरण 2: **Aspose को लाइसेंस कैसे दें** – लाइसेंस फ़ाइल लोड करें + +जब आप बिना लाइसेंस के कोई भी Aspose API कॉल करते हैं, तो उत्पन्न Excel फ़ाइल में वॉटरमार्क दिखाई देगा। इसे रोकने के लिए, आपको अपने प्रोग्राम में जल्दी **Aspose लाइसेंस Java सेट** करना होगा। + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **यह क्यों महत्वपूर्ण है:** `License` ऑब्जेक्ट Aspose को इवैल्यूएशन मोड को स्किप करने, वॉटरमार्क हटाने और पूरी API को अनलॉक करने के लिए बताता है। यदि पथ गलत है, तो अपवाद फेंका जाता है—इसलिए आपको तुरंत पता चल जाएगा। + +--- + +## चरण 3: **लाइसेंसयुक्त वर्कबुक बनाएं** – एक Excel फ़ाइल बनाएं + +अब जब लाइसेंस लागू हो गया है, आप सुरक्षित रूप से **लाइसेंसयुक्त वर्कबुक** ऑब्जेक्ट बना सकते हैं। नीचे एक न्यूनतम लेकिन पूर्ण उदाहरण है जो बाद में **Aspose के साथ Excel पढ़ना** भी दर्शाता है। + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**यह क्या करता है:** + +1. **चरण 2** की यूटिलिटी को कॉल करता है ताकि **Aspose लाइसेंस Java सेट** किया जा सके। +2. एक नया `Workbook` इंस्टैंसिएट करता है – यह **लाइसेंसयुक्त वर्कबुक बनाना** ऑपरेशन का मूल है। +3. एक छोटी तालिका लिखता है, इसे XLSX के रूप में सेव करता है, और तुरंत वापस पढ़ता है यह साबित करने के लिए कि **Aspose के साथ Excel पढ़ना** वॉटरमार्क के बिना काम करता है। + +प्रोग्राम चलाने पर यह प्रिंट करेगा: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +यदि आप उत्पन्न फ़ाइल खोलते हैं, तो आपको कोई Aspose वॉटरमार्क के बिना साफ़ स्प्रेडशीट दिखेगी—जो यह प्रमाणित करता है कि लाइसेंस सक्रिय है। + +--- + +## चरण 4: सामान्य समस्याएँ और किनारे के मामलों + +| समस्या | क्यों होता है | समाधान | +|-------|----------------|-----| +| **LicenseNotFoundException** | पथ गलत है या फ़ाइल मौजूद नहीं है। | एक पूर्ण पथ उपयोग करें या फ़ाइल को रिसोर्सेज़ से लोड करें (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR क्लासपाथ पर नहीं है। | Maven/Gradle निर्भरता की जाँच करें या JAR को मैन्युअल रूप से जोड़ें। | +| **Saving fails on Windows** | लक्ष्य फ़ोल्डर मौजूद नहीं है। | सुनिश्चित करें कि `output/` डायरेक्टरी बनाई गई है (`new File("output").mkdirs();`). | +| **Reading older .xls files** | डिफ़ॉल्ट `SaveFormat` पुरानी फ़ॉर्मेट को सपोर्ट नहीं कर सकता। | सेव करते समय `SaveFormat.XLS` उपयोग करें, या लोड पर Aspose को ऑटो‑डिटेक्ट करने दें। | + +> **ध्यान रखें:** यदि आप सर्वर पर डिप्लॉय कर रहे हैं, तो लाइसेंस फ़ाइल को वेब‑ऐप रूट के बाहर रखें ताकि अनजाने में एक्सपोज़र न हो। + +--- + +## चरण 5: प्रोग्रामेटिक रूप से लाइसेंस सत्यापित करें (वैकल्पिक) + +कभी‑कभी आप भारी ऑपरेशनों से पहले यह दोबारा जांचना चाहते हैं कि लाइसेंस सही ढंग से लोड हुआ है या नहीं। + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +आप `LicenseChecker.isLicensed("...")` को कॉल कर सकते हैं और यदि यह `false` लौटाता है तो प्रक्रिया रोक सकते हैं। यह अतिरिक्त सुरक्षा जाल जोड़ता है, विशेषकर CI/CD पाइपलाइन में। + +--- + +## दृश्य अवलोकन + +![लाइसेंस लागू करने से लेकर वर्कबुक बनाने और पढ़ने तक के प्रवाह को दर्शाता आरेख](create-licensed-workbook-diagram.png "लाइसेंसयुक्त वर्कबुक बनाना") + +*छवि वैकल्पिक पाठ:* **लाइसेंसयुक्त वर्कबुक आरेख** – Aspose लाइसेंस लागू करने, वर्कबुक बनाने, और Excel पढ़ने के चरणों को दर्शाता है। + +--- + +## निष्कर्ष + +अब आपके पास Aspose.Cells for Java का उपयोग करके **लाइसेंसयुक्त वर्कबुक बनाना** के लिए एक पूर्ण, अंत‑से‑अंत समाधान है। हमने **Aspose को लाइसेंस कैसे दें** को कवर किया, सटीक **Aspose लाइसेंस Java सेट** कोड दिखाया, और **Aspose के साथ Excel पढ़ना** का एक त्वरित उदाहरण दिया ताकि यह पुष्टि हो सके कि सब कुछ काम कर रहा है। + +आगे, आप निम्नलिखित का अन्वेषण कर सकते हैं: + +- सेल्स को स्टाइल करना (फ़ॉन्ट, रंग) – पेशेवर रिपोर्टों के लिए उत्कृष्ट। +- CSV या PDF में निर्यात – Aspose कई फ़ॉर्मेट्स को बॉक्स से बाहर सपोर्ट करता है। +- बड़े डेटा सेट के साथ काम करना – टेम्प्लेटिंग के लिए `WorkbookDesigner` का उपयोग करें। + +बिना झिझक प्रयोग करें, और यदि कोई समस्या आती है तो नीचे टिप्पणी छोड़ें। कोडिंग का आनंद लें! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hindi/java/ole-objects-embedded-content/_index.md b/cells/hindi/java/ole-objects-embedded-content/_index.md index 634083f06a..13724acf20 100644 --- a/cells/hindi/java/ole-objects-embedded-content/_index.md +++ b/cells/hindi/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Java के लिए Aspose.Cells का उपयोग करके Excel फ ### [Aspose.Cells Java के साथ Excel से ActiveX नियंत्रण हटाएँ](./remove-activex-controls-excel-aspose-cells-java/) Aspose.Words Java के लिए एक कोड ट्यूटोरियल - +### [फ़ॉन्ट एम्बेड करने का तरीका – HTML, XPS, और OLE निर्यात के लिए पूर्ण गाइड](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Aspose.Cells for Java का उपयोग करके HTML, XPS और OLE निर्यात में फ़ॉन्ट एम्बेड करने की पूरी प्रक्रिया सीखें। ## अतिरिक्त संसाधन diff --git a/cells/hindi/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/hindi/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..99c2243cee --- /dev/null +++ b/cells/hindi/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: HTML और अन्य फ़ॉर्मैट में फ़ॉन्ट एम्बेड करना सीखें। चरण‑दर‑चरण ट्यूटोरियल + जिसमें HTML में फ़ॉन्ट एम्बेड करना, एक्सेल को HTML में बदलना, OLE को एक्सपोर्ट करना, + और एक्सेल को XPS में बदलना शामिल है। +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: hi +og_description: HTML, XPS और OLE निर्यात में फ़ॉन्ट एम्बेड करने का तरीका। पूरी कार्यप्रणाली + सीखें, चलाने योग्य जावा कोड देखें, और Excel रूपांतरणों के लिए HTML में फ़ॉन्ट एम्बेड + करना महारत हासिल करें। +og_title: फ़ॉन्ट एम्बेड कैसे करें – पूर्ण जावा ट्यूटोरियल +tags: +- Aspose.Cells +- Java +- Document Export +title: फ़ॉन्ट एम्बेड करने का तरीका – HTML, XPS, और OLE निर्यात के लिए पूर्ण मार्गदर्शिका +url: /hi/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# फ़ॉन्ट एम्बेड करने का तरीका – HTML, XPS, और OLE एक्सपोर्ट के लिए पूर्ण गाइड + +क्या आपने कभी सोचा है **how to embed fonts** जब आप Excel वर्कबुक को वेब पेज या प्रिंटेबल दस्तावेज़ में बदलते हैं? आप अकेले नहीं हैं। कई डेवलपर्स को यह समस्या आती है कि आउटपुट उनके मशीन पर ठीक दिखता है लेकिन दूसरे पर फॉन्ट की कमी के कारण टूट जाता है। + +इस ट्यूटोरियल में हम Aspose.Cells for Java का उपयोग करके एक वास्तविक परिदृश्य को देखेंगे: हम HTML में फ़ॉन्ट एम्बेड करेंगे, XPS में बदलते समय इमोजी वैरिएशन सेलेक्टर्स को संरक्षित रखेंगे, और PPTX में एक्सपोर्ट करते समय OLE ऑब्जेक्ट को संपादन योग्य बनाए रखेंगे। अंत तक आपके पास एक ठोस, कॉपी‑एंड‑पेस्ट समाधान होगा जो “how to embed fonts” का उत्तर देता है और साथ ही **embed fonts in html**, **convert excel to html**, **how to export ole**, और **convert excel to xps** को भी कवर करता है। + +## Prerequisites + +- Java 17 (या कोई भी नवीनतम JDK) +- Aspose.Cells for Java 25.x या बाद का संस्करण +- एक विकास IDE (IntelliJ IDEA, Eclipse, या VS Code) +- Excel डेटा संरचनाओं की बुनियादी परिचितता + +कोई बाहरी सेवाएँ आवश्यक नहीं हैं—सब कुछ स्थानीय रूप से चलता है। + +## Overview of the Solution + +1. **Create a workbook** और `WRAPCOLS` फ़ंक्शन का उपयोग करके एक वर्टिकल रेंज को तीन‑कॉलम लेआउट में बदलें। +2. **Save the workbook as XPS** फ़ॉन्ट वैरिएशन सेलेक्टर्स को चालू रखते हुए ताकि इमोजी समान रहें। +3. **Export to HTML** एम्बेडेड फ़ॉन्ट्स के साथ, यह सुनिश्चित करते हुए कि पेज हर जगह समान दिखे। +4. **Export a workbook containing an OLE object to PPTX**, संपादन क्षमता को संरक्षित रखते हुए। +5. **Apply a Smart Marker template** जो master‑detail डेटा बाइंडिंग दिखाता है। + +प्रत्येक चरण अपने स्वयं के H2 सेक्शन में अलग किया गया है, जिससे गाइड को सर्च इंजन और AI असिस्टेंट दोनों के लिए आसानी से स्किम किया जा सकता है। + +![फ़ॉन्ट एम्बेड करने का चित्रण](image.png "फ़ॉन्ट एम्बेड करने का तरीका") + +*Image alt text: फ़ॉन्ट एम्बेड करने का डायग्राम जो Excel से HTML, XPS, और PPTX तक का वर्कफ़्लो दिखाता है.* + +--- + +## चरण 1 – वर्कबुक बनाएं और WRAPCOLS का उपयोग करें (embed fonts in html के लिए यह क्यों महत्वपूर्ण है) + +फ़ॉन्ट एम्बेड करने के बारे में बात करने से पहले, हमें एक ऐसा वर्कबुक चाहिए जिसमें वास्तव में डेटा हो। `WRAPCOLS` फ़ंक्शन एक ही कॉलम को कई कॉलम में विभाजित करने का सुविधाजनक तरीका है, जो अक्सर अंतिम HTML को अधिक पठनीय बनाता है। + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**इस चरण का कारण?** +`WRAPCOLS` कॉल एक मल्टी‑कॉलम रेंज बनाता है जो बाद में HTML में टेबल के रूप में दिखता है। जब हम बाद में **embed fonts in html** करेंगे, टेबल की स्टाइलिंग एम्बेड किए गए फ़ॉन्ट्स पर निर्भर होगी, जिससे ब्राउज़र में लगातार रेंडरिंग सुनिश्चित होगी। + +--- + +## चरण 2 – वर्कबुक को XPS के रूप में सहेजें और इमोजी को संरक्षित रखें (convert excel to xps) + +यदि आपको प्रिंट‑रेडी फॉर्मेट चाहिए, तो XPS एक ठोस विकल्प है। हालांकि, आधुनिक दस्तावेज़ अक्सर इमोजी या प्रतीक शामिल करते हैं जो वैरिएशन सेलेक्टर्स का उपयोग करते हैं। `EnableFontVariationSelectors` को चालू करने से सुनिश्चित होता है कि ये अक्षर रूपांतरण के बाद भी बरकरार रहें। + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**आपको क्या मिलेगा:** +एक XPS फ़ाइल जो स्रोत वर्कबुक में मौजूद किसी भी एम्बेडेड इमोजी को बिल्कुल वैसा ही दिखाती है। यह **convert excel to xps** आवश्यकता को पूरा करता है और दर्शाता है कि फ़ॉन्ट हैंडलिंग केवल HTML तक सीमित नहीं है। + +--- + +## चरण 3 – एम्बेडेड फ़ॉन्ट्स के साथ HTML में एक्सपोर्ट करें (how to embed fonts & embed fonts in html) + +अब हम ट्यूटोरियल के मुख्य भाग पर पहुँचते हैं: Excel को HTML में बदलते समय **how to embed fonts**। Aspose.Cells हमें फ़ॉन्ट्स को सीधे उत्पन्न HTML फ़ाइल में एम्बेड करने देता है, जिससे बाहरी फ़ॉन्ट फ़ाइलों की आवश्यकता समाप्त हो जाती है। + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**यह कैसे काम करता है:** +`setEmbedFonts(true)` रेंडरर को बताता है कि वर्कबुक में उपयोग किए गए फ़ॉन्ट फ़ाइलों को पढ़े और उन्हें Base64‑encoded `@font-face` नियमों के रूप में ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +ध्यान दें `@font-face` नियम—यह **embed fonts in html** का ठोस उत्तर है। + +--- + +## चरण 4 – OLE ऑब्जेक्ट वाले वर्कबुक को PPTX में एक्सपोर्ट करें (how to export ole) + +कई व्यावसायिक रिपोर्ट्स Word दस्तावेज़, PDFs, या अन्य Excel शीट्स को OLE ऑब्जेक्ट के रूप में एम्बेड करती हैं। जब आप ऐसे वर्कबुक को PowerPoint में एक्सपोर्ट करते हैं, तो अक्सर आप उस ऑब्जेक्ट को संपादित करने की क्षमता खो देते हैं। Aspose.Cells बॉक्स से बाहर ही संपादन क्षमता को संरक्षित रखता है। + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**यह क्यों महत्वपूर्ण है:** +यदि आप **how to export ole** खोज रहे हैं, तो यह स्निपेट सटीक API कॉल दिखाता है। परिणामी PowerPoint स्लाइड में OLE ऑब्जेक्ट एक लाइव, डबल‑क्लिक‑टू‑एडिट कंपोनेंट के रूप में होता है—कोई अतिरिक्त पोस्ट‑प्रोसेसिंग आवश्यक नहीं। + +--- + +## चरण 5 – Smart Marker टेम्पलेट लागू करें (master‑detail) और डेमो समाप्त करें + +Smart Markers आपको डेटा स्रोत (Map, JSON, DataTable) को सीधे Excel टेम्पलेट से बाइंड करने देते हैं। यहाँ एक न्यूनतम उदाहरण है जो master‑detail पंक्तियों को प्रिंट करता है। + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**आप क्या देखते हैं:** +एक नया वर्कबुक (`smartMarkerResult.xlsx`) जहाँ टेम्पलेट प्लेसहोल्डर डेटा से बदल दिए गए हैं। यह चरण सीधे फ़ॉन्ट्स के बारे में नहीं है, लेकिन यह ट्यूटोरियल को पूर्ण करता है एक सामान्य रिपोर्टिंग वर्कफ़्लो दिखाकर जो अक्सर **embed fonts in html** एक्सपोर्ट से पहले होता है। + +--- + +## सामान्य समस्याएँ और प्रो टिप्स (सफल फ़ॉन्ट एम्बेडिंग सुनिश्चित करना) + +| समस्या | क्यों होता है | समाधान | +|--------|--------------|--------| +| HTML फ़ाइल में फ़ॉन्ट्स गायब हैं | वर्कबुक एक सिस्टम फ़ॉन्ट उपयोग करता है जो सर्वर पर स्थापित नहीं है। | डेटा लोड करने से पहले `Workbook.getSettings().setDefaultFont("Arial")` का उपयोग करें, या आवश्यक फ़ॉन्ट फ़ाइलों को मैन्युअली एम्बेड करें। | +| आउटपुट HTML बहुत बड़ा है | कई बड़े फ़ॉन्ट्स को एम्बेड करने से फ़ाइल आकार बढ़ जाता है। | केवल उन फ़ॉन्ट्स को एम्बेड करें जिनका आप वास्तव में उपयोग करते हैं: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`। | +| XPS रूपांतरण के बाद इमोजी गायब हो जाते हैं | वैरिएशन सेलेक्टर्स डिफ़ॉल्ट रूप से हटाए जाते हैं। | जैसा कि चरण 2 में दिखाया गया है, `settings.setEnableFontVariationSelectors(true)` को सक्षम करें। | +| OLE ऑब्जेक्ट PPTX में स्थैतिक छवि बन जाता है | स्रोत वर्कबुक `setSuppressOLEObjects(true)` के साथ सहेजा गया था। | सुनिश्चित करें कि आप PPTX में सहेजते समय OLE ऑब्जेक्ट्स को **सप्रेस नहीं** करते। | + +--- + +## परिणामों की पुष्टि + +1. Chrome/Firefox में `embeddedFonts.html` खोलें। टेबल को एम्बेडेड फ़ॉन्ट (जैसे Arial) का उपयोग करके दिखना चाहिए, भले ही वह फ़ॉन्ट मशीन पर स्थापित न हो। +2. `withVariations.xps` को Windows XPS Viewer में खोलें। 👍 जैसे इमोजी सही ढंग से रेंडर होने चाहिए। +3. `oleEditable.pptx` को PowerPoint में खोलें। OLE आकार पर डबल‑क्लिक करें; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hongkong/java/excel-import-export/_index.md b/cells/hongkong/java/excel-import-export/_index.md index 19a7ef4342..78d75c167b 100644 --- a/cells/hongkong/java/excel-import-export/_index.md +++ b/cells/hongkong/java/excel-import-export/_index.md @@ -47,6 +47,10 @@ 透過本全面的逐步指南了解如何使用 Aspose.Cells for Java 實作 Excel 匯入資料驗證。確保數據準確性並提升用戶體驗。 ### [將 Excel 匯出為 HTML Java](./export-excel-to-html-java/) 了解如何使用 Aspose.Cells for Java 將 Excel 匯出為 Java 中的 HTML。按照帶有原始程式碼的逐步指南,您可以毫不費力地將 Excel 文件無縫轉換為 HTML。 +### [如何使用 Java 匯出 CSV – 設定有效位數與匯出範圍至 CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +了解如何使用 Aspose.Cells for Java 設定有效位數並選取匯出範圍,將資料匯出為 CSV 檔案。 +### [如何從工作簿建立 PDF – 完整 Java 指南](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +了解如何使用 Aspose.Cells for Java 將工作簿匯出為 PDF,提供完整的程式碼範例與逐步說明。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/hongkong/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..732b6cb562 --- /dev/null +++ b/cells/hongkong/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: 如何使用 Aspose.Cells for Java 建立 PDF 並將工作簿另存為 PDF、將 Excel 匯出為 HTML,以及使用 + Expand 功能。附有逐步程式碼示例。 +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: zh-hant +og_description: 如何使用 Aspose.Cells for Java 從工作簿建立 PDF。學習將工作簿另存為 PDF、將 Excel 匯出為 HTML,以及使用 + EXPAND 函數。 +og_title: 如何從工作簿產生 PDF – Java 教學 +tags: +- Aspose.Cells +- Java +- PDF generation +title: 如何從工作簿建立 PDF – 完整 Java 指南 +url: /zh-hant/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何從活頁簿建立 PDF – 完整 Java 指南 + +是否曾經想過 **如何直接從 Excel 活頁簿建立 PDF**,而不必使用第三方轉換工具?你並不孤單。許多開發人員在需要快速 PDF 匯出、HTML 預覽或炫酷的陣列公式時,常常卡住——一次就想搞定。 + +在本教學中,我們將逐步說明一個完整且獨立的 Java 程式,正好能達成上述需求。我們會 **將活頁簿儲存為 PDF**,示範如何 **將 Excel 匯出為 HTML** 並保留凍結列,並展示在工作表中 **使用 EXPAND 函數**。完成後,你將擁有一個可直接放入任何 Maven 或 Gradle 專案的可執行範例。 + +> **小技巧:** 以下所有程式碼皆適用於 Aspose.Cells 23.10(或更新版本)。若你使用較舊的版本,部分方法名稱可能會略有不同。 + +--- + +## 前置條件 + +- **Java 17**(或任何 LTS 版本)已安裝並設定。 +- **Aspose.Cells for Java** 函式庫。將以下 Maven 依賴加入你的 `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- 你喜歡的 IDE 或文字編輯器(IntelliJ IDEA、VS Code、Eclipse…)。 + +不需外部 API、也不需 Web 服務——僅使用純 Java 以及 Aspose.Cells SDK。 + +--- + +## 解決方案概觀 + +我們將把實作分為 **七個邏輯步驟**: + +1. 建立活頁簿並示範 **EXPAND** 函數。 +2. 啟用字型變體選擇器,並 **將活頁簿儲存為 PDF**。 +3. 將同一活頁簿匯出為 HTML,同時保留凍結列。 +4. 使用帶有 `IF` 參數的 Smart Marker 以注入條件文字。 +5. 套用主‑從 Smart Marker 以處理階層資料。 +6. 載入包含 Base‑64 編碼圖片的 Markdown 檔案。 +7. 設定 GridJs 選項以調整對齊與邊框,然後插入資料。 + +每個步驟皆封裝於獨立的方法中,以保持 `main` 方法簡潔,並說明 **為何** 要這樣做,而不只是 **做了什麼**。 + +--- + +## 步驟 1 – 建立活頁簿並使用 EXPAND 函數 + +**EXPAND** 函數是 Office 365 中推出的全新動態陣列公式。它允許你將範圍自動展開至更大的區域,而無需手動複製儲存格。 + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**為何重要:** +- `EXPAND` 會自動在結果中填入空白,這對於之後 **將活頁簿儲存為 PDF** 極為理想——PDF 會呈現整齊的矩形表格。 +- 呼叫 `calculateFormula()` 可確保公式引擎在匯出前已執行。 + +--- + +## 步驟 2 – 啟用字型變體選擇器並 **將活頁簿儲存為 PDF** + +若需支援進階排版(例如 emoji 或中日韓變體選擇器),必須在儲存之前 **開啟** 此功能。 + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**重點:** 這裡解答了主要關鍵字 **how to create pdf**——在設定完畢後呼叫 `workbook.save(..., SaveFormat.PDF)` 即可。 + +--- + +## 步驟 3 – **將 Excel 匯出為 HTML** 同時保留凍結列 + +常常有利害關係人需要快速的網頁預覽。Aspose.Cells 能匯出為 HTML,且透過 `setPreserveFrozenRows(true)` 可保留與 Excel 相同的捲動體驗。 + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**為何在乎:** 凍結列是一項使用便利性;若未保留,使用者在捲動頁面時,標題列會消失。 + +--- + +## 步驟 4 – 帶 IF 參數的 Smart Marker + +Smart Marker 讓你在不撰寫迴圈的情況下將資料合併至模板。`if` 參數直接在標記內加入條件邏輯。 + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +輸出的 PDF 會顯示 **「VIP Customer: Acme Corp」**,因為 `IsVIP` 為 `true`。將旗標改為 `false` 後,則會得到 **「Regular Customer: Acme Corp」**——不需要額外程式碼。 + +--- + +## 步驟 5 – 使用階層範圍的主‑從 Smart Marker + +當你有父子資料(例如訂單與明細項目)時,主‑從標記可免除手動插入列的工作。 + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**你能得到的好處:** 引擎會為每筆訂單展開主列,並自動在其下方嵌入明細列——非常適合發票或採購報表。 + +--- + +## 步驟 6 – 載入含嵌入式 Base‑64 圖片的 Markdown 文件 + +如果你的來源資料以 Markdown 形式存在(在文件流程中很常見),Aspose.Cells 能直接將其渲染至活頁簿。 + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**邊緣情況說明:** 若 Base‑64 字串格式錯誤,Aspose 會跳過該圖片,繼續處理文件的其他部分——不會當機。 + +--- + +## 步驟 7 – 設定 GridJs 選項並插入資料 + +GridJs 是一個輕量級的 JavaScript 表格,Aspose 可將其渲染為 HTML。對齊數字並套用邊框可提升可讀性。 + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**為何在乎:** 正確的對齊與邊框讓產生的 HTML 看起來像精緻的試算表——對於儀表板非常有用。 + +--- + +## 完整整合 – `main` 方法 + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hongkong/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/hongkong/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..3f07010896 --- /dev/null +++ b/cells/hongkong/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-03-01 +description: 學習如何從 Java 工作簿匯出 CSV,同時設定有效位數與匯出範圍,一站式清晰指南。 +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: zh-hant +og_description: 精通在 Java 中匯出 CSV、設定有效位數,以及匯出範圍至 CSV,並提供實用程式碼與技巧。 +og_title: 如何使用 Java 匯出 CSV – 完整逐步指南 +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: 如何使用 Java 匯出 CSV – 設定有效位數與匯出範圍至 CSV +url: /zh-hant/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何使用 Java 匯出 CSV – 設定有效位數與匯出範圍至 CSV + +有沒有想過 **如何匯出 csv** 從 Java 工作簿而不失去數值精度?也許你曾嘗試過直接使用 `toString()`,結果卻出現一堆四捨五入錯誤。這是常見的問題,尤其在需要為財務資料或科學結果 **設定有效位數** 時。 + +在本教學中,你將看到一個完整、可直接執行的範例,示範 **如何匯出 csv**、如何 **設定有效位數**,甚至如何 **匯出範圍至 csv**,同時保持資料整潔。我們會逐行說明,解釋 API 呼叫背後的 *原因*,並提供避免常見陷阱的技巧。無需額外文件——只要一個自包含的解決方案,今天就能複製貼上使用。 + +## 您將學習到 + +- 建立工作簿並使用 `setNumberSignificantDigits` 設定數值精度。 +- 將特定儲存格範圍匯出為格式良好的 CSV 字串。 +- 使用 `DateTimeFormatInfo` 解析日本年號日期。 +- 重新計算公式,使動態陣列結果保持最新。 +- 將樞紐分析表渲染為 PNG 圖片。 +- 使用 Smart Marker 注入註解,最後儲存工作簿。 + +以上全部皆使用 Aspose.Cells for Java 函式庫,版本 23.12(撰寫時的最新版本)。只要將 JAR 加入 classpath,即可開始使用。 + +--- + +## Step 1: Create a Workbook and **Set Significant Digits** + +在能匯出任何內容之前,我們需要先建立一個 workbook 物件。許多開發者常忽略的第一件事就是數值精度。預設情況下 Aspose.Cells 會使用完整的 double 精度,這會導致 CSV 中出現過長且難以處理的字串。設定有效位數可以在保留最重要數字的同時,縮短輸出長度。 + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Why does this matter?** +如果直接匯出包含 `12345.6789` 的儲存格而不限制位數,CSV 會顯示完整值,讓報表變得雜亂。使用 `setNumberSignificantDigits(5)` 後,同一個儲存格會變成 `12346`,這正是商業使用者常見的期望。 + +> **Pro tip:** 若需要依欄位設定不同精度,可改用自訂的 `Style`,而非全域設定。 + +--- + +## Step 2: **Export Range to CSV** – Formatting Matters + +現在 workbook 已就緒,讓我們擷取一個矩形資料區塊並轉換成 CSV 字串。同時強制使用兩位小數格式 (`0.00`),讓每個數字都能整齊對齊。 + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +`exportDataTable` 這個呼叫負責主要的匯出工作。因為我們設定了 `exportAsString`,此方法會回傳 `String`,可直接印出、寫入檔案,或透過 HTTP 傳送。**export range to csv** 步驟同時會遵循先前設定的全域 `setNumberSignificantDigits`,因此數字會先四捨五入至五個有效位數,然後再以兩位小數顯示。 + +**Expected output (truncated):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Common question:** *What if I need a different delimiter, like a semicolon?* +> 只要在匯出前呼叫 `exportOptions.setSeparator(";")` 即可。 + +--- + +## Step 3: Parse a Japanese Era Date (Bonus Utility) + +雖然與 CSV 無直接關係,但許多 Excel 工作表會包含特定語系的日期。以下示範如何將日本年號字串(例如 `"R3/04/01"`)轉換為標準的 `DateTime` 物件。 + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Why include this?** +如果你的 CSV 匯出會供下游系統使用,而該系統期望 ISO‑8601 格式的日期,就必須先將本地化的日期正規化。這段程式碼同時展示了 *如何* 與 *為何* 需要這樣做。 + +--- + +## Step 4: Recalculate Formulas – Keep Dynamic‑Array Results Fresh + +若工作簿內含公式(例如 `=SUM(A1:A10)`),在變更設定後不會自動更新。呼叫 `calculateFormula` 可強制完整重新計算,確保匯出的 CSV 反映最新的數值。 + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Watch out:** 大型工作簿的重新計算可能需要顯著時間。對於效能敏感的情境,可考慮使用 `calculateFormula(FormulaCalculationOptions)` 以限制計算範圍。 + +--- + +## Step 5: Render the First Pivot Table to a PNG Image + +有時你需要在 CSV 之外,同時提供樞紐分析表的視覺快照。以下程式碼會將第一個工作表上的第一個樞紐分析表渲染為 PNG 檔案。 + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** 若工作簿尚未包含樞紐分析表,可程式化建立——請參考 Aspose.Cells 文件中的快速範例。 + +--- + +## Step 6: Use Smart Marker to Write a Comment and Save the Workbook + +Smart Marker 允許你使用簡單的佔位符將動態內容寫入儲存格。此處示範在指定儲存格寫入「Reviewed by QA」的註解,然後儲存工作簿。 + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}` 佔位符可以放在工作表的任何位置(例如儲存格 `A1`)。當 `apply` 執行時,佔位符會被提供的值取代。 + +**Result:** 你會在 `output/commented.xlsx` 中看到已加入註解的檔案,另外還會有先前產生的 `pivot.png` 以及印在主控台的 CSV 字串。 + +--- + +## Full Working Example + +把所有步驟整合起來,以下是完整的程式碼範例,你可以直接編譯並執行: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Expected Console Output + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +執行後,你也會在磁碟上看到 `output/pivot.png`(若存在樞紐分析表)以及 `output/commented.xlsx`。 + +--- + +## Frequently Asked Questions & Edge Cases + +- **Can I export to a physical CSV file directly?** + 可以。只要將 `exportAsString` 區塊改為 `dataRange.exportDataTable("output/data.csv", exportOptions);` 即可。 + +- **What if my sheet uses a different locale for numbers?** + 在匯出前呼叫 `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))`;這會切換 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hongkong/java/getting-started/_index.md b/cells/hongkong/java/getting-started/_index.md index f61154f182..914ecfe61b 100644 --- a/cells/hongkong/java/getting-started/_index.md +++ b/cells/hongkong/java/getting-started/_index.md @@ -71,7 +71,8 @@ Aspose.Words Java 程式碼教程 ### [如何在 Java 中檢索 Aspose.Cells 版本:逐步指南](./retrieve-aspose-cells-version-java-guide/) 透過本綜合指南了解如何檢查 Java 專案中 Aspose.Cells 的版本。確保相容性並有效利用新功能。 - +### [建立授權工作簿 – 完整 Aspose.Cells Java 指南](./create-licensed-workbook-full-aspose-cells-java-guide/) +了解如何在 Java 中使用 Aspose.Cells 建立具授權的工作簿,涵蓋設定授權、建立工作簿及保存流程的完整指南。 ## 其他資源 diff --git a/cells/hongkong/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/hongkong/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..54344cc0dd --- /dev/null +++ b/cells/hongkong/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: 使用 Aspose.Cells Java 快速建立已授權的工作簿。了解如何為 Aspose 授權、在 Java 中設定 Aspose 授權,以及使用 + Aspose 讀取 Excel,全部於一個教學中。 +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: zh-hant +og_description: 使用 Aspose.Cells Java 建立授權工作簿。本指南說明如何為 Aspose 取得授權、設定 Aspose Java 授權,以及使用 + Aspose 讀取 Excel。 +og_title: 建立授權工作簿 – Aspose.Cells Java 教程 +tags: +- Aspose.Cells +- Java +- Excel Automation +title: 建立授權工作簿 – 完整 Aspose.Cells Java 指南 +url: /zh-hant/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立已授權的活頁簿 – 完整 Aspose.Cells Java 指南 + +你有沒有想過如何 **create licensed workbook** 而不會碰到授權錯誤?你並不是唯一遇到這個問題的人——許多開發人員在第一次接觸 Aspose.Cells 時都會卡在這裡。好消息是?解決方法相當簡單,本文將一步一步帶你完成。 + +只需幾分鐘,你就會了解 **how to license Aspose**、正確 **set Aspose license Java**,並且能夠 **read Excel with Aspose** 以應付報表或資料遷移等實務需求。沒有模糊的說明,只有完整、可直接執行的範例,今天就能複製貼上使用。 + +--- + +## 你需要的環境 + +- Java 17 或更新版本(最新穩定版效果最佳) +- Aspose.Cells for Java 23.9(或任何較新版本) +- 你的 Aspose.Cells 授權檔 (`Aspose.Cells.Java.lic`) +- 你熟悉的 IDE 或建置工具(Maven、Gradle,或純 `javac`) + +如果上述項目聽起來陌生,也別擔心——以下步驟會逐一說明。 + +--- + +## 步驟 1:加入 Aspose.Cells 相依性 + +在能 **create licensed workbook** 之前,必須先將函式庫加入 classpath。使用 Maven 時可寫成如下: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +For Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **小技巧:** 若使用純 `javac` 編譯,只需將 JAR 放入 `libs/` 資料夾,並在 `-cp` 參數中加入即可。 + +--- + +## 步驟 2:**How to License Aspose** – 載入授權檔案 + +當你在未載入授權的情況下呼叫任何 Aspose API 時,產生的 Excel 檔案會出現浮水印。為避免此情況,必須在程式開始時 **set Aspose license Java**。 + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **為何重要:** `License` 物件會告訴 Aspose 跳過評估模式,移除浮水印並解鎖完整 API。若路徑錯誤,會拋出例外,讓你立即得知。 + +--- + +## 步驟 3:**Create Licensed Workbook** – 建立 Excel 檔案 + +現在授權已套用,你可以安全地建立 **create licensed workbook** 物件。以下是一個簡潔但完整的範例,同時示範稍後的 **read Excel with Aspose**。 + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**此程式的功能:** + +1. 呼叫 **步驟 2** 的工具函式以 **set Aspose license Java**。 +2. 建立全新的 `Workbook` —— **create licensed workbook** 操作的核心。 +3. 寫入一個小表格,儲存為 XLSX,然後立即讀回,以證明 **read Excel with Aspose** 在無浮水印的情況下正常運作。 + +執行程式會輸出: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +若開啟產生的檔案,你會看到沒有 Aspose 浮水印的乾淨試算表——證明授權已生效。 + +--- + +## 步驟 4:常見陷阱與邊緣情況 + +| 問題 | 為何會發生 | 解決方式 | +|-------|----------------|-----| +| **LicenseNotFoundException** | 路徑錯誤或檔案遺失。 | 使用絕對路徑或從資源載入檔案 (`getClass().getResourceAsStream`)。 | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR 未在 classpath 中。 | 檢查 Maven/Gradle 相依性或手動加入 JAR。 | +| **Saving fails on Windows** | 目標資料夾不存在。 | 確認已建立 `output/` 目錄 (`new File("output").mkdirs();`)。 | +| **Reading older .xls files** | 預設 `SaveFormat` 可能不支援舊格式。 | 儲存時使用 `SaveFormat.XLS`,或讓 Aspose 在載入時自動偵測。 | + +> **注意:** 若部署至伺服器,授權檔應放在 web‑app 根目錄之外,以免意外外洩。 + +--- + +## 步驟 5:以程式方式驗證授權(可選) + +有時你想在執行大型操作前再次確認授權已正確載入。 + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +你可以呼叫 `LicenseChecker.isLicensed("...")`,若回傳 `false` 則中止。這為 CI/CD 流程提供額外的安全保護。 + +--- + +## 視覺概覽 + +![說明從套用授權到建立及讀取活頁簿流程的圖示](create-licensed-workbook-diagram.png "建立已授權的活頁簿") + +*圖片替代文字:* **已授權活頁簿圖示** – 說明套用 Aspose 授權、建立活頁簿以及讀取 Excel 的步驟。 + +--- + +## 結論 + +現在你已擁有使用 Aspose.Cells for Java 完整的 **create licensed workbook** 解決方案。我們說明了 **how to license Aspose**,示範了確切的 **set Aspose license Java** 程式碼,並快速展示了 **read Excel with Aspose**,以確認一切正常運作。 + +接下來,你可能想探索: + +- 版面樣式(字型、顏色)——適合專業報表。 +- 匯出為 CSV 或 PDF —— Aspose 內建支援多種格式。 +- 處理大型資料集 —— 使用 `WorkbookDesigner` 進行範本化。 + +盡情試玩吧,若遇到任何問題,歡迎在下方留言。祝開發愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hongkong/java/ole-objects-embedded-content/_index.md b/cells/hongkong/java/ole-objects-embedded-content/_index.md index 2df1f5f0aa..c66b4df2d7 100644 --- a/cells/hongkong/java/ole-objects-embedded-content/_index.md +++ b/cells/hongkong/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ ### [使用 Aspose.Cells Java 從 Excel 中刪除 ActiveX 控制項](./remove-activex-controls-excel-aspose-cells-java/) Aspose.Words Java 程式碼教程 - +### [如何嵌入字型 – HTML、XPS 與 OLE 匯出完整指南](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +了解如何使用 Aspose.Cells for Java 在匯出為 HTML、XPS 或 OLE 時嵌入字型,確保文件在不同環境中保持一致的字體顯示。 ## 其他資源 diff --git a/cells/hongkong/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/hongkong/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..895cb0b669 --- /dev/null +++ b/cells/hongkong/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-01 +description: 學習如何在 HTML 及其他格式中嵌入字型。一步一步的教學,涵蓋在 HTML 中嵌入字型、將 Excel 轉換為 HTML、如何匯出 OLE,以及將 + Excel 轉換為 XPS。 +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: zh-hant +og_description: 如何在 HTML、XPS 與 OLE 匯出中嵌入字型。學習完整工作流程,查看可執行的 Java 程式碼,並精通於 Excel 轉換時在 + HTML 中嵌入字型。 +og_title: 如何嵌入字型 – 完整 Java 教程 +tags: +- Aspose.Cells +- Java +- Document Export +title: 如何嵌入字型 – HTML、XPS 與 OLE 匯出的完整指南 +url: /zh-hant/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何嵌入字型 – HTML、XPS 與 OLE 匯出的完整指南 + +有沒有想過在將 Excel 活頁簿轉換成網頁或可列印文件時,**如何嵌入字型**?你並不孤單。許多開發者會遇到這樣的情況:在自己的機器上輸出看起來正常,但在其他機器上卻因缺少必要字型而顯示錯誤。 + +在本教學中,我們將以 Aspose.Cells for Java 為例,逐步說明真實情境:在 HTML 中嵌入字型、在轉換為 XPS 時保留 Emoji 變體選擇器,甚至在匯出為 PPTX 時保持 OLE 物件可編輯。完成後,你將擁有一套可直接複製貼上的完整解決方案,回答「如何嵌入字型」的問題,同時涉及 **embed fonts in html**、**convert excel to html**、**how to export ole** 與 **convert excel to xps**。 + +## 前置條件 + +- Java 17(或任何較新的 JDK) +- Aspose.Cells for Java 25.x 或更新版本 +- 開發 IDE(IntelliJ IDEA、Eclipse 或 VS Code) +- 基本了解 Excel 資料結構 + +不需要任何外部服務——全部在本機執行。 + +## 解決方案概覽 + +1. **建立活頁簿**,並使用 `WRAPCOLS` 函式將垂直範圍轉換為三欄佈局。 +2. **將活頁簿儲存為 XPS**,同時啟用字型變體選擇器,以保持 Emoji 完整。 +3. **匯出為 HTML**,嵌入字型,確保頁面在任何地方都保持相同外觀。 +4. **將包含 OLE 物件的活頁簿匯出為 PPTX**,保留可編輯性。 +5. **套用 Smart Marker 範本**,示範主從資料繫結。 + +每個步驟皆獨立於自己的 H2 區段,讓讀者(包括搜尋引擎與 AI 助手)能輕鬆快速瀏覽。 + +![如何嵌入字型示意圖](image.png "如何嵌入字型") + +*圖片說明:展示從 Excel 到 HTML、XPS 與 PPTX 工作流程的如何嵌入字型圖示。* + +--- + +## 步驟 1 – 建立活頁簿並使用 WRAPCOLS(說明此步驟對 embed fonts in html 為何重要) + +在討論字型嵌入之前,我們需要一個實際包含資料的活頁簿。`WRAPCOLS` 函式是一個方便的工具,可將單一欄位拆分為多欄,通常能讓最終的 HTML 更易閱讀。 + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**為何需要此步驟?** +`WRAPCOLS` 呼叫會產生多欄範圍,稍後會在 HTML 中呈現為表格。當我們之後 **embed fonts in html** 時,表格的樣式將依賴於我們嵌入的字型,確保在各瀏覽器間保持一致的渲染效果。 + +--- + +## 步驟 2 – 儲存活頁簿為 XPS 並保留 Emoji(convert excel to xps) + +如果需要列印就緒的格式,XPS 是不錯的選擇。然而,現代文件常包含使用變體選擇器的 Emoji 或符號。開啟 `EnableFontVariationSelectors` 可確保這些字元在轉換過程中不會遺失。 + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**你會得到什麼:** +一個 XPS 檔案,會如同原始活頁簿般正確顯示所有嵌入的 Emoji。這符合 **convert excel to xps** 的需求,並示範字型處理不僅限於 HTML。 + +--- + +## 步驟 3 – 匯出為嵌入字型的 HTML(how to embed fonts & embed fonts in html) + +現在進入本教學的核心:在將 Excel 轉換為 HTML 時 **how to embed fonts**。Aspose.Cells 允許我們直接將字型嵌入產生的 HTML 檔案,省去外部字型檔案的需求。 + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**運作原理:** +`setEmbedFonts(true)` 會指示渲染器讀取活頁簿中使用的字型檔案,並以 Base64 編碼的 `@font-face` 規則嵌入於 ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +請注意 `@font-face` 規則——這就是對 **embed fonts in html** 的具體回答。 + +--- + +## 步驟 4 – 匯出包含 OLE 物件的活頁簿至 PPTX(how to export ole) + +許多商業報告會將 Word 文件、PDF 或其他 Excel 工作表以 OLE 物件形式嵌入。將此類活頁簿匯出至 PowerPoint 時,常會失去編輯該物件的能力。Aspose.Cells 內建即能保留其可編輯性。 + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**此步驟的重要性:** +如果你在尋找 **how to export ole**,此程式碼片段展示了精確的 API 呼叫。產生的 PowerPoint 投影片會以可雙擊編輯的即時 OLE 物件呈現——不需要額外的後處理。 + +--- + +## 步驟 5 – 套用 Smart Marker 範本(master‑detail)並完成示範 + +Smart Markers 允許你直接將資料來源(Map、JSON、DataTable)繫結至 Excel 範本。以下是一個最小範例,會輸出主從列。 + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**你會看到:** +一個新的活頁簿(`smartMarkerResult.xlsx`),其中範本佔位符已被資料取代。此步驟雖非直接與字型相關,卻透過展示常見的報表工作流程,完整了整個教學,且通常會在 **embed fonts in html** 匯出之前執行。 + +--- + +## 常見問題與專業提示(確保字型成功嵌入) + +| 問題 | 發生原因 | 解決方案 | +|------|----------|----------| +| HTML 檔案缺少字型 | 活頁簿使用的系統字型未在伺服器上安裝。 | 在載入資料前使用 `Workbook.getSettings().setDefaultFont("Arial")`,或手動嵌入所需的字型檔案。 | +| 輸出的 HTML 體積過大 | 嵌入大量大型字型會導致檔案尺寸膨脹。 | 僅嵌入實際使用的字型:`htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`。 | +| XPS 轉換後 Emoji 消失 | 預設會移除變體選擇器。 | 如步驟 2 所示,啟用 `settings.setEnableFontVariationSelectors(true)`。 | +| OLE 物件在 PPTX 中變成靜態影像 | 來源活頁簿使用 `setSuppressOLEObjects(true)` 儲存。 | 確保在儲存為 PPTX 時 **不要** 抑制 OLE 物件。 | + +## 驗證結果 + +1. 在 Chrome/Firefox 中開啟 `embeddedFonts.html`。即使機器未安裝該字型(例如 Arial),表格也應使用嵌入的字型顯示。 +2. 在 Windows XPS Viewer 中開啟 `withVariations.xps`。Emoji(例如 👍)應正確呈現。 +3. 在 PowerPoint 中開啟 `oleEditable.pptx`。雙擊 OLE 形狀; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hungarian/java/excel-import-export/_index.md b/cells/hungarian/java/excel-import-export/_index.md index 9cc69951c3..2c8ccf88e6 100644 --- a/cells/hungarian/java/excel-import-export/_index.md +++ b/cells/hungarian/java/excel-import-export/_index.md @@ -37,6 +37,8 @@ Fedezd fel az Excel adatexportálási metódusainak lehetőségeit az Aspose.Cel Tanuld meg, hogyan exportálhatsz adatokat CSV formátumba az Aspose.Cells for Java használatával. Lépésről lépésre útmutató forráskóddal a zökkenőmentes CSV exportáláshoz. ### [Excel exportálása PDF-be](./exporting-excel-to-pdf/) Tanuld meg, hogyan exportálhatsz Excel-fájlokat könnyedén PDF-be az Aspose.Cells for Java segítségével. Lépésről lépésre útmutatónk leegyszerűsíti a folyamatot. Kezdd el a konvertálást még ma! +### [Hogyan hozzunk létre PDF-et egy munkafüzetből – Teljes Java útmutató](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Tanuld meg, hogyan konvertálj munkafüzetet PDF formátumba az Aspose.Cells for Java segítségével, részletes lépésekkel és kódrészletekkel. ### [Excel exportálása XML Java-ba](./export-excel-to-xml-java/) Tanuld meg, hogyan exportálhatsz Excelből XML-be Java-ban az Aspose.Cells for Java segítségével. Lépésről lépésre útmutató forráskóddal a zökkenőmentes adatkonverzióhoz. ### [Adatok importálása Excelből](./data-import-from-excel/) @@ -47,6 +49,8 @@ Ismerd meg, hogyan exportálhatsz Excel-adatokat JSON-ba az Aspose.Cells for Jav Tanuld meg, hogyan valósíthatsz meg Excel import adatellenőrzést az Aspose.Cells for Java használatával ezzel az átfogó, lépésről lépésre haladó útmutatóval. Biztosítsd az adatok pontosságát és fokozd a felhasználói élményt. ### [Excel exportálása HTML Java-ba](./export-excel-to-html-java/) Tanuld meg, hogyan exportálhatsz Excelt HTML-be Java nyelven az Aspose.Cells for Java segítségével. Kövesd ezt a lépésről lépésre szóló útmutatót a forráskóddal, hogy zökkenőmentesen konvertálhasd Excel-fájljaidat HTML-be. +### [Hogyan exportáljunk CSV-t Java-val – Jelentős számjegyek beállítása és export tartomány CSV-be](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Tanuld meg, hogyan exportálj CSV-t Java-val, beállítva a jelentős számjegyeket és az exportálási tartományt. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/hungarian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..6bfb79cebd --- /dev/null +++ b/cells/hungarian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Hogyan hozhatunk létre PDF-et és menthetjük a munkafüzetet PDF‑ként, + exportálhatjuk az Excelt HTML‑be, valamint használhatjuk az expand függvényt az + Aspose.Cells for Java‑val. Lépésről‑lépésre kód mellékelve. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: hu +og_description: Hogyan készítsünk PDF-et egy munkafüzetből az Aspose.Cells for Java + használatával. Tanulja meg, hogyan mentse a munkafüzetet PDF-ként, exportálja az + Excelt HTML-be, és használja az EXPAND függvényt. +og_title: PDF létrehozása munkafüzetből – Java oktatóanyag +tags: +- Aspose.Cells +- Java +- PDF generation +title: Hogyan készítsünk PDF-et egy munkafüzetből – Teljes Java útmutató +url: /hu/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan hozzunk létre PDF-et egy munkafüzetből – Teljes Java útmutató + +Gondolkodtál már azon, **how to create PDF** közvetlenül egy Excel munkafüzetből, anélkül, hogy harmadik fél konverterekkel kellene bajlódni? Nem vagy egyedül. Sok fejlesztő akad el, amikor gyors PDF exportot, HTML előnézetet vagy bonyolult tömbképleteket szeretne – mindezt egy lépésben. + +Ebben az útmutatóban egyetlen, önálló Java programon keresztül vezetünk végig, amely pontosan ezt teszi. **save workbook as PDF**-t fogunk végrehajtani, megmutatjuk, hogyan **export Excel to HTML** miközben megőrzik a rögzített sorokat, és bemutatjuk a **use expand function** használatát egy munkalapon. A végére egy futtatható projektet kapsz, amelyet bármely Maven vagy Gradle buildbe beilleszthetsz. + +> **Pro tip:** Az alábbi kód mind működik az Aspose.Cells 23.10 (vagy újabb) verzióval. Ha régebbi verziót használsz, egyes metódusnevek kissé eltérhetnek. + +--- + +## Előfeltételek + +- **Java 17** (vagy bármely LTS verzió) telepítve és konfigurálva. +- **Aspose.Cells for Java** könyvtár. Add hozzá a következő Maven függőséget a `pom.xml`-hez: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Egy IDE vagy szövegszerkesztő a választásod szerint (IntelliJ IDEA, VS Code, Eclipse…). + +Nincs külső API, nincs webszolgáltatás – csak tiszta Java és az Aspose.Cells SDK. + +--- + +## A megoldás áttekintése + +A megvalósítást **seven logical steps**-re bontjuk: + +1. Munkafüzet létrehozása és az **EXPAND** függvény bemutatása. +2. Betűtípus variációs szelektorok engedélyezése és **save the workbook as PDF**. +3. A munkafüzet exportálása HTML-be a rögzített sorok megőrzése mellett. +4. Smart Marker használata egy `IF`‑paraméterrel a feltételes szöveg beillesztéséhez. +5. Master‑detail Smart Marker alkalmazása hierarchikus adatokhoz. +6. Markdown fájl betöltése, amely Base‑64‑kódolt képeket tartalmaz. +7. GridJs opciók konfigurálása igazításhoz és szegélyekhez, majd adatok beszúrása. + +Minden lépés saját metódusban van, hogy a `main` metódus tiszta maradjon, és hogy illusztráljuk, **miért** csináljuk, amit csinálunk, nem csak **mit** gépelünk. + +--- + +## 1. lépés – Munkafüzet létrehozása és az EXPAND függvény használata + +Az **EXPAND** függvény egy új dinamikus tömbképlet, amelyet az Office 365 vezetett be. Lehetővé teszi, hogy egy tartományt egy nagyobb területre „kifolyassz” anélkül, hogy manuálisan másolnád a cellákat. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Miért fontos:** +- Az `EXPAND` automatikusan üres cellákkal tölti ki az eredményt, ami tökéletes, ha később **save workbook as PDF**-t hajtasz végre – a PDF tiszta, téglalap alakú táblázatot mutat. +- A `calculateFormula()` meghívása biztosítja, hogy a képletmotor lefusson, mielőtt bármit exportálnánk. + +--- + +## 2. lépés – Betűtípus variációs szelektorok engedélyezése és **Save Workbook as PDF** + +Ha fejlett tipográfiát kell támogatnod (például emoji vagy CJK variációs szelektorok), a funkciót **before** kell bekapcsolni a mentés előtt. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Kulcspont:** A fő kulcsszó **how to create pdf** itt kap választ – a `workbook.save(..., SaveFormat.PDF)` meghívásával, a beállítások konfigurálása után. + +--- + +## 3. lépés – **Export Excel to HTML** rögzített sorok megőrzése mellett + +Gyakran a döntéshozók gyors webes előnézetet kérnek. Az Aspose.Cells képes HTML-re exportálni, és a `setPreserveFrozenRows(true)` használatával megtartjuk ugyanazt a görgetési élményt, mint az Excelben. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Miért érdekel:** A rögzített sorok használhatósági előnyök; nélkülük a fejléc sorok eltűnnek, amikor a felhasználók lefelé görgetnek az oldalon. + +--- + +## 4. lépés – Smart Marker IF‑paraméterrel + +A Smart Markerek lehetővé teszik, hogy adatot illessz egy sablonba ciklusok írása nélkül. Az `if`‑parameter közvetlenül a markerben ad hozzá feltételes logikát. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +A kimeneti PDF a **„VIP Customer: Acme Corp”** szöveget fogja tartalmazni, mert az `IsVIP` `true`. Ha a flag-et `false`-ra állítod, akkor **„Regular Customer: Acme Corp”** lesz – extra kód nélkül. + +--- + +## 5. lépés – Master‑Detail Smart Marker hierarchikus tartomány használatával + +Ha szülő‑gyermek adatod van (például rendelések és tételsorok), egy master‑detail marker megspórolja a manuális sorbeszúrást. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Mit nyersz:** A motor minden rendeléshez kibővíti a master sorokat, és automatikusan beágyazza alá a részletező sorokat – tökéletes számlákhoz vagy vásárlási jelentésekhez. + +--- + +## 6. lépés – Markdown dokumentum betöltése beágyazott Base‑64 képekkel + +Ha a forrásadatod Markdown-ban van (gyakori a dokumentációs folyamatokban), az Aspose.Cells közvetlenül egy munkafüzetbe tudja renderelni. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Edge case megjegyzés:** Ha a Base‑64 karakterlánc hibás, az Aspose kihagyja a képet, de a dokumentum többi részének feldolgozását folytatja – nem omlik össze. + +--- + +## 7. lépés – GridJs beállítások konfigurálása és adatok beszúrása + +A GridJs egy könnyű JavaScript rács, amelyet az Aspose HTML-be tud renderelni. A számok igazítása és a szegélyek alkalmazása javítja az olvashatóságot. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Miért fontos:** A megfelelő igazítás és szegélyek a generált HTML-t egy kifinomult táblázatnak mutatják – hasznos irányítópultokhoz. + +--- + +## Összeállítás – A `main` metódus + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hungarian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/hungarian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..1a36cb6856 --- /dev/null +++ b/cells/hungarian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-01 +description: Tanulja meg, hogyan exportáljon CSV-t egy Java munkafüzetből, miközben + beállítja a jelentős számjegyeket és az exportálási tartományt CSV-be, egyetlen, + világos útmutatóban. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: hu +og_description: Tanulja meg, hogyan exportáljon CSV-t Java-ban, állítson be jelentős + számjegyeket, és exportáljon tartományt CSV-be gyakorlati kóddal és tippekkel. +og_title: CSV exportálása Java-val – Teljes lépésről lépésre útmutató +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: CSV exportálása Java-val – Jelentős számjegyek beállítása és exportálási tartomány + CSV-be +url: /hu/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan exportáljunk CSV-t Java-val – Jelentős számjegyek beállítása és tartomány exportálása CSV-be + +Ever wondered **hogyan exportáljunk csv** from a Java workbook without losing numeric precision? Maybe you’ve tried a quick `toString()` and ended up with a mess of rounding errors. That’s a common snag, especially when you need to **jelentős számjegyek beállítása** for financial data or scientific results. + +In this tutorial you’ll see a complete, ready‑to‑run example that shows **hogyan exportáljunk csv**, how to **jelentős számjegyek beállítása**, and even how to **tartomány exportálása csv-be** while keeping your data tidy. We’ll walk through each line, explain the *why* behind the API calls, and give you tips to avoid the usual pitfalls. No extra docs to chase—just a self‑contained solution you can copy‑paste today. + +## Amit megtanul + +- Hozzon létre egy munkafüzetet, és állítsa be a numerikus pontosságot a `setNumberSignificantDigits` segítségével. +- Exportáljon egy meghatározott cellatartományt szépen formázott CSV karakterláncként. +- Parsolja a japán korszak dátumokat a `DateTimeFormatInfo` használatával. +- Számolja újra a képleteket, hogy a dinamikus tömb eredmények friss maradjanak. +- Rendelje a pivot táblát PNG képre. +- Használja a Smart Marker-t megjegyzések beillesztéséhez, majd mentse a munkafüzetet. + +All of this is done with the Aspose.Cells for Java library, version 23.12 (the latest at time of writing). If you have the JAR on your classpath, you’re good to go. + +--- + +## 1. lépés: Munkafüzet létrehozása és **Jelentős számjegyek beállítása** + +Before we can export anything, we need a workbook object. The first thing many developers overlook is numeric precision. By default Aspose.Cells uses the full double precision, which can lead to long, unwieldy strings in CSV. Setting the number of significant digits trims the output while preserving the most important figures. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Miért fontos ez?** +If you export a cell containing `12345.6789` without limiting digits, the CSV will show the full value, cluttering reports. With `setNumberSignificantDigits(5)`, the same cell becomes `12346`, which is often what business users expect. + +> **Pro tip:** If you need different precision per column, you can apply a custom `Style` instead of the global setting. + +--- + +## 2. lépés: **Tartomány exportálása CSV-be** – A formázás számít + +Now that the workbook is ready, let’s pull a rectangular block of data and turn it into a CSV string. We’ll also enforce a two‑decimal format (`0.00`) so every number lines up nicely. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +The call `exportDataTable` does the heavy lifting. Because we set `exportAsString`, the method returns a `String` we can print, write to a file, or send over HTTP. The **tartomány exportálása csv-be** step also respects the global `setNumberSignificantDigits` we defined earlier, so the numbers are both rounded to five significant digits *és* displayed with two decimal places. + +Várható kimenet (levágva): + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Gyakori kérdés:** *Mi van, ha más elválasztót, például pontosvesszőt kell használnom?* +> Simply call `exportOptions.setSeparator(";")` before exporting. + +--- + +## 3. lépés: Japán korszak dátum elemzése (bónusz eszköz) + +While not directly related to CSV, many Excel sheets contain locale‑specific dates. Here’s how you can turn a Japanese era string like `"R3/04/01"` into a standard `DateTime` object. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Kimenet: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Miért tartalmazzuk ezt?** +If your CSV export feeds downstream systems that expect ISO‑8601 dates, you’ll need to normalize any localized formats first. This snippet shows the *how* and *why* in a single place. + +--- + +## 4. lépés: Képletek újraszámítása – A dinamikus tömb eredmények frissen tartása + +If your workbook contains formulas (e.g., `=SUM(A1:A10)`), they won’t automatically update after we changed settings. Calling `calculateFormula` forces a full recalculation, ensuring the exported CSV reflects the latest values. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Figyelem:** Large workbooks can take noticeable time to recalc. For performance‑critical scenarios, consider `calculateFormula(FormulaCalculationOptions)` to limit the scope. + +--- + +## 5. lépés: Az első pivot tábla renderelése PNG képre + +Sometimes you need a visual snapshot of a pivot table alongside the CSV. The following code renders the first pivot table on the first worksheet to a PNG file. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tipp:** If the workbook doesn’t already contain a pivot, you can create one programmatically—see the Aspose.Cells docs for a quick example. + +--- + +## 6. lépés: Smart Marker használata megjegyzés írásához és a munkafüzet mentéséhez + +Smart Marker lets you inject dynamic content into cells using simple placeholders. Here we write a comment like “Reviewed by QA” into a designated cell and then save the workbook. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +The `${Comment}` placeholder can be placed anywhere in the sheet (e.g., cell `A1`). When `apply` runs, the placeholder is replaced with the supplied value. + +**Eredmény:** You’ll find an `output/commented.xlsx` file containing the comment, plus the previously generated `pivot.png` and the CSV string printed to the console. + +--- + +## Teljes működő példa + +Putting it all together, here’s the complete program you can compile and run: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Várható konzol kimenet + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +You’ll also find `output/pivot.png` (if a pivot existed) and `output/commented.xlsx` on disk. + +--- + +## Gyakran feltett kérdések és szélhelyzetek + +- **Can I export to a physical CSV file directly?** + Yes. Replace the `exportAsString` block with `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **What if my sheet uses a different locale for numbers?** + Set `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` before exporting; this will swap + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hungarian/java/excel-pivot-tables/_index.md b/cells/hungarian/java/excel-pivot-tables/_index.md index f6e1dc2467..b5ac99ea20 100644 --- a/cells/hungarian/java/excel-pivot-tables/_index.md +++ b/cells/hungarian/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Tanuld meg, hogyan hozhatsz létre számított mezőket a pivottáblákban az As Tanuld meg, hogyan frissítheted a pivot tábla adatait az Aspose.Cells for Java programban. Tartsd naprakészen az adataid könnyedén. ### [Kimutatási táblázat stílusainak testreszabása](./customizing-pivot-table-styles/) Tanuld meg, hogyan szabhatod testre a pivot tábla stílusait az Aspose.Cells for Java API-ban. Hozz létre vizuálisan vonzó pivot táblákat könnyedén. +### [Pivot tábla másolása Java-ban – megőrizze, exportálja PPTX-be](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Tanuld meg, hogyan másolhatod a pivot táblát Java-ban, megőrizve formázását, és exportálhatod PPTX formátumba. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/hungarian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..9c2c40b0fa --- /dev/null +++ b/cells/hungarian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Pivot tábla másolása Java-ban a pivot megőrzésével, majd az Excel exportálása + PPTX-be, az Excel AutoFilter letiltása, és a Smart Marker használata JSON tömbökhöz + – teljes lépésről lépésre útmutató. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: hu +og_description: Másolja a pivot táblát Java-ban, őrizze meg a pivot definíciót, exportálja + PPTX-be, tiltsa le az AutoFilter-t, és használja a Smart Marker-t – teljes útmutató + fejlesztőknek. +og_title: Pivot tábla másolása Java-ban – megőrizze, exportálja PPTX-be +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Pivot tábla másolása Java-ban – megőrizze, exportálja PPTX-be +url: /hu/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Pivot tábla másolása Java‑ban – Megőrzés, Exportálás PPTX‑be + +Valaha is szükséged volt **pivot tábla másolása** egy munkafüzetből a másikba anélkül, hogy elveszítenéd az alatta lévő pivot definíciót? Nem vagy egyedül, aki ezen agyazik. Sok valós projektben adatot kell áthelyezned, és az utolsó dolog, amit akarsz, egy hibás pivot, amely futásidőben hibákat dob. + +Ebben az útmutatóban egy teljes megoldáson vezetünk végig, amely nem csak **pivot tábla másolását** valósítja meg, hanem megmutatja, hogyan **megőrizheted a pivot táblát** másoláskor, **Excel exportálása PPTX‑be**, **Excel AutoFilter letiltása**, és **smart marker használata** egy JSON tömb egyetlen cellába helyezéséhez. A végére egyetlen, futtatható Java programod lesz, amely lefedi mind a négy szcenáriót. + +## Előfeltételek + +- Java 8 vagy újabb (a kód Java 11‑kel is működik) +- Aspose.Cells for Java könyvtár (23.9‑es vagy újabb verzió) – letöltheted a Maven Central‑ról +- Alapvető ismeretek az Excel fogalmakról, mint például pivot táblák, táblázatok és szövegdobozok + +Ha hiányzik az Aspose.Cells JAR, add hozzá ezt a `pom.xml`-hez: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Most merüljünk el. + +## 1. lépés: Pivot tábla másolása – a pivot definíció megőrzése + +Ha egyszerűen csak a pivot táblát tartalmazó cellatartományt másolod, a pivot metaadatok gyakran hátramaradnak. Az Aspose.Cells egy praktikus módot biztosít a definíció érintetlen megtartására a `copyRange` és egy `CopyOptions` példány használatával. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Miért működik:** A `CopyOptions` azt mondja az Aspose.Cells‑nek, hogy mindent vigyen át, beleértve a pivot gyorsítótárat és a mezőbeállításokat. Enélkül csak egyszerű értékek maradnak, és elveszíted a pivot frissítésének lehetőségét. + +**Szélsőséges eset:** Ha a forrás pivot több, mint a keménykódolt `A1:G20` tartomány, állítsd be ennek megfelelően a tartományt, vagy használd a `sourceSheet.getPivotTables().get(0).getDataRange()`‑t a dinamikus lekéréshez. + +![Pivot tábla másolásának példája](image.png "Pivot tábla másolása Java‑ban") + +*Kép alternatív szövege: pivot tábla másolása Java‑ban diagram* + +## 2. lépés: Munkalap exportálása szerkeszthető szövegdobozzal PPTX‑be + +Gyakran szükség van arra, hogy egy Excel munkalapot PowerPoint diára alakítsunk – gondolj a heti műszerfalakra, amelyeket bemutatni kell. Az Aspose.Cells közvetlenül ment egy munkalapot PPTX fájlként, miközben megőrzi a formákat, például a szövegdobozokat. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Mi történik:** A `save` metódus `SaveFormat.PPTX`‑szel az egész munkalapot, beleértve a szerkeszthető TextBox‑ot, PowerPoint diává konvertálja. A dobozban lévő szöveg szerkeszthető marad, amikor a PPTX‑et PowerPoint‑ban megnyitod. + +**Tipp:** Ha több munkalapod van, és csak egyet szeretnél, hívd meg a `wb.getWorksheets().removeAt(index)`‑t a többi eltávolításához a mentés előtt. + +## 3. lépés: Excel AutoFilter letiltása egy táblázatból + +Az AutoFilter kényelmes a végfelhasználók számára, de néha programozottan kell kikapcsolni – például adat exportálása vagy tiszta jelentés készítése előtt. Íme, hogyan **tiltsd le az Excel autofiltert** egy Excel táblázaton. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Miért lehet erre szükség:** Olyan formátumokba exportálás, amelyek nem támogatják az AutoFiltert (például CSV vagy PDF), felesleges szűrőikonok megjelenését okozhatja. A letiltás tiszta kimenetet biztosít. + +**Gyakori buktató:** Ha a munkalapon nincs táblázat, a `getTables().get(0)` `IndexOutOfBoundsException`‑t dob. Mindig ellenőrizd először a `sheet.getTables().size()` értékét a produkciós kódban. + +## 4. lépés: Smart Marker használata – JSON tömb beillesztése egyetlen cellaértékként + +A Smart Marker az Aspose sablonmotorja. Egy hasznos trükk, hogy egy teljes JSON tömböt egyetlen cellaértékként kezelünk, ami tökéletes naplózáshoz vagy strukturált adatok továbbításához. Használjuk a **smart marker‑t** ennek eléréséhez. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Hogyan működik:** A munkafüzetben a `${json}` jelzőt a teljes JSON karakterlánc helyettesíti, mivel beállítottuk az `ArrayAsSingle` opciót. Enélkül az Aspose megpróbálná minden tömb elemet külön sorba bontani. + +**Variáció:** Ha a tömböt sorokra szeretnéd bontani, egyszerűen hagyd ki az `ArrayAsSingle` opciót, és a Smart Marker automatikusan kezeli a kiterjesztést. + +## Teljes működő példa – minden lépés egyben + +Az alábbi egyetlen Java osztály, amely összefűzi a bemutatott összes műveletet. Futtasd szokásos `main` metódusként; csak állítsd be a fájlutakat a környezetednek megfelelően. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hungarian/java/getting-started/_index.md b/cells/hungarian/java/getting-started/_index.md index c9cbfd54a3..e754472086 100644 --- a/cells/hungarian/java/getting-started/_index.md +++ b/cells/hungarian/java/getting-started/_index.md @@ -71,7 +71,8 @@ Tanulja meg, hogyan nyithat meg és dolgozhat fel hatékonyan SpreadsheetML fáj ### [Az Aspose.Cells verziójának lekérése Java-ban: lépésről lépésre útmutató](./retrieve-aspose-cells-version-java-guide/) Tanuld meg, hogyan ellenőrizheted az Aspose.Cells verzióját Java projektjeidben ezzel az átfogó útmutatóval. Biztosítsd a kompatibilitást és használd ki hatékonyan az új funkciókat. - +### [Licencelt munkafüzet létrehozása – Teljes Aspose.Cells Java útmutató](./create-licensed-workbook-full-aspose-cells-java-guide/) +Ismerje meg, hogyan hozhat létre licencelt Excel-munkafüzetet az Aspose.Cells Java könyvtárral, a licenc beállításától a mentésig. ## További források diff --git a/cells/hungarian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/hungarian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..ef5f53dfea --- /dev/null +++ b/cells/hungarian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Készítsen gyorsan licencelt munkafüzetet az Aspose.Cells Java-val. Tanulja + meg, hogyan licencelje az Aspose-t, állítsa be az Aspose licencet Java-ban, és olvassa + be az Excelt az Aspose-szal egyetlen oktatóanyagon belül. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: hu +og_description: Licencelt munkafüzet létrehozása az Aspose.Cells Java használatával. + Ez az útmutató bemutatja, hogyan kell licencelni az Aspose-t, beállítani az Aspose + licencet Java-ban, és Excel-t olvasni az Aspose-szal. +og_title: Licencelt munkafüzet létrehozása – Aspose.Cells Java útmutató +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Licencelt munkafüzet létrehozása – Teljes Aspose.Cells Java útmutató +url: /hu/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Licencelt munkafüzet létrehozása – Teljes Aspose.Cells Java útmutató + +Gondolkodtál már azon, hogyan **create licensed workbook** anélkül, hogy licencelési hibákkal ütköznél? Nem vagy egyedül – sok fejlesztő találkozik ezzel a problémával, amikor először érintkezik az Aspose.Cells‑szel. A jó hír? A megoldás egyszerű, és ez az útmutató lépésről‑lépésre végigvezet. + +Néhány perc alatt megtudod, **how to license Aspose**, pontosan **set Aspose license Java**, és készen állsz **read Excel with Aspose** valós feladatokra, mint például jelentéskészítés vagy adatátvitel. Nincs homályos hivatkozás, csak egy teljes, futtatható példa, amit ma másolhatsz‑beilleszthetsz. + +--- + +## Amire szükséged lesz + +- Java 17 vagy újabb (a legfrissebb stabil kiadás a legjobb) +- Aspose.Cells for Java 23.9 (vagy bármely friss verzió) +- Az Aspose.Cells licencfájlod (`Aspose.Cells.Java.lic`) +- Egy IDE vagy build eszköz, amivel kényelmesen dolgozol (Maven, Gradle, vagy egyszerű `javac`) + +Ha bármelyik ismeretlennek tűnik, ne aggódj – minden pontot részletezünk a további lépésekben. + +--- + +## 1. lépés: Aspose.Cells függőség hozzáadása + +Mielőtt **create licensed workbook**‑t tudnál készíteni, a könyvtárnak a classpath‑on kell lennie. Maven‑nél így néz ki: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Gradle‑nél: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro tipp:** Ha egyszerű `javac` fordítást használsz, csak helyezd a JAR‑t egy `libs/` mappába, és add hozzá a `-cp` kapcsolóhoz. + +--- + +## 2. lépés: **How to License Aspose** – Licencfájl betöltése + +Amint bármely Aspose API‑t licenc nélkül hívod, a generált Excel fájlban vízjel jelenik meg. Ennek elkerülése érdekében **set Aspose license Java**‑t kell végrehajtanod a programod elején. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Miért fontos:** A `License` objektum azt mondja az Aspose‑nak, hogy hagyja el az értékelő módot, eltávolítva a vízjeleket és feloldva a teljes API‑t. Ha az útvonal hibás, kivétel keletkezik – így azonnal tudni fogod. + +--- + +## 3. lépés: **Create Licensed Workbook** – Excel fájl építése + +Miután a licenc érvényes, biztonságosan **create licensed workbook** objektumokat hozhatsz létre. Az alábbi minimális, de teljes példa azt is bemutatja, hogyan **read Excel with Aspose** később. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Mit csinál:** + +1. Meghívja az **2. lépés**‑ben definiált segédfüggvényt, hogy **set Aspose license Java** legyen beállítva. +2. Létrehoz egy új `Workbook`‑et – a **create licensed workbook** művelet központi eleme. +3. Egy kis táblázatot ír, XLSX‑ként ment, majd azonnal visszaolvassa, hogy bizonyítsa, a **read Excel with Aspose** vízjel nélkül működik. + +A program futtatása a következőt írja ki: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Ha megnyitod a generált fájlt, egy tiszta táblázatot látsz Aspose vízjel nélkül – bizonyítva, hogy a licenc aktív. + +--- + +## 4. lépés: Gyakori hibák és széljegyek + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **LicenseNotFoundException** | Az útvonal hibás vagy a fájl hiányzik. | Használj abszolút útvonalat vagy töltsd be az erőforrásból (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Az Aspose JAR nincs a classpath‑on. | Ellenőrizd a Maven/Gradle függőséget vagy add hozzá a JAR‑t manuálisan. | +| **Mentés Windows‑on sikertelen** | A célmappa nem létezik. | Győződj meg róla, hogy az `output/` könyvtár létrejön (`new File("output").mkdirs();`). | +| **Régebbi .xls fájlok olvasása** | Az alapértelmezett `SaveFormat` nem támogatja a régi formátumot. | Használd a `SaveFormat.XLS`‑t mentéskor, vagy hagyd, hogy az Aspose automatikusan felismerje a betöltéskor. | + +> **Figyeljen:** Ha szerverre telepíted, a licencfájlt a web‑alkalmazás gyökérkönyvtárán kívül helyezd el, hogy elkerüld a véletlen kiszivárgást. + +--- + +## 5. lépés: Licenc ellenőrzése programból (opcionális) + +Néha szeretnéd megerősíteni, hogy a licenc helyesen betöltődött, mielőtt nehéz műveleteket végeznél. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Meghívhatod a `LicenseChecker.isLicensed("...")`‑t, és leállíthatod a folyamatot, ha `false`‑t ad vissza. Ez extra biztonsági hálót nyújt, különösen CI/CD pipeline‑okban. + +--- + +## Vizuális áttekintés + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Image alt text:* **create licensed workbook diagram** – ábrázolja a licenc alkalmazását, a munkafüzet létrehozását és az Excel olvasását. + +--- + +## Összegzés + +Most már egy teljes, vég‑től‑végig megoldással rendelkezel a **create licensed workbook** létrehozásához az Aspose.Cells for Java használatával. Áttekintettük, **how to license Aspose**, bemutattuk a pontos **set Aspose license Java** kódot, és gyorsan megmutattuk a **read Excel with Aspose** működését, hogy minden rendben legyen. + +A következő lépések lehetnek: + +- Cellák stílusozása (betűtípusok, színek) – nagyszerű professzionális jelentésekhez. +- Exportálás CSV‑re vagy PDF‑re – az Aspose számos formátumot támogat natívan. +- Nagy adathalmazok kezelése – használj `WorkbookDesigner`‑t sablonkészítéshez. + +Kísérletezz nyugodtan, és ha elakadsz, írj egy megjegyzést alul. Boldog kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/hungarian/java/ole-objects-embedded-content/_index.md b/cells/hungarian/java/ole-objects-embedded-content/_index.md index e1f15c09be..d260420951 100644 --- a/cells/hungarian/java/ole-objects-embedded-content/_index.md +++ b/cells/hungarian/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Ismerje meg, hogyan kinyerheti hatékonyan a GUID-kat beágyazott PowerPoint-obj ### [ActiveX-vezérlők eltávolítása Excelből az Aspose.Cells Java segítségével](./remove-activex-controls-excel-aspose-cells-java/) Kód oktatóanyag az Aspose.Words Java-hoz - +### [Hogyan ágyazzunk be betűtípusokat – Teljes útmutató HTML, XPS és OLE exporthoz](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Ismerje meg, hogyan ágyazhat be betűtípusokat HTML, XPS és OLE exportáláskor az Aspose.Cells for Java segítségével. ## További források diff --git a/cells/hungarian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/hungarian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..e6892ab274 --- /dev/null +++ b/cells/hungarian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-01 +description: Tudja meg, hogyan lehet betűkészleteket beágyazni HTML-ben és más formátumokban. + Lépésről lépésre útmutató, amely bemutatja a betűkészletek beágyazását HTML-be, + az Excel HTML-be konvertálását, az OLE exportálásának módját, valamint az Excel + XPS-be konvertálását. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: hu +og_description: Hogyan ágyazzunk be betűtípusokat HTML, XPS és OLE exportokba. Ismerje + meg a teljes munkafolyamatot, tekintse meg a futtatható Java kódot, és sajátítsa + el a betűtípusok beágyazását HTML-ben az Excel konverziókhoz. +og_title: Betűtípusok beágyazása – Teljes Java útmutató +tags: +- Aspose.Cells +- Java +- Document Export +title: Betűtípusok beágyazása – Teljes útmutató HTML, XPS és OLE exporthoz +url: /hu/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan kell betűtípusokat beágyazni – Teljes útmutató HTML, XPS és OLE exporthoz + +Gondolkodtál már azon, **hogyan kell betűtípusokat beágyazni**, amikor egy Excel munkafüzetet weboldallá vagy nyomtatható dokumentummá alakítasz? Nem vagy egyedül. Sok fejlesztő szembesül azzal a problémával, hogy a kimenet a saját gépén rendben néz ki, de másik gépen hibás, mert a szükséges betűtípusok hiányoznak. + +Ebben az oktatóanyagban egy valós példán keresztül mutatjuk be az Aspose.Cells for Java használatát: betűtípusok beágyazása HTML-be, emoji variációs szelektorok megőrzése XPS-re konvertáláskor, valamint egy OLE objektum szerkeszthető állapotban tartása PPTX exportáláskor. A végére egy kész, másolás‑beillesztés megoldást kapsz, amely megválaszolja a „hogyan kell betűtípusokat beágyazni” kérdést, és érint olyan kulcsszavakat is, mint **embed fonts in html**, **convert excel to html**, **how to export ole**, és **convert excel to xps**. + +## Előfeltételek + +- Java 17 (vagy bármely friss JDK) +- Aspose.Cells for Java 25.x vagy újabb +- Fejlesztői IDE (IntelliJ IDEA, Eclipse vagy VS Code) +- Alapvető ismeretek az Excel adatstruktúrákról + +Külső szolgáltatásokra nincs szükség – minden helyben fut. + +## A megoldás áttekintése + +1. **Munkafüzet létrehozása** és a `WRAPCOLS` függvény használata egy függőleges tartomány háromoszlopos elrendezéssé alakításához. +2. **Munkafüzet mentése XPS‑ként** a betűtípus‑variációs szelektorok bekapcsolásával, hogy az emoji megmaradjon. +3. **Exportálás HTML‑be** beágyazott betűtípusokkal, garantálva, hogy az oldal mindenhol ugyanúgy nézzen ki. +4. **Munkafüzet exportálása OLE objektummal PPTX‑be**, a szerkeszthetőség megőrzésével. +5. **Smart Marker sablon alkalmazása**, amely bemutatja a master‑detail adatkapcsolást. + +Minden lépés saját H2 szekcióban van, így az útmutató könnyen átfutható mind keresőmotorok, mind AI asszisztensek számára. + +![Hogyan kell betűtípusokat beágyazni illusztráció](image.png "hogyan kell betűtípusokat beágyazni") + +*Image alt text: hogyan kell betűtípusokat beágyazni diagram, amely az Excel → HTML, XPS és PPTX munkafolyamatot mutatja.* + +--- + +## 1. lépés – Munkafüzet létrehozása és WRAPCOLS használata (Miért fontos ez a **embed fonts in html** szempontjából) + +Mielőtt a betűtípusok beágyazásáról beszélnénk, szükségünk van egy olyan munkafüzetre, amely tényleges adatot tartalmaz. A `WRAPCOLS` függvény kényelmes módja egyetlen oszlop több oszlopra bontásának, ami gyakran olvashatóbbá teszi a végső HTML‑t. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Miért ez a lépés?** +A `WRAPCOLS` hívás egy többoszlopos tartományt hoz létre, amely később HTML‑ben táblázatként jelenik meg. Amikor **betűtípusokat ágyazunk be HTML‑be**, a táblázat stílusa a beágyazott betűtípusokra támaszkodik, ezáltal biztosítva a konzisztens megjelenítést a böngészők között. + +--- + +## 2. lépés – Munkafüzet mentése XPS‑ként az emoji megőrzésével (**convert excel to xps**) + +Ha nyomtatásra kész formátumra van szükséged, az XPS egy stabil választás. A modern dokumentumok gyakran tartalmaznak emoji‑kat vagy szimbólumokat, amelyek variációs szelektorokat használnak. Az `EnableFontVariationSelectors` bekapcsolása biztosítja, hogy ezek a karakterek megmaradjanak a konvertálás során. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Mit kapsz:** +Egy XPS fájl, amely a beágyazott emoji‑kat pontosan úgy jeleníti meg, mint a forrás munkafüzetben. Ez teljesíti a **convert excel to xps** követelményt, és azt is bizonyítja, hogy a betűtípus‑kezelés nem korlátozódik csak HTML‑re. + +--- + +## 3. lépés – Exportálás HTML‑be beágyazott betűtípusokkal (**how to embed fonts** & **embed fonts in html**) + +Most jön a tutorial központi része: **hogyan kell betűtípusokat beágyazni** Excel → HTML konvertáláskor. Az Aspose.Cells lehetővé teszi, hogy a betűtípusokat közvetlenül a generált HTML‑fájlba ágyazzuk, ezzel kiküszöbölve a külső betűtípus‑fájlok szükségességét. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Működési elv:** +A `setEmbedFonts(true)` utasítás azt mondja a renderelőnek, hogy olvassa be a munkafüzetben használt betűtípus‑fájlokat, és Base64‑kódolt `@font-face` szabályokként ágyazza be a ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Vedd észre az `@font-face` szabályt – ez a konkrét válasz a **embed fonts in html** kérdésre. + +--- + +## 4. lépés – Munkafüzet exportálása OLE objektummal PPTX‑be (**how to export ole**) + +Sok üzleti jelentés Word dokumentumokat, PDF‑eket vagy más Excel‑lapokat ágyaz be OLE objektumként. Amikor ilyen munkafüzetet exportálsz PowerPointba, gyakran elveszik a szerkeszthetőség. Az Aspose.Cells alapból megőrzi ezt a funkciót. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Miért fontos:** +Ha a **how to export ole** keresést végzed, ez a kódrészlet pontosan megmutatja a szükséges API‑hívást. A kapott PowerPoint‑dia egy élő, dupla‑kattintás‑szerkeszthető OLE objektumot tartalmaz – további utófeldolgozás nélkül. + +--- + +## 5. lépés – Smart Marker sablon alkalmazása (master‑detail) és a demo befejezése + +A Smart Markerek lehetővé teszik, hogy egy adatforrást (Map, JSON, DataTable) közvetlenül egy Excel sablonhoz kössünk. Íme egy minimális példa, amely master‑detail sorokat nyomtat. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Mit látsz:** +Egy új munkafüzet (`smartMarkerResult.xlsx`), ahol a sablonhelyettesítők a valós adatokkal lettek helyettesítve. Ez a lépés nem közvetlenül a betűtípusokról szól, de kerekíti az útmutatót egy tipikus jelentéskészítési folyamat bemutatásával, amely gyakran megelőzi a **embed fonts in html** exportot. + +--- + +## Gyakori hibák és tippek (A sikeres betűtípus‑beágyazás biztosítása) + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| A betűtípusok hiányoznak a HTML‑fájlban | A munkafüzet olyan rendszer‑betűtípust használ, amely nincs telepítve a szerveren. | Használd a `Workbook.getSettings().setDefaultFont("Arial")` hívást az adatok betöltése előtt, vagy ágyazd be manuálisan a szükséges betűtípus‑fájlokat. | +| A kimeneti HTML túl nagy | Sok nagy betűtípus beágyazása megnöveli a fájlméretet. | Korlátozd a beágyazást csak a ténylegesen használt betűtípusokra: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji eltűnik XPS konvertálás után | A variációs szelektorok alapértelmezés szerint le vannak vágva. | Engedélyezd a `settings.setEnableFontVariationSelectors(true)` beállítást, ahogy a 2. lépésben látható. | +| OLE objektum statikus képpé válik PPTX‑ben | A forrás munkafüzetet a `setSuppressOLEObjects(true)` opcióval mentették. | Győződj meg róla, hogy **nem** tiltod le az OLE objektumokat PPTX mentésekor. | + +--- + +## Az eredmények ellenőrzése + +1. Nyisd meg az `embeddedFonts.html` fájlt Chrome‑ban vagy Firefox‑ban. A táblázatnak a beágyazott betűtípussal (pl. Arial) kell megjelenni, még akkor is, ha az a gépen nincs telepítve. +2. Nyisd meg a `withVariations.xps` fájlt a Windows XPS Viewer‑ben. Az emoji‑k, például 👍, helyesen kell, hogy megjelenjenek. +3. Nyisd meg az `oleEditable.pptx` fájlt PowerPoint‑ban. Dupla‑kattints az OLE alakzatra; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/indonesian/java/excel-import-export/_index.md b/cells/indonesian/java/excel-import-export/_index.md index 7a33bf2c3a..7acdccc65c 100644 --- a/cells/indonesian/java/excel-import-export/_index.md +++ b/cells/indonesian/java/excel-import-export/_index.md @@ -35,6 +35,8 @@ Pelajari cara melakukan impor data massal dari Excel menggunakan Aspose.Cells un Manfaatkan potensi metode ekspor data Excel menggunakan Aspose.Cells untuk Java. Pelajari dengan contoh kode sumber praktis dalam panduan komprehensif ini. Optimalkan keterampilan manajemen data Anda hari ini. ### [Ekspor Kode Java CSV](./csv-export-java-code/) Pelajari cara mengekspor data ke format CSV menggunakan Aspose.Cells untuk Java. Panduan langkah demi langkah dengan kode sumber untuk ekspor CSV yang lancar. +### [Cara Mengekspor CSV dengan Java – Mengatur Digit Signifikan & Rentang Ekspor ke CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Pelajari cara mengekspor data ke CSV dengan mengatur digit signifikan dan rentang ekspor menggunakan Aspose.Cells untuk Java. ### [Mengekspor Excel ke PDF](./exporting-excel-to-pdf/) Pelajari cara mengekspor file Excel ke PDF dengan mudah menggunakan Aspose.Cells untuk Java. Panduan langkah demi langkah kami menyederhanakan prosesnya. Mulailah mengonversi hari ini! ### [Ekspor Excel ke XML Java](./export-excel-to-xml-java/) @@ -47,6 +49,8 @@ Pelajari cara mengekspor data Excel ke JSON menggunakan Aspose.Cells untuk Java. Pelajari cara menerapkan validasi data impor Excel menggunakan Aspose.Cells untuk Java dengan panduan langkah demi langkah yang komprehensif ini. Pastikan keakuratan data dan tingkatkan pengalaman pengguna. ### [Ekspor Excel ke HTML Java](./export-excel-to-html-java/) Pelajari cara mengekspor Excel ke HTML di Java menggunakan Aspose.Cells untuk Java. Ikuti panduan langkah demi langkah ini dengan kode sumber untuk mengonversi file Excel Anda ke HTML dengan mudah. +### [Cara Membuat PDF dari Workbook – Panduan Java Lengkap](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Pelajari cara mengonversi workbook Excel menjadi file PDF menggunakan Aspose.Cells untuk Java dengan contoh kode lengkap. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/indonesian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..84dbbbedfe --- /dev/null +++ b/cells/indonesian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Cara membuat PDF dan menyimpan workbook sebagai PDF, mengekspor Excel + ke HTML, serta menggunakan fungsi expand dengan Aspose.Cells untuk Java. Kode langkah + demi langkah disertakan. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: id +og_description: Cara membuat PDF dari workbook menggunakan Aspose.Cells untuk Java. + Pelajari cara menyimpan workbook sebagai PDF, mengekspor Excel ke HTML, dan menggunakan + fungsi EXPAND. +og_title: Cara Membuat PDF dari Workbook – Tutorial Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Cara Membuat PDF dari Workbook – Panduan Java Lengkap +url: /id/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Membuat PDF dari Workbook – Panduan Java Lengkap + +Pernah bertanya-tanya **how to create PDF** langsung dari workbook Excel tanpa harus menggunakan konverter pihak ketiga? Anda tidak sendirian. Banyak pengembang mengalami kebuntuan ketika mereka membutuhkan ekspor PDF cepat, pratinjau HTML, atau rumus array canggih—semuanya dalam satu langkah. + +Dalam tutorial ini kami akan membahas satu program Java yang berdiri sendiri dan melakukan hal tersebut. Kami akan **save workbook as PDF**, menunjukkan cara **export Excel to HTML** sambil mempertahankan baris beku, dan mendemonstrasikan **use expand function** di dalam lembar kerja. Pada akhir tutorial Anda akan memiliki proyek yang dapat dijalankan dan dapat dimasukkan ke dalam build Maven atau Gradle mana pun. + +> **Pro tip:** Semua kode di bawah ini bekerja dengan Aspose.Cells 23.10 (atau lebih baru). Jika Anda menggunakan versi yang lebih lama, beberapa nama metode mungkin sedikit berbeda. + +--- + +## Prasyarat + +- **Java 17** (atau versi LTS apa pun) terinstal dan dikonfigurasi. +- **Aspose.Cells for Java** library. Tambahkan dependensi Maven berikut ke `pom.xml` Anda: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- IDE atau editor teks pilihan Anda (IntelliJ IDEA, VS Code, Eclipse…). + +Tidak ada API eksternal, tidak ada layanan web—hanya Java murni dan SDK Aspose.Cells. + +--- + +## Gambaran Umum Solusi + +Kami akan membagi implementasi menjadi **tujuh langkah logis**: + +1. Buat sebuah workbook dan demonstrasikan fungsi **EXPAND**. +2. Aktifkan font variation selectors dan **save the workbook as PDF**. +3. Ekspor workbook yang sama ke HTML sambil mempertahankan baris beku. +4. Gunakan Smart Marker dengan parameter `IF` untuk menyisipkan teks bersyarat. +5. Terapkan master‑detail Smart Marker untuk data hierarkis. +6. Muat file Markdown yang berisi gambar Base‑64‑encoded. +7. Konfigurasikan opsi GridJs untuk perataan dan border, lalu sisipkan data. + +Setiap langkah dibungkus dalam metode masing‑masing untuk menjaga metode `main` tetap rapi dan untuk mengilustrasikan **mengapa** kita melakukan apa yang kita lakukan, bukan hanya **apa** yang kita ketik. + +--- + +## Langkah 1 – Buat Workbook dan Gunakan Fungsi EXPAND + +Fungsi **EXPAND** adalah rumus dynamic‑array baru yang diperkenalkan di Office 365. Fungsi ini memungkinkan Anda menumpahkan rentang ke area yang lebih besar tanpa menyalin sel secara manual. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Mengapa ini penting:** +- `EXPAND` secara otomatis menambahkan spasi kosong pada hasil, yang sempurna ketika Anda kemudian **save workbook as PDF**—PDF akan menampilkan tabel bersih dan berbentuk persegi panjang. +- Memanggil `calculateFormula()` memastikan mesin rumus dijalankan sebelum kami mengekspor apa pun. + +--- + +## Langkah 2 – Aktifkan Font Variation Selectors dan **Save Workbook as PDF** + +Jika Anda perlu mendukung tipografi lanjutan (misalnya emoji atau CJK variation selectors), Anda harus mengaktifkan fitur ini **sebelum** menyimpan. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Poin penting:** Kata kunci utama **how to create pdf** dijawab di sini—dengan memanggil `workbook.save(..., SaveFormat.PDF)` setelah mengonfigurasi pengaturan. + +--- + +## Langkah 3 – **Export Excel to HTML** Sambil Mempertahankan Baris Beku + +Seringkali pemangku kepentingan meminta pratinjau web cepat. Aspose.Cells dapat mengekspor ke HTML, dan dengan `setPreserveFrozenRows(true)` kami mempertahankan pengalaman menggulir yang sama seperti di Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Mengapa ini penting:** Baris beku merupakan fitur kenyamanan penggunaan; tanpa mereka, baris header akan menghilang ketika pengguna menggulir ke bawah halaman. + +--- + +## Langkah 4 – Smart Marker dengan Parameter IF + +Smart Markers memungkinkan Anda menggabungkan data ke dalam template tanpa menulis loop. Parameter `if` menambahkan logika bersyarat langsung di dalam marker. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +PDF output akan menampilkan **“VIP Customer: Acme Corp”** karena `IsVIP` bernilai `true`. Ubah flag menjadi `false` dan Anda akan mendapatkan **“Regular Customer: Acme Corp”**—tanpa kode tambahan. + +--- + +## Langkah 5 – Master‑Detail Smart Marker Menggunakan Rentang Hierarkis + +Ketika Anda memiliki data induk‑anak (misalnya, pesanan dan item baris), marker master‑detail menghemat Anda dari penyisipan baris manual. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Apa yang Anda dapatkan:** Mesin memperluas baris master untuk setiap pesanan dan secara otomatis menempatkan baris detail di bawahnya—sempurna untuk faktur atau laporan pembelian. + +--- + +## Langkah 6 – Muat Dokumen Markdown dengan Gambar Base‑64 yang Disematkan + +Jika data sumber Anda berada dalam Markdown (umum dalam alur kerja dokumentasi), Aspose.Cells dapat merendernya langsung ke dalam workbook. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Catatan kasus tepi:** Jika string Base‑64 tidak valid, Aspose akan melewatkan gambar tetapi tetap memproses sisa dokumen—tanpa crash. + +--- + +## Langkah 7 – Konfigurasikan Opsi GridJs dan Sisipkan Data + +GridJs adalah grid JavaScript ringan yang dapat dirender oleh Aspose ke dalam HTML. Menyelaraskan angka dan menerapkan border meningkatkan keterbacaan. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Mengapa ini penting:** Penyelarasan yang tepat dan border membuat HTML yang dihasilkan tampak seperti spreadsheet yang rapi—berguna untuk dasbor. + +--- + +## Menggabungkan Semua – Metode `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/indonesian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/indonesian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..68044cdfc7 --- /dev/null +++ b/cells/indonesian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Pelajari cara mengekspor CSV dari workbook Java sambil mengatur digit + signifikan dan rentang ekspor ke CSV dalam satu panduan yang jelas. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: id +og_description: Kuasai cara mengekspor CSV di Java, mengatur digit signifikan, dan + mengekspor rentang ke CSV dengan kode praktis serta tips. +og_title: Cara Mengekspor CSV dengan Java – Panduan Lengkap Langkah demi Langkah +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Cara Mengekspor CSV dengan Java – Atur Digit Signifikan & Rentang Ekspor ke + CSV +url: /id/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Mengekspor CSV dengan Java – Atur Digit Signifikan & Ekspor Rentang ke CSV + +Pernah bertanya-tanya **cara mengekspor csv** dari workbook Java tanpa kehilangan presisi numerik? Mungkin Anda pernah mencoba `toString()` cepat dan berakhir dengan kekacauan kesalahan pembulatan. Itu adalah masalah umum, terutama ketika Anda perlu **mengatur digit signifikan** untuk data keuangan atau hasil ilmiah. + +Dalam tutorial ini Anda akan melihat contoh lengkap yang siap‑jalan yang menunjukkan **cara mengekspor csv**, cara **mengatur digit signifikan**, dan bahkan cara **mengekspor rentang ke csv** sambil menjaga data tetap rapi. Kami akan menelusuri setiap baris, menjelaskan *mengapa* di balik panggilan API, dan memberi Anda tips untuk menghindari jebakan umum. Tidak ada dokumen tambahan yang harus dicari—hanya solusi mandiri yang dapat Anda salin‑tempel hari ini. + +## Apa yang Akan Anda Pelajari + +- Buat workbook dan konfigurasikan presisi numerik dengan `setNumberSignificantDigits`. +- Ekspor rentang sel tertentu sebagai string CSV yang terformat rapi. +- Parse tanggal era Jepang menggunakan `DateTimeFormatInfo`. +- Hitung ulang formula sehingga hasil dynamic‑array tetap terbaru. +- Render tabel pivot menjadi gambar PNG. +- Gunakan Smart Marker untuk menyisipkan komentar dan akhirnya menyimpan workbook. + +Semua ini dilakukan dengan pustaka Aspose.Cells untuk Java, versi 23.12 (yang terbaru pada saat penulisan). Jika Anda memiliki JAR di classpath, Anda siap melanjutkan. + +--- + +## Langkah 1: Buat Workbook dan **Set Digit Signifikan** + +Sebelum kita dapat mengekspor apa pun, kita memerlukan objek workbook. Hal pertama yang sering diabaikan banyak pengembang adalah presisi numerik. Secara default Aspose.Cells menggunakan presisi double penuh, yang dapat menghasilkan string panjang dan sulit dibaca di CSV. Mengatur jumlah digit signifikan memangkas output sambil mempertahankan angka-angka terpenting. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Mengapa ini penting?** +Jika Anda mengekspor sel yang berisi `12345.6789` tanpa membatasi digit, CSV akan menampilkan nilai lengkap, membuat laporan berantakan. Dengan `setNumberSignificantDigits(5)`, sel yang sama menjadi `12346`, yang sering kali menjadi harapan pengguna bisnis. + +> **Tips pro:** Jika Anda memerlukan presisi berbeda per kolom, Anda dapat menerapkan `Style` khusus alih‑alih pengaturan global. + +--- + +## Langkah 2: **Ekspor Rentang ke CSV** – Format Penting + +Sekarang workbook sudah siap, mari ambil blok data berbentuk persegi panjang dan ubah menjadi string CSV. Kami juga akan menerapkan format dua desimal (`0.00`) sehingga setiap angka teratur rapi. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Pemanggilan `exportDataTable` melakukan pekerjaan berat. Karena kami mengatur `exportAsString`, metode mengembalikan `String` yang dapat kami cetak, tulis ke file, atau kirim melalui HTTP. Langkah **ekspor rentang ke csv** juga menghormati `setNumberSignificantDigits` global yang kami definisikan sebelumnya, sehingga angka dibulatkan menjadi lima digit signifikan *dan* ditampilkan dengan dua tempat desimal. + +**Output yang Diharapkan (dipotong):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Pertanyaan umum:** *Bagaimana jika saya membutuhkan pemisah berbeda, seperti titik koma?* +> Cukup panggil `exportOptions.setSeparator(";")` sebelum mengekspor. + +--- + +## Langkah 3: Parse Tanggal Era Jepang (Utilitas Bonus) + +Meskipun tidak langsung terkait dengan CSV, banyak lembar Excel berisi tanggal spesifik locale. Berikut cara mengubah string era Jepang seperti `"R3/04/01"` menjadi objek `DateTime` standar. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Mengapa menyertakan ini?** +Jika ekspor CSV Anda memberi makan sistem hilir yang mengharapkan tanggal ISO‑8601, Anda perlu menormalkan format lokal terlebih dahulu. Potongan kode ini menunjukkan *bagaimana* dan *mengapa* dalam satu tempat. + +--- + +## Langkah 4: Hitung Ulang Formula – Jaga Hasil Dynamic‑Array Tetap Segar + +Jika workbook Anda berisi formula (mis., `=SUM(A1:A10)`), mereka tidak akan otomatis diperbarui setelah kami mengubah pengaturan. Memanggil `calculateFormula` memaksa perhitungan ulang penuh, memastikan CSV yang diekspor mencerminkan nilai terbaru. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Waspada:** Workbook besar dapat memakan waktu yang cukup lama untuk dihitung ulang. Untuk skenario yang kritis terhadap kinerja, pertimbangkan `calculateFormula(FormulaCalculationOptions)` untuk membatasi lingkup. + +--- + +## Langkah 5: Render Tabel Pivot Pertama ke Gambar PNG + +Terkadang Anda membutuhkan snapshot visual dari tabel pivot bersamaan dengan CSV. Kode berikut merender tabel pivot pertama pada lembar kerja pertama ke file PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** Jika workbook belum berisi pivot, Anda dapat membuatnya secara programatis—lihat dokumentasi Aspose.Cells untuk contoh singkat. + +--- + +## Langkah 6: Gunakan Smart Marker untuk Menulis Komentar dan Menyimpan Workbook + +Smart Marker memungkinkan Anda menyisipkan konten dinamis ke sel menggunakan placeholder sederhana. Di sini kami menulis komentar seperti “Reviewed by QA” ke sel yang ditentukan dan kemudian menyimpan workbook. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Placeholder `${Comment}` dapat ditempatkan di mana saja dalam lembar (mis., sel `A1`). Saat `apply` dijalankan, placeholder digantikan dengan nilai yang diberikan. + +> **Hasil:** Anda akan menemukan file `output/commented.xlsx` yang berisi komentar, serta `pivot.png` yang sebelumnya dihasilkan dan string CSV yang dicetak ke konsol. + +--- + +## Contoh Kerja Lengkap + +Menggabungkan semuanya, berikut program lengkap yang dapat Anda kompilasi dan jalankan: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Output Konsol yang Diharapkan + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Anda juga akan menemukan `output/pivot.png` (jika pivot ada) dan `output/commented.xlsx` di disk. + +--- + +## Pertanyaan yang Sering Diajukan & Kasus Tepi + +- **Bisakah saya mengekspor ke file CSV fisik secara langsung?** + Ya. Ganti blok `exportAsString` dengan `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Bagaimana jika lembar saya menggunakan locale berbeda untuk angka?** + Atur `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` sebelum mengekspor; ini akan menukar + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/indonesian/java/excel-pivot-tables/_index.md b/cells/indonesian/java/excel-pivot-tables/_index.md index d866c8a7d1..44fb1dcffa 100644 --- a/cells/indonesian/java/excel-pivot-tables/_index.md +++ b/cells/indonesian/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Pelajari cara membuat kolom kalkulasi di Tabel Pivot menggunakan Aspose.Cells un Pelajari cara menyegarkan data Tabel Pivot di Aspose.Cells untuk Java. Jaga data Anda tetap terkini dengan mudah. ### [Menyesuaikan Gaya Tabel Pivot](./customizing-pivot-table-styles/) Pelajari cara menyesuaikan gaya tabel pivot di Aspose.Cells untuk API Java. Buat tabel pivot yang menarik secara visual dengan mudah. +### [Menyalin Tabel Pivot di Java – Pertahankan, Ekspor ke PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Pelajari cara menyalin Tabel Pivot di Aspose.Cells untuk Java, mempertahankan formatnya, dan mengekspor ke file PPTX. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/indonesian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..4f7c07e2c8 --- /dev/null +++ b/cells/indonesian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-03-01 +description: Salin tabel pivot di Java sambil mempertahankan pivot, kemudian ekspor + Excel ke PPTX, nonaktifkan AutoFilter Excel, dan gunakan Smart Marker untuk array + JSON – panduan langkah demi langkah lengkap. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: id +og_description: Salin tabel pivot di Java, pertahankan definisi pivot, ekspor ke PPTX, + nonaktifkan AutoFilter, dan gunakan Smart Marker – panduan lengkap untuk pengembang. +og_title: Salin Tabel Pivot di Java – Pertahankan, Ekspor ke PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Salin Tabel Pivot di Java – Pertahankan, Ekspor ke PPTX +url: /id/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Salin Tabel Pivot di Java – Pertahankan, Ekspor ke PPTX + +Pernahkah Anda perlu **menyalin tabel pivot** dari satu workbook ke workbook lain tanpa kehilangan definisi pivot yang mendasarinya? Anda bukan satu-satunya yang kebingungan tentang hal ini. Dalam banyak proyek dunia nyata, Anda akan menemukan diri Anda memindahkan data, dan hal terakhir yang Anda inginkan adalah pivot yang rusak yang menghasilkan error saat runtime. + +Dalam tutorial ini kami akan membahas solusi lengkap yang tidak hanya **menyalin tabel pivot** tetapi juga menunjukkan cara **mempertahankan tabel pivot** saat menyalin, **mengekspor Excel ke PPTX**, **menonaktifkan Excel AutoFilter**, dan **menggunakan smart marker** untuk menempatkan array JSON ke dalam satu sel. Pada akhir tutorial Anda akan memiliki satu program Java yang dapat dijalankan yang mencakup keempat skenario. + +## Prasyarat + +- Java 8 atau lebih baru (kode ini juga bekerja dengan Java 11) +- Perpustakaan Aspose.Cells untuk Java (versi 23.9 atau lebih baru) – Anda dapat mengunduhnya dari Maven Central +- Familiaritas dasar dengan konsep Excel seperti tabel pivot, tabel, dan kotak teks + +Jika Anda belum memiliki JAR Aspose.Cells, tambahkan ini ke `pom.xml` Anda: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Sekarang, mari kita mulai. + +## Langkah 1: Salin Tabel Pivot – Mempertahankan Definisi Pivot + +Ketika Anda hanya menyalin rentang sel yang berisi tabel pivot, metadata pivot sering tertinggal. Aspose.Cells memberikan cara yang rapi untuk mempertahankan definisi tetap dengan menggunakan `copyRange` dengan instance `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Mengapa ini berhasil:** `CopyOptions` memberi tahu Aspose.Cells untuk membawa semua, termasuk cache pivot dan pengaturan field. Tanpa itu, Anda akan mendapatkan nilai biasa dan kehilangan kemampuan untuk menyegarkan pivot. + +**Kasus khusus:** Jika pivot sumber Anda mencakup lebih dari `A1:G20` yang dikodekan secara tetap, sesuaikan rentangnya atau gunakan `sourceSheet.getPivotTables().get(0).getDataRange()` untuk mengambilnya secara dinamis. + +![Contoh menyalin tabel pivot](image.png "Menyalin tabel pivot di Java") + +*Teks alt gambar: diagram menyalin tabel pivot di Java* + +## Langkah 2: Ekspor Worksheet dengan TextBox yang Dapat Diedit ke PPTX + +Seringkali Anda perlu mengubah lembar Excel menjadi slide PowerPoint—pikirkan dasbor mingguan yang harus dipresentasikan. Aspose.Cells dapat langsung menyimpan worksheet sebagai file PPTX sambil mempertahankan bentuk seperti text box. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Apa yang terjadi:** Metode `save` dengan `SaveFormat.PPTX` mengonversi seluruh sheet, termasuk TextBox yang dapat diedit, menjadi slide PowerPoint. Teks di dalam kotak tetap dapat diedit saat Anda membuka PPTX di PowerPoint. + +**Tip:** Jika Anda memiliki beberapa sheet dan hanya menginginkan satu sheet tertentu, panggil `wb.getWorksheets().removeAt(index)` untuk yang lainnya sebelum menyimpan. + +## Langkah 3: Nonaktifkan Excel AutoFilter dari Tabel + +AutoFilter berguna bagi pengguna akhir, tetapi terkadang Anda perlu mematikannya secara programatis—mungkin sebelum mengekspor data atau saat menghasilkan laporan bersih. Berikut cara **menonaktifkan excel autofilter** pada tabel Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Mengapa Anda mungkin memerlukannya:** Mengekspor ke format yang tidak mendukung AutoFilter (seperti CSV atau PDF) dapat menyebabkan ikon filter muncul. Menonaktifkannya memastikan output yang bersih. + +**Kesalahan umum:** Jika sheet tidak memiliki tabel, `getTables().get(0)` akan melempar `IndexOutOfBoundsException`. Selalu periksa `sheet.getTables().size()` terlebih dahulu dalam kode produksi. + +## Langkah 4: Gunakan Smart Marker – Sisipkan Array JSON sebagai Nilai Sel Tunggal + +Smart Marker adalah mesin templating Aspose. Salah satu trik berguna adalah memperlakukan seluruh array JSON sebagai nilai sel tunggal, yang sempurna untuk pencatatan atau mengirim data terstruktur ke downstream. Mari **gunakan smart marker** untuk mencapai ini. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Cara kerjanya:** Penanda `${json}` dalam workbook digantikan oleh seluruh string JSON karena kami mengatur `ArrayAsSingle`. Tanpa opsi ini, Aspose akan mencoba memperluas setiap elemen array ke baris terpisah. + +**Variasi:** Jika Anda membutuhkan array dibagi ke beberapa baris, cukup hilangkan `ArrayAsSingle` dan biarkan Smart Marker menangani ekspansi secara otomatis. + +## Contoh Kerja Lengkap – Semua Langkah Digabungkan + +Berikut adalah satu kelas Java yang menggabungkan semua operasi yang telah kami bahas. Jalankan sebagai metode `main` biasa; cukup sesuaikan jalur file agar sesuai dengan lingkungan Anda. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/indonesian/java/getting-started/_index.md b/cells/indonesian/java/getting-started/_index.md index e6a142b3b6..771394d2fb 100644 --- a/cells/indonesian/java/getting-started/_index.md +++ b/cells/indonesian/java/getting-started/_index.md @@ -38,6 +38,9 @@ Tutorial kode untuk Aspose.Words Java ### [Pengaturan dan Verifikasi Lisensi Java Aspose.Cells: Panduan Lengkap](./aspose-cells-java-license-setup-guide/) Kuasai pengaturan dan verifikasi lisensi Java Aspose.Cells Anda dengan panduan lengkap kami. Pastikan akses penuh ke fitur-fitur canggih dengan mudah. +### [Membuat Buku Kerja Berlisensi – Panduan Lengkap Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Pelajari cara membuat buku kerja berlisensi menggunakan Aspose.Cells untuk Java, termasuk pengaturan lisensi dan penyimpanan file. + ### [Aspose.Cells untuk Java: Cara Membuat dan Memformat Buku Kerja Excel Secara Efisien](./aspose-cells-java-workbook-creation-guide/) Pelajari cara mengotomatiskan pembuatan dan pemformatan buku kerja Excel di Java dengan Aspose.Cells. Panduan ini mencakup teknik penyiapan, manipulasi buku kerja, dan pemformatan sel. diff --git a/cells/indonesian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/indonesian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..eaacea987a --- /dev/null +++ b/cells/indonesian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Buat workbook berlisensi dengan cepat menggunakan Aspose.Cells Java. + Pelajari cara melisensikan Aspose, mengatur lisensi Aspose Java, dan membaca Excel + dengan Aspose dalam satu tutorial. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: id +og_description: Buat workbook berlisensi menggunakan Aspose.Cells Java. Panduan ini + menunjukkan cara melisensikan Aspose, mengatur lisensi Aspose Java, dan membaca + file Excel dengan Aspose. +og_title: Buat Workbook Berlisensi – Tutorial Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Buat Workbook Berlisensi – Panduan Lengkap Aspose.Cells Java +url: /id/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat Workbook Berlisensi – Panduan Lengkap Aspose.Cells Java + +Pernah bertanya-tanya bagaimana **membuat workbook berlisensi** tanpa mengalami error lisensi? Anda tidak sendirian—banyak pengembang menemui hal ini saat pertama kali menggunakan Aspose.Cells. Kabar baiknya? Solusinya sederhana, dan panduan ini akan memandu Anda langkah demi langkah. + +Dalam beberapa menit saja Anda akan mengetahui **cara melisensikan Aspose**, tepat **menyetel lisensi Aspose Java**, dan Anda akan siap **membaca Excel dengan Aspose** untuk tugas dunia nyata seperti pelaporan atau migrasi data. Tanpa referensi yang samar, hanya contoh lengkap yang dapat dijalankan yang dapat Anda salin‑tempel hari ini. + +--- + +## Apa yang Anda Butuhkan + +- Java 17 atau lebih baru (rilis stabil terbaru paling cocok) +- Aspose.Cells untuk Java 23.9 (atau versi terbaru lainnya) +- File lisensi Aspose.Cells Anda (`Aspose.Cells.Java.lic`) +- IDE atau alat build yang Anda kuasai (Maven, Gradle, atau `javac` biasa) + +Jika ada yang belum familiar, jangan khawatir—setiap item dibahas dalam langkah‑langkah berikut. + +--- + +## Langkah 1: Tambahkan Dependensi Aspose.Cells + +Sebelum Anda dapat **membuat workbook berlisensi**, perpustakaan harus berada di classpath Anda. Dengan Maven tampilannya seperti ini: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Untuk Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Tips pro:** Jika Anda menggunakan kompilasi `javac` biasa, cukup letakkan JAR di folder `libs/` dan tambahkan ke flag `-cp`. + +--- + +## Langkah 2: **Cara Melisensikan Aspose** – Muat File Lisensi + +Saat Anda memanggil API Aspose tanpa lisensi, akan muncul watermark pada file Excel yang dihasilkan. Untuk menghindarinya, Anda perlu **menyetel lisensi Aspose Java** di awal program. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Mengapa ini penting:** Objek `License` memberi tahu Aspose untuk melewati mode evaluasi, menghapus watermark dan membuka seluruh fitur API. Jika path salah, akan dilemparkan exception—sehingga Anda langsung mengetahuinya. + +--- + +## Langkah 3: **Buat Workbook Berlisensi** – Bangun File Excel + +Setelah lisensi diterapkan, Anda dapat dengan aman **membuat workbook berlisensi**. Berikut contoh minimal namun lengkap yang juga memperlihatkan **membaca Excel dengan Aspose** nanti. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Apa yang dilakukan kode ini:** + +1. Memanggil utilitas dari **Langkah 2** untuk **menyetel lisensi Aspose Java**. +2. Membuat instance `Workbook` baru – inti dari operasi **buat workbook berlisensi**. +3. Menulis tabel kecil, menyimpannya sebagai XLSX, lalu langsung membacanya kembali untuk membuktikan bahwa **membaca Excel dengan Aspose** berfungsi tanpa watermark. + +Menjalankan program akan mencetak: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Jika Anda membuka file yang dihasilkan, akan terlihat spreadsheet bersih tanpa watermark Aspose—bukti lisensi aktif. + +--- + +## Langkah 4: Kesalahan Umum & Kasus Pinggiran + +| Masalah | Mengapa Terjadi | Solusi | +|-------|----------------|-----| +| **LicenseNotFoundException** | Path salah atau file tidak ada. | Gunakan path absolut atau muat file dari resources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR Aspose tidak ada di classpath. | Periksa dependensi Maven/Gradle atau tambahkan JAR secara manual. | +| **Penyimpanan gagal di Windows** | Folder tujuan tidak ada. | Pastikan direktori `output/` dibuat (`new File("output").mkdirs();`). | +| **Membaca file .xls lama** | `SaveFormat` default mungkin tidak mendukung format lama. | Gunakan `SaveFormat.XLS` saat menyimpan, atau biarkan Aspose mendeteksi otomatis saat memuat. | + +> **Perhatikan:** Jika Anda men-deploy ke server, file lisensi sebaiknya berada di luar root web‑app untuk menghindari paparan tidak sengaja. + +--- + +## Langkah 5: Verifikasi Lisensi Secara Programatis (Opsional) + +Kadang Anda ingin memastikan lisensi telah dimuat dengan benar sebelum melakukan operasi berat. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Anda dapat memanggil `LicenseChecker.isLicensed("...")` dan menghentikan proses jika mengembalikan `false`. Ini menambah lapisan keamanan ekstra, terutama dalam pipeline CI/CD. + +--- + +## Gambaran Visual + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Teks alt gambar:* **create licensed workbook diagram** – menggambarkan langkah‑langkah menerapkan lisensi Aspose, membuat workbook, dan membaca Excel. + +--- + +## Kesimpulan + +Anda kini memiliki solusi lengkap, end‑to‑end untuk **membuat workbook berlisensi** menggunakan Aspose.Cells untuk Java. Kami membahas **cara melisensikan Aspose**, memperlihatkan kode tepat **menyetel lisensi Aspose Java**, dan memberi Anda sekilas cepat tentang **membaca Excel dengan Aspose** untuk memastikan semuanya berjalan. + +Selanjutnya, Anda mungkin ingin menjelajahi: + +- Styling sel (font, warna) – cocok untuk laporan profesional. +- Ekspor ke CSV atau PDF – Aspose mendukung banyak format secara langsung. +- Bekerja dengan dataset besar – gunakan `WorkbookDesigner` untuk templating. + +Silakan bereksperimen, dan jika menemukan kendala, tinggalkan komentar di bawah. Selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/indonesian/java/ole-objects-embedded-content/_index.md b/cells/indonesian/java/ole-objects-embedded-content/_index.md index 6e91fe1053..779fefc759 100644 --- a/cells/indonesian/java/ole-objects-embedded-content/_index.md +++ b/cells/indonesian/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Pelajari cara mengekstrak GUID secara efisien dari objek PowerPoint yang tertana ### [Hapus Kontrol ActiveX dari Excel dengan Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Tutorial kode untuk Aspose.Words Java - +### [Cara Menyematkan Font – Panduan Lengkap untuk Ekspor HTML, XPS, dan OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Pelajari cara menyematkan font dalam dokumen saat mengekspor ke HTML, XPS, atau OLE menggunakan Aspose.Cells untuk Java. ## Sumber Daya Tambahan diff --git a/cells/indonesian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/indonesian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..88dfd95c8c --- /dev/null +++ b/cells/indonesian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: Pelajari cara menyematkan font dalam HTML dan format lainnya. Tutorial + langkah demi langkah yang mencakup menyematkan font dalam HTML, mengonversi Excel + ke HTML, cara mengekspor OLE, dan mengonversi Excel ke XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: id +og_description: Cara menyematkan font dalam ekspor HTML, XPS, dan OLE. Pelajari alur + kerja lengkap, lihat kode Java yang dapat dijalankan, dan kuasai penyematan font + dalam HTML untuk konversi Excel. +og_title: Cara Menyematkan Font – Tutorial Java Lengkap +tags: +- Aspose.Cells +- Java +- Document Export +title: Cara Menyematkan Font – Panduan Lengkap untuk Ekspor HTML, XPS, dan OLE +url: /id/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menyematkan Font – Panduan Lengkap untuk HTML, XPS, dan Ekspor OLE + +Pernah bertanya-tanya **how to embed fonts** ketika Anda mengubah workbook Excel menjadi halaman web atau dokumen yang dapat dicetak? Anda tidak sendirian. Banyak pengembang mengalami kendala ketika output terlihat baik di mesin mereka tetapi rusak di mesin lain karena font yang diperlukan tidak ada. + +Dalam tutorial ini kami akan membahas skenario dunia nyata menggunakan Aspose.Cells for Java: kami akan menyematkan font dalam HTML, mempertahankan selector variasi emoji saat mengonversi ke XPS, dan bahkan menjaga objek OLE tetap dapat diedit saat mengekspor ke PPTX. Pada akhir tutorial Anda akan memiliki solusi solid yang dapat disalin‑tempel yang menjawab “how to embed fonts” dan juga menyentuh **embed fonts in html**, **convert excel to html**, **how to export ole**, dan **convert excel to xps**. + +## Prasyarat + +- Java 17 (atau JDK terbaru apa pun) +- Aspose.Cells for Java 25.x atau lebih baru +- IDE pengembangan (IntelliJ IDEA, Eclipse, atau VS Code) +- Familiaritas dasar dengan struktur data Excel + +Tidak diperlukan layanan eksternal—semua berjalan secara lokal. + +## Ikhtisar Solusi + +1. **Buat workbook** dan gunakan fungsi `WRAPCOLS` untuk mengubah rentang vertikal menjadi tata letak tiga kolom. +2. **Simpan workbook sebagai XPS** sambil mengaktifkan font variation selectors sehingga emoji tetap utuh. +3. **Ekspor ke HTML** dengan font yang disematkan, menjamin halaman terlihat sama di mana saja. +4. **Ekspor workbook yang berisi objek OLE ke PPTX**, menjaga kemampuan edit. +5. **Terapkan template Smart Marker** yang menunjukkan pengikatan data master‑detail. + +Setiap langkah dipisahkan dalam bagian H2 masing‑masing, membuat panduan mudah di-skim baik untuk mesin pencari maupun asisten AI. + +![Ilustrasi cara menyematkan font](image.png "cara menyematkan font") + +*Teks alt gambar: diagram cara menyematkan font yang menunjukkan alur kerja dari Excel ke HTML, XPS, dan PPTX.* + +--- + +## Langkah 1 – Buat Workbook dan Gunakan WRAPCOLS (Mengapa Ini Penting untuk embed fonts in html) + +Sebelum kita dapat membahas penyematan font, kita membutuhkan workbook yang benar‑benar berisi data. Fungsi `WRAPCOLS` adalah cara praktis untuk membagi satu kolom menjadi beberapa kolom, yang sering membuat HTML akhir lebih mudah dibaca. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Mengapa langkah ini?** +Pemanggilan `WRAPCOLS` menghasilkan rentang multi‑kolom yang kemudian muncul di HTML sebagai tabel. Ketika kita kemudian **embed fonts in html**, gaya tabel akan bergantung pada font yang kita sematkan, memastikan rendering yang konsisten di semua peramban. + +--- + +## Langkah 2 – Simpan Workbook sebagai XPS Sambil Mempertahankan Emoji (convert excel to xps) + +Jika Anda membutuhkan format siap cetak, XPS adalah pilihan yang solid. Namun, dokumen modern sering berisi emoji atau simbol yang menggunakan variation selectors. Mengaktifkan `EnableFontVariationSelectors` memastikan karakter‑karakter tersebut tetap ada setelah konversi. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Apa yang Anda dapatkan:** +File XPS yang menampilkan setiap emoji yang disematkan persis seperti di workbook sumber. Ini memenuhi kebutuhan **convert excel to xps** dan menunjukkan bahwa penanganan font tidak terbatas pada HTML. + +--- + +## Langkah 3 – Ekspor ke HTML dengan Font yang Disematkan (how to embed fonts & embed fonts in html) + +Sekarang kita sampai pada inti tutorial: **how to embed fonts** saat mengonversi Excel ke HTML. Aspose.Cells memungkinkan kita menyematkan font langsung ke dalam file HTML yang dihasilkan, menghilangkan kebutuhan akan file font eksternal. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Cara kerjanya:** +`setEmbedFonts(true)` memberi tahu renderer untuk membaca file font yang digunakan dalam workbook dan menyematkannya sebagai aturan `@font-face` yang di‑encode Base64 di dalam tag ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Perhatikan aturan `@font-face`—ini adalah jawaban konkret untuk **embed fonts in html**. + +--- + +## Langkah 4 – Ekspor Workbook yang Berisi Objek OLE ke PPTX (how to export ole) + +Banyak laporan bisnis menyematkan dokumen Word, PDF, atau lembar Excel lain sebagai objek OLE. Saat Anda mengekspor workbook tersebut ke PowerPoint, seringkali kemampuan mengedit objek itu hilang. Aspose.Cells mempertahankan kemampuan edit secara langsung. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Mengapa ini penting:** +Jika Anda mencari **how to export ole**, potongan kode ini menunjukkan pemanggilan API yang tepat. Slide PowerPoint yang dihasilkan berisi objek OLE sebagai komponen hidup yang dapat diedit dengan double‑click—tanpa kebutuhan pemrosesan lanjutan. + +--- + +## Langkah 5 – Terapkan Template Smart Marker (master‑detail) dan Selesaikan Demo + +Smart Markers memungkinkan Anda mengikat sumber data (Map, JSON, DataTable) langsung ke template Excel. Berikut contoh minimal yang mencetak baris master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Apa yang Anda lihat:** +Workbook baru (`smartMarkerResult.xlsx`) di mana placeholder template digantikan dengan data. Langkah ini tidak langsung tentang font, tetapi melengkapi tutorial dengan menunjukkan alur kerja pelaporan tipikal yang sering mendahului ekspor **embed fonts in html**. + +--- + +## Kesalahan Umum & Tips Pro (Menjamin Penyematan Font yang Berhasil) + +| Masalah | Mengapa Terjadi | Solusi | +|-------|----------------|-----| +| Font tidak ada di file HTML | Workbook menggunakan font sistem yang tidak terpasang di server. | Gunakan `Workbook.getSettings().setDefaultFont("Arial")` sebelum memuat data, atau sematkan file font yang diperlukan secara manual. | +| HTML output terlalu besar | Menyematkan banyak font besar memperbesar ukuran file. | Batasi penyematan hanya pada font yang benar‑benar Anda gunakan: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji menghilang setelah konversi XPS | Variation selectors dihapus secara default. | Aktifkan `settings.setEnableFontVariationSelectors(true)` seperti yang ditunjukkan pada Langkah 2. | +| Objek OLE menjadi gambar statis di PPTX | Workbook sumber disimpan dengan `setSuppressOLEObjects(true)`. | Pastikan Anda **tidak** menekan (suppress) objek OLE saat menyimpan ke PPTX. | + +--- + +## Memverifikasi Hasil + +1. Buka `embeddedFonts.html` di Chrome/Firefox. Tabel harus ditampilkan menggunakan font yang disematkan (misalnya Arial) meskipun font tersebut tidak terpasang di mesin. +2. Buka `withVariations.xps` di Windows XPS Viewer. Emoji seperti 👍 harus ditampilkan dengan benar. +3. Buka `oleEditable.pptx` di PowerPoint. Klik ganda pada bentuk OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/italian/java/excel-import-export/_index.md b/cells/italian/java/excel-import-export/_index.md index e42589fb88..5660f8534a 100644 --- a/cells/italian/java/excel-import-export/_index.md +++ b/cells/italian/java/excel-import-export/_index.md @@ -22,7 +22,7 @@ Nel mondo della manipolazione dei dati, la capacità di importare ed esportare f ## Tutorial passo passo per sviluppatori Java: -nostri tutorial completi ti guideranno attraverso il complesso processo di importazione ed esportazione in Excel utilizzando Aspose.Cells per Java. Che tu sia un principiante o uno sviluppatore Java esperto, le nostre guide passo passo sono progettate per garantirti l'acquisizione delle competenze essenziali. Imparerai come importare dati in modo efficiente in file Excel ed esportarli dalle cartelle di lavoro Excel con precisione e facilità. +nostri tutorial completi ti guideranno attraverso il complesso processo di importazione ed esportazione in Excel utilizzando Aspose.Cells per Java. Che tu sia un principiante o un sviluppatore Java esperto, le nostre guide passo passo sono progettate per garantirti l'acquisizione delle competenze essenziali. Imparerai come importare dati in modo efficiente in file Excel ed esportarli dalle cartelle di lavoro Excel con precisione e facilità. ## Padroneggiare la gestione di Excel oggi: @@ -37,6 +37,8 @@ Sfrutta il potenziale dei metodi di esportazione dati Excel utilizzando Aspose.C Scopri come esportare dati in formato CSV utilizzando Aspose.Cells per Java. Guida dettagliata con codice sorgente per un'esportazione CSV senza problemi. ### [Esportazione di Excel in PDF](./exporting-excel-to-pdf/) Scopri come esportare file Excel in PDF senza sforzo utilizzando Aspose.Cells per Java. La nostra guida passo passo semplifica il processo. Inizia subito a convertire! +### [Come creare PDF da una cartella di lavoro – Guida completa Java](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Scopri come creare PDF da una cartella di lavoro utilizzando Aspose.Cells per Java. Guida passo passo con esempi di codice. ### [Esportazione da Excel a XML Java](./export-excel-to-xml-java/) Scopri come esportare Excel in XML in Java con Aspose.Cells per Java. Guida passo passo con codice sorgente per una conversione dati fluida. ### [Importazione dati da Excel](./data-import-from-excel/) @@ -47,6 +49,8 @@ Scopri come esportare dati Excel in JSON utilizzando Aspose.Cells per Java. Segu Scopri come implementare la convalida dei dati di importazione Excel utilizzando Aspose.Cells per Java con questa guida completa passo passo. Garantisci l'accuratezza dei dati e migliora l'esperienza utente. ### [Esporta Excel in HTML Java](./export-excel-to-html-java/) Scopri come esportare Excel in HTML in Java utilizzando Aspose.Cells per Java. Segui questa guida passo passo con codice sorgente per convertire i tuoi file Excel in HTML senza problemi. +### [Come esportare CSV con Java – Impostare le cifre significative e l'intervallo di esportazione in CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Scopri come esportare dati CSV con Aspose.Cells per Java impostando le cifre significative e limitando l'intervallo di esportazione. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/italian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..b0e589133c --- /dev/null +++ b/cells/italian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Come creare PDF e salvare la cartella di lavoro come PDF, esportare Excel + in HTML e utilizzare la funzione expand con Aspose.Cells per Java. Codice passo‑passo + incluso. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: it +og_description: Come creare un PDF da una cartella di lavoro usando Aspose.Cells per + Java. Impara a salvare la cartella di lavoro come PDF, esportare Excel in HTML e + utilizzare la funzione EXPAND. +og_title: Come creare PDF da una cartella di lavoro – Tutorial Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Come creare un PDF da una cartella di lavoro – Guida completa Java +url: /it/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come creare PDF da una cartella di lavoro – Guida completa Java + +Ti sei mai chiesto **come creare PDF** direttamente da una cartella di lavoro Excel senza dover ricorrere a convertitori di terze parti? Non sei l'unico. Molti sviluppatori si trovano in difficoltà quando hanno bisogno di un’esportazione rapida in PDF, di un’anteprima HTML o di formule di matrice avanzate—tutto in un unico passaggio. + +In questo tutorial vedremo passo passo un programma Java autonomo che fa esattamente questo. **Salveremo la cartella di lavoro come PDF**, ti mostreremo come **esportare Excel in HTML** mantenendo le righe bloccate, e dimostreremo l’**uso della funzione EXPAND** all’interno di un foglio. Alla fine avrai un progetto eseguibile da inserire in qualsiasi build Maven o Gradle. + +> **Consiglio:** tutto il codice qui sotto funziona con Aspose.Cells 23.10 (o versioni successive). Se utilizzi una versione più vecchia, alcuni nomi di metodo potrebbero differire leggermente. + +--- + +## Prerequisiti + +- **Java 17** (o qualsiasi versione LTS) installata e configurata. +- Libreria **Aspose.Cells for Java**. Aggiungi la seguente dipendenza Maven al tuo `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Un IDE o un editor di testo a tua scelta (IntelliJ IDEA, VS Code, Eclipse…). + +Nessuna API esterna, nessun servizio web—solo Java puro e l'SDK Aspose.Cells. + +--- + +## Panoramica della soluzione + +Divideremo l’implementazione in **sette passaggi logici**: + +1. Creare una cartella di lavoro e dimostrare la funzione **EXPAND**. +2. Abilitare i selettori di variazione dei caratteri e **salvare la cartella di lavoro come PDF**. +3. Esportare la stessa cartella di lavoro in HTML mantenendo le righe bloccate. +4. Utilizzare uno Smart Marker con un parametro `IF` per inserire testo condizionale. +5. Applicare uno Smart Marker master‑detail per dati gerarchici. +6. Caricare un file Markdown che contiene immagini codificate in Base‑64. +7. Configurare le opzioni GridJs per allineamento e bordi, quindi inserire i dati. + +Ogni passaggio è racchiuso nel proprio metodo per mantenere ordinato il metodo `main` e per illustrare **perché** facciamo ciò che facciamo, non solo **cosa** digitiamo. + +--- + +## Passo 1 – Creare una cartella di lavoro e usare la funzione EXPAND + +La funzione **EXPAND** è una nuova formula di matrice dinamica introdotta in Office 365. Consente di “versare” un intervallo in un’area più ampia senza copiare manualmente le celle. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Perché è importante:** +- `EXPAND` aggiunge automaticamente spazi vuoti al risultato, il che è perfetto quando in seguito **salvi la cartella di lavoro come PDF**—il PDF mostrerà una tabella pulita e rettangolare. +- Chiamare `calculateFormula()` garantisce che il motore delle formule venga eseguito prima di esportare qualsiasi cosa. + +--- + +## Passo 2 – Abilitare i selettori di variazione dei caratteri e **salvare la cartella di lavoro come PDF** + +Se devi supportare tipografia avanzata (ad esempio emoji o selettori di variazione CJK), devi attivare la funzionalità **prima** di salvare. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Punto chiave:** La domanda principale **how to create pdf** trova risposta qui—chiamando `workbook.save(..., SaveFormat.PDF)` dopo aver configurato le impostazioni. + +--- + +## Passo 3 – **Esportare Excel in HTML** mantenendo le righe bloccate + +Spesso gli stakeholder richiedono una rapida anteprima web. Aspose.Cells può esportare in HTML e, con `setPreserveFrozenRows(true)`, manteniamo la stessa esperienza di scorrimento di Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Perché ti interessa:** Le righe bloccate sono una comodità di usabilità; senza di esse, le righe di intestazione scompaiono quando l’utente scorre la pagina verso il basso. + +--- + +## Passo 4 – Smart Marker con parametro IF + +Gli Smart Marker ti permettono di unire dati in un modello senza scrivere cicli. Il parametro `if` aggiunge logica condizionale direttamente all’interno del marker. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Il PDF generato conterrà **“VIP Customer: Acme Corp”** perché `IsVIP` è `true`. Cambia il flag a `false` e otterrai **“Regular Customer: Acme Corp”**—nessun codice aggiuntivo necessario. + +--- + +## Passo 5 – Smart Marker master‑detail usando un intervallo gerarchico + +Quando hai dati padre‑figlio (ad esempio ordini e righe d’ordine), un marker master‑detail ti salva dall’inserimento manuale delle righe. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Cosa ottieni:** Il motore espande le righe master per ogni ordine e annida automaticamente le righe di dettaglio sotto—perfetto per fatture o report di acquisto. + +--- + +## Passo 6 – Caricare un documento Markdown con immagini Base‑64 incorporate + +Se i tuoi dati sorgente sono in Markdown (comune nei flussi di documentazione), Aspose.Cells può renderizzarli direttamente in una cartella di lavoro. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Nota caso limite:** Se la stringa Base‑64 è malformata, Aspose ignorerà l’immagine ma continuerà a elaborare il resto del documento—senza crash. + +--- + +## Passo 7 – Configurare le opzioni GridJs e inserire i dati + +GridJs è una griglia JavaScript leggera che Aspose può renderizzare in HTML. Allineare i numeri e applicare i bordi migliora la leggibilità. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Perché è importante:** Un corretto allineamento e bordi rendono l’HTML generato simile a un foglio di calcolo rifinito—utile per dashboard. + +--- + +## Mettere tutto insieme – Il metodo `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/italian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/italian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..33d341d682 --- /dev/null +++ b/cells/italian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Scopri come esportare CSV da una cartella di lavoro Java impostando le + cifre significative e l'intervallo di esportazione in CSV in una guida unica e chiara. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: it +og_description: Impara a esportare CSV in Java, impostare le cifre significative e + esportare un intervallo in CSV con codice pratico e consigli. +og_title: Come esportare CSV con Java – Guida completa passo passo +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Come esportare CSV con Java – Impostare le cifre significative e l'intervallo + di esportazione in CSV +url: /it/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come esportare CSV con Java – Impostare le cifre significative e l'intervallo di esportazione in CSV + +Ti sei mai chiesto **come esportare csv** da una cartella di lavoro Java senza perdere la precisione numerica? Forse hai provato un rapido `toString()` e ti sei ritrovato con un pasticcio di errori di arrotondamento. È un inconveniente comune, soprattutto quando devi **impostare le cifre significative** per dati finanziari o risultati scientifici. + +In questo tutorial vedrai un esempio completo, pronto‑da‑eseguire, che mostra **come esportare csv**, come **impostare le cifre significative**, e persino come **esportare l'intervallo in csv** mantenendo i dati ordinati. Passeremo in rassegna ogni riga, spiegheremo il *perché* delle chiamate API e ti daremo consigli per evitare le solite insidie. Nessuna documentazione aggiuntiva da cercare—solo una soluzione autonoma che puoi copiare‑incollare oggi. + +## Cosa imparerai + +- Crea una cartella di lavoro e configura la precisione numerica con `setNumberSignificantDigits`. +- Esporta un intervallo di celle specifico come una stringa CSV formattata correttamente. +- Analizza le date dell'era giapponese usando `DateTimeFormatInfo`. +- Ricalcola le formule affinché i risultati degli array dinamici rimangano aggiornati. +- Genera un pivot table in un'immagine PNG. +- Usa Smart Marker per inserire commenti e infine salvare la cartella di lavoro. + +Tutto questo è realizzato con la libreria Aspose.Cells per Java, versione 23.12 (l'ultima al momento della stesura). Se hai il JAR nel tuo classpath, sei pronto a partire. + +--- + +## Passo 1: Crea una cartella di lavoro e **Imposta le cifre significative** + +Prima di poter esportare qualcosa, abbiamo bisogno di un oggetto workbook. La prima cosa che molti sviluppatori trascurano è la precisione numerica. Per impostazione predefinita Aspose.Cells utilizza la precisione completa del double, il che può generare stringhe lunghe e ingombranti nei CSV. Impostare il numero di cifre significative riduce l'output preservando le cifre più importanti. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Perché è importante?** +Se esporti una cella contenente `12345.6789` senza limitare le cifre, il CSV mostrerà il valore completo, ingombrando i report. Con `setNumberSignificantDigits(5)`, la stessa cella diventa `12346`, che è spesso ciò che gli utenti business si aspettano. + +> **Consiglio:** Se hai bisogno di precisioni diverse per colonna, puoi applicare uno `Style` personalizzato invece dell'impostazione globale. + +--- + +## Passo 2: **Esporta intervallo in CSV** – L'importanza della formattazione + +Ora che la cartella di lavoro è pronta, estraiamo un blocco rettangolare di dati e lo trasformiamo in una stringa CSV. Applicheremo anche un formato a due decimali (`0.00`) in modo che ogni numero sia allineato correttamente. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +La chiamata `exportDataTable` fa il lavoro pesante. Poiché abbiamo impostato `exportAsString`, il metodo restituisce una `String` che possiamo stampare, scrivere su un file o inviare via HTTP. Il passo **export range to csv** rispetta anche il `setNumberSignificantDigits` globale definito in precedenza, quindi i numeri sono arrotondati a cinque cifre significative *e* visualizzati con due decimali. + +**Output previsto (troncato):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Domanda comune:** *E se avessi bisogno di un delimitatore diverso, come un punto e virgola?* +> Basta chiamare `exportOptions.setSeparator(";")` prima dell'esportazione. + +--- + +## Passo 3: Analizza una data dell'era giapponese (Utilità bonus) + +Sebbene non sia direttamente correlato al CSV, molti fogli Excel contengono date specifiche per locale. Ecco come trasformare una stringa dell'era giapponese come `"R3/04/01"` in un oggetto `DateTime` standard. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Output: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Perché includerlo?** +Se l'esportazione CSV alimenta sistemi a valle che si aspettano date ISO‑8601, dovrai prima normalizzare i formati localizzati. Questo snippet mostra il *come* e il *perché* in un unico posto. + +--- + +## Passo 4: Ricalcola le formule – Mantieni aggiornati i risultati degli array dinamici + +Se la tua cartella di lavoro contiene formule (ad esempio `=SUM(A1:A10)`), non si aggiorneranno automaticamente dopo aver modificato le impostazioni. Chiamare `calculateFormula` fornisce una ricalcolazione completa, garantendo che il CSV esportato rifletta i valori più recenti. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Attenzione:** Le cartelle di lavoro grandi possono richiedere tempo notevole per il ricalcolo. Per scenari critici in termini di prestazioni, considera `calculateFormula(FormulaCalculationOptions)` per limitare l'ambito. + +--- + +## Passo 5: Renderizza la prima Pivot Table in un'immagine PNG + +A volte è necessario uno snapshot visivo di una pivot table insieme al CSV. Il codice seguente renderizza la prima pivot table del primo foglio in un file PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Suggerimento:** Se la cartella di lavoro non contiene già una pivot, puoi crearne una programmaticamente—vedi la documentazione di Aspose.Cells per un esempio rapido. + +--- + +## Passo 6: Usa Smart Marker per scrivere un commento e salvare la cartella di lavoro + +Smart Marker ti consente di inserire contenuti dinamici nelle celle usando semplici segnaposto. Qui scriviamo un commento come “Reviewed by QA” in una cella designata e poi salviamo la cartella di lavoro. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Il segnaposto `${Comment}` può essere posizionato ovunque nel foglio (ad es., cella `A1`). Quando `apply` viene eseguito, il segnaposto viene sostituito con il valore fornito. + +**Risultato:** Troverai un file `output/commented.xlsx` contenente il commento, più il `pivot.png` generato in precedenza e la stringa CSV stampata sulla console. + +--- + +## Esempio completo funzionante + +Mettendo tutto insieme, ecco il programma completo che puoi compilare ed eseguire: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Output previsto della console + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Troverai anche `output/pivot.png` (se esisteva una pivot) e `output/commented.xlsx` sul disco. + +--- + +## Domande frequenti & casi particolari + +- **Posso esportare direttamente in un file CSV fisico?** + Sì. Sostituisci il blocco `exportAsString` con `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **E se il mio foglio usa una locale diversa per i numeri?** + Imposta `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` prima dell'esportazione; questo scambierà + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/italian/java/excel-pivot-tables/_index.md b/cells/italian/java/excel-pivot-tables/_index.md index bdde351918..2ed6d8168e 100644 --- a/cells/italian/java/excel-pivot-tables/_index.md +++ b/cells/italian/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Scopri come creare campi calcolati nelle tabelle pivot utilizzando Aspose.Cells Scopri come aggiornare i dati delle tabelle pivot in Aspose.Cells per Java. Mantieni i tuoi dati aggiornati senza sforzo. ### [Personalizzazione degli stili della tabella pivot](./customizing-pivot-table-styles/) Scopri come personalizzare gli stili delle tabelle pivot in Aspose.Cells per Java API. Crea tabelle pivot visivamente accattivanti con facilità. +### [Copia della tabella pivot in Java – preservala, esporta in PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Scopri come copiare una tabella pivot in Java, preservarne le impostazioni e esportarla in un file PPTX con Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/italian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..8b7565d189 --- /dev/null +++ b/cells/italian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Copia la tabella pivot in Java preservando il pivot, poi esporta Excel + in PPTX, disabilita l'AutoFiltro di Excel e usa Smart Marker per gli array JSON + – guida completa passo‑passo. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: it +og_description: Copia la tabella pivot in Java, conserva la definizione della pivot, + esporta in PPTX, disabilita AutoFilter e utilizza Smart Marker – guida completa + per sviluppatori. +og_title: Copia la tabella pivot in Java – preservala, esportala in PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Copia la tabella pivot in Java – Conservala, esportala in PPTX +url: /it/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Copia Tabella Pivot in Java – Conservala, Esporta in PPTX + +Ti è mai capitato di dover **copiare una tabella pivot** da una cartella di lavoro a un'altra senza perdere la definizione della pivot sottostante? Non sei l'unico a grattarsi la testa per questo. In molti progetti reali ti troverai a spostare dati, e l'ultima cosa che desideri è una pivot rotta che genera errori a runtime. + +In questo tutorial percorreremo una soluzione completa che non solo **copia la tabella pivot**, ma ti mostra anche come **preservare la tabella pivot** durante la copia, **esportare Excel in PPTX**, **disabilitare l'AutoFilter di Excel** e **usare smart marker** per inserire un array JSON in una singola cella. Alla fine avrai un unico programma Java eseguibile che copre tutti e quattro gli scenari. + +## Prerequisiti + +- Java 8 o versioni successive (il codice funziona anche con Java 11) +- Libreria Aspose.Cells for Java (versione 23.9 o successiva) – puoi scaricarla da Maven Central +- Familiarità di base con i concetti di Excel come tabelle pivot, tabelle e caselle di testo + +Se ti manca il JAR di Aspose.Cells, aggiungi questo al tuo `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Ora, immergiamoci. + +## Passo 1: Copia Tabella Pivot – Preservando la Definizione della Pivot + +Quando copi semplicemente l'intervallo di celle che contiene una tabella pivot, i metadati della pivot spesso rimangono indietro. Aspose.Cells ci offre un modo pratico per mantenere intatta la definizione usando `copyRange` con un'istanza di `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Perché funziona:** `CopyOptions` indica ad Aspose.Cells di trasferire tutto, inclusa la cache della pivot e le impostazioni dei campi. Senza di esso, otterresti solo valori semplici e perderesti la possibilità di aggiornare la pivot. + +**Caso limite:** Se la tua pivot di origine supera l'intervallo hard‑coded `A1:G20`, regola l'intervallo di conseguenza o usa `sourceSheet.getPivotTables().get(0).getDataRange()` per ottenerlo dinamicamente. + +![Esempio di copia della tabella pivot](image.png "Copia tabella pivot in Java") + +*Testo alternativo dell'immagine: diagramma della copia della tabella pivot in Java* + +## Passo 2: Esporta un Foglio di Lavoro con una Casella di Testo Modificabile in PPTX + +Spesso è necessario trasformare un foglio Excel in una diapositiva PowerPoint—pensa ai cruscotti settimanali da presentare. Aspose.Cells può salvare direttamente un foglio di lavoro come file PPTX preservando forme come le caselle di testo. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Cosa succede:** Il metodo `save` con `SaveFormat.PPTX` converte l'intero foglio, inclusa qualsiasi TextBox modificabile, in una diapositiva PowerPoint. Il testo all'interno della casella rimane modificabile quando apri il PPTX in PowerPoint. + +**Suggerimento:** Se hai più fogli e ne desideri uno specifico, chiama `wb.getWorksheets().removeAt(index)` per gli altri prima di salvare. + +## Passo 3: Disabilita AutoFilter di Excel da una Tabella + +AutoFilter è comodo per gli utenti finali, ma a volte è necessario disattivarlo programmaticamente—magari prima di esportare dati o quando si genera un report pulito. Ecco come **disabilitare l'autofilter di Excel** su una tabella Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Perché potresti averne bisogno:** Esportare in formati che non supportano AutoFilter (come CSV o PDF) può far apparire icone di filtro residue. Disabilitarlo garantisce un output pulito. + +**Errore comune:** Se il foglio non contiene tabelle, `getTables().get(0)` genererà un `IndexOutOfBoundsException`. Controlla sempre prima `sheet.getTables().size()` nel codice di produzione. + +## Passo 4: Usa Smart Marker – Inserisci un Array JSON come Valore di una Singola Cell + +Smart Marker è il motore di templating di Aspose. Un trucco utile è trattare un intero array JSON come valore di una singola cella, perfetto per il logging o per passare dati strutturati a valle. Vediamo come **usare smart marker** per ottenere questo. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Come funziona:** Il marcatore `${json}` nella cartella di lavoro viene sostituito dall'intera stringa JSON perché abbiamo impostato `ArrayAsSingle`. Senza questa opzione, Aspose tenterebbe di espandere ogni elemento dell'array in righe separate. + +**Variazione:** Se hai bisogno che l'array sia suddiviso su più righe, basta omettere `ArrayAsSingle` e lasciare che Smart Marker gestisca l'espansione automaticamente. + +## Esempio Completo Funzionante – Tutti i Passi Combinati + +Di seguito trovi una singola classe Java che concatena tutte le operazioni trattate. Eseguila come un normale metodo `main`; basta adeguare i percorsi dei file al tuo ambiente. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/italian/java/getting-started/_index.md b/cells/italian/java/getting-started/_index.md index 6f1c5fc552..5542703969 100644 --- a/cells/italian/java/getting-started/_index.md +++ b/cells/italian/java/getting-started/_index.md @@ -38,6 +38,9 @@ Un tutorial sul codice per Aspose.Words Java ### [Configurazione e verifica della licenza Java di Aspose.Cells: guida completa](./aspose-cells-java-license-setup-guide/) Impara a configurare e verificare la tua licenza Java per Aspose.Cells con la nostra guida completa. Assicurati l'accesso completo alle funzionalità avanzate senza sforzo. +### [Creare una cartella di lavoro con licenza – Guida completa Aspose.Cells per Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Scopri come creare una cartella di lavoro Excel con licenza usando Aspose.Cells per Java, con esempi passo passo. + ### [Aspose.Cells per Java: come creare e formattare cartelle di lavoro Excel in modo efficiente](./aspose-cells-java-workbook-creation-guide/) Scopri come automatizzare la creazione e la formattazione delle cartelle di lavoro di Excel in Java con Aspose.Cells. Questa guida illustra le tecniche di configurazione, manipolazione delle cartelle di lavoro e formattazione delle celle. diff --git a/cells/italian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/italian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..6bede7e297 --- /dev/null +++ b/cells/italian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Crea rapidamente una cartella di lavoro con licenza usando Aspose.Cells + Java. Scopri come licenziare Aspose, impostare la licenza Aspose per Java e leggere + Excel con Aspose in un unico tutorial. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: it +og_description: Crea una cartella di lavoro con licenza usando Aspose.Cells Java. + Questa guida mostra come licenziare Aspose, impostare la licenza Aspose per Java + e leggere Excel con Aspose. +og_title: Crea cartella di lavoro con licenza – Tutorial Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Crea cartella di lavoro con licenza – Guida completa ad Aspose.Cells Java +url: /it/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea Cartella di Lavoro con Licenza – Guida Completa a Aspose.Cells per Java + +Ti sei mai chiesto come **creare una cartella di lavoro con licenza** senza incorrere in errori di licenza? Non sei l'unico: molti sviluppatori si imbattono in questo ostacolo al loro primo contatto con Aspose.Cells. La buona notizia? La soluzione è semplice, e questa guida ti accompagnerà passo per passo. + +In pochi minuti saprai **come licenziare Aspose**, esattamente **impostare la licenza Aspose Java**, e sarai pronto a **leggere Excel con Aspose** per compiti reali come reporting o migrazione dati. Niente riferimenti vaghi, solo un esempio completo e funzionante che puoi copiare‑incollare subito. + +--- + +## Cosa Ti Serve + +- Java 17 o superiore (l'ultima versione stabile è la migliore) +- Aspose.Cells per Java 23.9 (o qualsiasi versione recente) +- Il tuo file di licenza Aspose.Cells (`Aspose.Cells.Java.lic`) +- Un IDE o uno strumento di build con cui ti trovi a tuo agio (Maven, Gradle o semplice `javac`) + +Se qualcuno di questi ti è sconosciuto, non preoccuparti: ogni elemento è trattato nei passaggi seguenti. + +--- + +## Passo 1: Aggiungi la Dipendenza Aspose.Cells + +Prima di poter **creare una cartella di lavoro con licenza**, la libreria deve trovarsi nel tuo classpath. Con Maven appare così: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Per Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Consiglio professionale:** Se usi una compilazione `javac` semplice, basta posizionare il JAR in una cartella `libs/` e aggiungerlo al flag `-cp`. + +--- + +## Passo 2: **Come Licenziare Aspose** – Carica il File di Licenza + +Nel momento in cui chiami qualsiasi API Aspose senza licenza, vedrai una filigrana nel file Excel generato. Per evitarla, devi **impostare la licenza Aspose Java** all'inizio del tuo programma. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Perché è importante:** L'oggetto `License` indica ad Aspose di saltare la modalità di valutazione, rimuovendo le filigrane e sbloccando l'intera API. Se il percorso è errato, viene lanciata un'eccezione—così lo saprai subito. + +--- + +## Passo 3: **Crea Cartella di Lavoro con Licenza** – Genera un File Excel + +Ora che la licenza è stata applicata, puoi tranquillamente **creare cartelle di lavoro con licenza**. Di seguito trovi un esempio minimale ma completo che dimostra anche **leggere Excel con Aspose** più avanti. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Cosa fa questo codice:** + +1. Chiama l'utilità del **Passo 2** per **impostare la licenza Aspose Java**. +2. Istanzia un nuovo `Workbook` – il cuore di un'operazione **crea cartella di lavoro con licenza**. +3. Scrive una piccola tabella, la salva come XLSX e poi la rilegge immediatamente per dimostrare che **leggere Excel con Aspose** funziona senza filigrane. + +L'esecuzione del programma stampa: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Se apri il file generato, vedrai un foglio pulito senza filigrana Aspose—prova che la licenza è attiva. + +--- + +## Passo 4: Problemi Comuni & Casi Limite + +| Problema | Perché Accade | Soluzione | +|----------|----------------|-----------| +| **LicenseNotFoundException** | Il percorso è errato o il file manca. | Usa un percorso assoluto o carica il file dalle risorse (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR Aspose non è nel classpath. | Verifica la dipendenza Maven/Gradle o aggiungi manualmente il JAR. | +| **Salvataggio fallito su Windows** | La cartella di destinazione non esiste. | Assicurati che la directory `output/` sia creata (`new File("output").mkdirs();`). | +| **Lettura di file .xls più vecchi** | Il `SaveFormat` predefinito potrebbe non supportare il formato vecchio. | Usa `SaveFormat.XLS` durante il salvataggio, o lascia che Aspose rilevi automaticamente al caricamento. | + +> **Attenzione:** Se distribuisci su un server, il file di licenza dovrebbe trovarsi al di fuori della radice dell'app web per evitare esposizioni accidentali. + +--- + +## Passo 5: Verifica la Licenza Programmaticamente (Opzionale) + +A volte vuoi ricontrollare che la licenza sia stata caricata correttamente prima di eseguire operazioni pesanti. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Puoi chiamare `LicenseChecker.isLicensed("...")` e interrompere l'esecuzione se restituisce `false`. Questo aggiunge una rete di sicurezza extra, soprattutto nelle pipeline CI/CD. + +--- + +## Panoramica Visiva + +![Diagramma che mostra il flusso dall'applicazione della licenza alla creazione e lettura di una cartella di lavoro](create-licensed-workbook-diagram.png "creare cartella di lavoro con licenza") + +*Testo alternativo dell'immagine:* **diagramma crea cartella di lavoro con licenza** – illustra i passaggi per applicare la licenza Aspose, creare la cartella di lavoro e leggere Excel. + +--- + +## Conclusione + +Ora disponi di una soluzione completa, end‑to‑end, per **creare una cartella di lavoro con licenza** usando Aspose.Cells per Java. Abbiamo coperto **come licenziare Aspose**, mostrato il codice esatto per **impostare la licenza Aspose Java**, e offerto un rapido sguardo a **leggere Excel con Aspose** per confermare che tutto funzioni. + +Prossimi passi consigliati: + +- Formattare le celle (font, colori) – ideale per report professionali. +- Esportare in CSV o PDF – Aspose supporta molti formati pronti all'uso. +- Lavorare con dataset di grandi dimensioni – usa `WorkbookDesigner` per il templating. + +Sperimenta pure, e se incontri difficoltà lascia un commento qui sotto. Buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/italian/java/ole-objects-embedded-content/_index.md b/cells/italian/java/ole-objects-embedded-content/_index.md index db42502501..ffb7349c83 100644 --- a/cells/italian/java/ole-objects-embedded-content/_index.md +++ b/cells/italian/java/ole-objects-embedded-content/_index.md @@ -44,11 +44,13 @@ Scopri come estrarre in modo efficiente oggetti OLE da file Excel utilizzando As ### [Come estrarre il GUID da un oggetto OLE in Excel utilizzando Aspose.Cells per Java](./extract-guid-ole-object-excel-aspose-cells-java/) Scopri come estrarre in modo efficiente i GUID dagli oggetti PowerPoint incorporati nei file Excel utilizzando Aspose.Cells per Java. Segui questa guida passo passo per un'integrazione perfetta. +### [Come incorporare i font – Guida completa per l'esportazione HTML, XPS e OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Scopri come incorporare i font nei documenti durante l'esportazione in HTML, XPS e OLE con Aspose.Cells per Java, passo passo. + ### [Rimuovere i controlli ActiveX da Excel con Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Un tutorial sul codice per Aspose.Words Java - ## Risorse aggiuntive - [Documentazione di Aspose.Cells per Java](https://docs.aspose.com/cells/java/) diff --git a/cells/italian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/italian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..7c817b252f --- /dev/null +++ b/cells/italian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: Impara come incorporare i font in HTML e altri formati. Tutorial passo‑passo + che copre l’incorporazione dei font in HTML, la conversione di Excel in HTML, come + esportare OLE e la conversione di Excel in XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: it +og_description: Come incorporare i font in esportazioni HTML, XPS e OLE. Impara l’intero + flusso di lavoro, visualizza il codice Java eseguibile e padroneggia l’incorporamento + dei font in HTML per le conversioni Excel. +og_title: Come incorporare i font – Tutorial Java completo +tags: +- Aspose.Cells +- Java +- Document Export +title: Come incorporare i font – Guida completa per l'esportazione HTML, XPS e OLE +url: /it/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come incorporare i font – Guida completa per HTML, XPS e esportazione OLE + +Ti sei mai chiesto **come incorporare i font** quando trasformi una cartella di lavoro Excel in una pagina web o in un documento stampabile? Non sei l'unico. Molti sviluppatori si trovano di fronte a un ostacolo quando l'output sembra corretto sulla loro macchina ma si rompe su un'altra perché i font richiesti sono mancanti. + +In questo tutorial percorreremo uno scenario reale usando Aspose.Cells per Java: incorporeremo i font in HTML, conserveremo i selettori di variazione emoji durante la conversione in XPS e manterremo persino un oggetto OLE modificabile durante l'esportazione in PPTX. Alla fine avrai una soluzione solida, pronta da copiare e incollare, che risponde a “come incorporare i font” e tocca anche **embed fonts in html**, **convert excel to html**, **how to export ole** e **convert excel to xps**. + +## Prerequisiti + +- Java 17 (or any recent JDK) +- Aspose.Cells for Java 25.x o successivo +- Un IDE di sviluppo (IntelliJ IDEA, Eclipse o VS Code) +- Familiarità di base con le strutture dati di Excel + +Non sono richiesti servizi esterni—tutto viene eseguito localmente. + +## Panoramica della soluzione + +1. **Create a workbook** e utilizza la funzione `WRAPCOLS` per trasformare un intervallo verticale in un layout a tre colonne. +2. **Save the workbook as XPS** attivando i selettori di variazione dei font in modo che le emoji rimangano intatte. +3. **Export to HTML** con font incorporati, garantendo che la pagina abbia lo stesso aspetto ovunque. +4. **Export a workbook containing an OLE object to PPTX**, preservando la modificabilità. +5. **Apply a Smart Marker template** che dimostra il binding dei dati master‑detail. + +Ogni passaggio è isolato nella propria sezione H2, rendendo la guida facile da scorrere sia per i motori di ricerca sia per gli assistenti AI. + +![Come incorporare i font illustrazione](image.png "come incorporare i font") + +*Testo alternativo dell'immagine: diagramma su come incorporare i font che mostra il flusso di lavoro da Excel a HTML, XPS e PPTX.* + +--- + +## Passo 1 – Crea una cartella di lavoro e usa WRAPCOLS (Why This Matters for embed fonts in html) + +Prima di poter parlare di incorporare i font, abbiamo bisogno di una cartella di lavoro che contenga effettivamente dei dati. La funzione `WRAPCOLS` è un modo pratico per dividere una singola colonna in più colonne, il che spesso rende l'HTML finale più leggibile. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Perché questo passaggio?** +La chiamata `WRAPCOLS` genera un intervallo multicolonna che in seguito appare in HTML come una tabella. Quando più tardi **embed fonts in html**, lo stile della tabella dipenderà dai font che incorporiamo, garantendo un rendering coerente su tutti i browser. + +--- + +## Passo 2 – Salva la cartella di lavoro come XPS preservando le Emoji (convert excel to xps) + +Se hai bisogno di un formato pronto per la stampa, XPS è una scelta solida. Tuttavia, i documenti moderni spesso contengono emoji o simboli che utilizzano selettori di variazione. Attivare `EnableFontVariationSelectors` assicura che quei caratteri sopravvivano alla conversione. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Cosa ottieni:** +Un file XPS che visualizza qualsiasi emoji incorporata esattamente come nel workbook di origine. Questo soddisfa il requisito **convert excel to xps** e dimostra che la gestione dei font non è limitata a HTML. + +--- + +## Passo 3 – Esporta in HTML con Font Incorporati (how to embed fonts & embed fonts in html) + +Ora arriviamo al cuore del tutorial: **how to embed fonts** durante la conversione di Excel in HTML. Aspose.Cells ci permette di incorporare i font direttamente nel file HTML generato, eliminando la necessità di file di font esterni. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Come funziona:** +`setEmbedFonts(true)` indica al renderer di leggere i file di font usati nella cartella di lavoro e di incorporarli come regole `@font-face` codificate in Base64 all'interno del tag ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Nota la regola `@font-face`—questa è la risposta concreta a **embed fonts in html**. + +--- + +## Passo 4 – Esporta una cartella di lavoro contenente un oggetto OLE in PPTX (how to export ole) + +Molti report aziendali incorporano documenti Word, PDF o altri fogli Excel come oggetti OLE. Quando esporti una tale cartella di lavoro in PowerPoint, spesso perdi la possibilità di modificare quell'oggetto. Aspose.Cells preserva la modificabilità fin da subito. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Perché è importante:** +Se stai cercando **how to export ole**, questo snippet mostra la chiamata API esatta. La diapositiva PowerPoint risultante contiene l'oggetto OLE come componente live, modificabile con doppio clic—senza necessità di post‑processing aggiuntivo. + +--- + +## Passo 5 – Applica un modello Smart Marker (master‑detail) e completa la demo + +I Smart Marker ti consentono di collegare una fonte dati (Map, JSON, DataTable) direttamente a un modello Excel. Ecco un esempio minimale che stampa righe master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Ciò che vedi:** +Una nuova cartella di lavoro (`smartMarkerResult.xlsx`) in cui i segnaposto del modello sono sostituiti con i dati. Questo passaggio non riguarda direttamente i font, ma completa il tutorial mostrando un tipico flusso di lavoro di reporting che spesso precede un'esportazione **embed fonts in html**. + +--- + +## Problemi comuni & consigli professionali (Assicurare l'incorporamento riuscito dei font) + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| I font mancano nel file HTML | La cartella di lavoro utilizza un font di sistema che non è installato sul server. | Usa `Workbook.getSettings().setDefaultFont("Arial")` prima di caricare i dati, oppure incorpora manualmente i file dei font richiesti. | +| L'HTML di output è enorme | Incorporare molti font di grandi dimensioni aumenta la dimensione del file. | Limita l'incorporamento solo ai font che utilizzi realmente: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Le emoji scompaiono dopo la conversione XPS | I selettori di variazione vengono rimossi per impostazione predefinita. | Abilita `settings.setEnableFontVariationSelectors(true)` come mostrato nel Passo 2. | +| L'oggetto OLE diventa un'immagine statica in PPTX | La cartella di lavoro di origine è stata salvata con `setSuppressOLEObjects(true)`. | Assicurati di **non** sopprimere gli oggetti OLE quando salvi in PPTX. | + +--- + +## Verifica dei risultati + +1. Apri `embeddedFonts.html` in Chrome/Firefox. La tabella dovrebbe visualizzarsi usando il font incorporato (ad es., Arial) anche se quel font non è installato sulla macchina. +2. Apri `withVariations.xps` nel Visualizzatore XPS di Windows. Emoji come 👍 dovrebbero essere renderizzate correttamente. +3. Apri `oleEditable.pptx` in PowerPoint. Fai doppio clic sulla forma OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/japanese/java/excel-import-export/_index.md b/cells/japanese/java/excel-import-export/_index.md index 9478c53d2d..20a0b99a7f 100644 --- a/cells/japanese/java/excel-import-export/_index.md +++ b/cells/japanese/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ Aspose.Cells for Java APIを使用してExcelから一括データをインポ Aspose.Cells for Java を使って、Excel データのエクスポート機能の可能性を最大限に引き出しましょう。この包括的なガイドでは、実用的なソースコード例を使って学習できます。今すぐデータ管理スキルを最適化しましょう。 ### [CSVエクスポートJavaコード](./csv-export-java-code/) Aspose.Cells for Javaを使用してデータをCSV形式にエクスポートする方法を学びましょう。シームレスなCSVエクスポートを実現するソースコード付きのステップバイステップガイドです。 +### [JavaでCSVをエクスポートする方法 – 有効数字の設定とエクスポート範囲の指定](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Aspose.Cells for Javaを使用して、CSVエクスポート時に有効数字を設定し、エクスポート範囲を指定する方法を解説します。 ### [Excel から PDF へのエクスポート](./exporting-excel-to-pdf/) Aspose.Cells for Javaを使って、ExcelファイルをPDFに簡単にエクスポートする方法を学びましょう。ステップバイステップガイドで手順を分かりやすく解説します。今すぐ変換を始めましょう! +### [ワークブックからPDFを作成する方法 – 完全Javaガイド](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Aspose.Cells for Java を使用して、ワークブックをPDFに変換する手順をステップバイステップで解説します。実用的なコード例付き。 ### [ExcelからXML Javaへのエクスポート](./export-excel-to-xml-java/) Aspose.Cells for Javaを使って、JavaでExcelをXMLにエクスポートする方法を学びましょう。ソースコード付きのステップバイステップガイドで、シームレスなデータ変換を実現します。 ### [Excelからのデータインポート](./data-import-from-excel/) diff --git a/cells/japanese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/japanese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..682a6190dd --- /dev/null +++ b/cells/japanese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells for Java を使用して PDF を作成し、ブックを PDF として保存し、Excel を HTML にエクスポートし、expand + 関数を利用する方法。ステップバイステップのコードを含む。 +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: ja +og_description: Aspose.Cells for Java を使用してワークブックから PDF を作成する方法。ワークブックを PDF として保存し、Excel + を HTML にエクスポートし、EXPAND 関数を使用する方法を学びます。 +og_title: ワークブックからPDFを作成する方法 – Javaチュートリアル +tags: +- Aspose.Cells +- Java +- PDF generation +title: ワークブックからPDFを作成する方法 – 完全なJavaガイド +url: /ja/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ワークブックからPDFを作成する方法 – 完全なJavaガイド + +サードパーティのコンバータを使わずに、Excelワークブックから直接 **PDFを作成する方法** を考えたことはありませんか? あなたは一人ではありません。多くの開発者は、迅速なPDFエクスポート、HTMLプレビュー、または高度な配列数式が一度に必要になると壁にぶつかります。 + +このチュートリアルでは、まさにそれを実現する単一の自己完結型Javaプログラムを順を追って解説します。**ワークブックをPDFとして保存**し、凍結行を保持したまま **ExcelをHTMLにエクスポート**する方法を示し、ワークシート内で **EXPAND関数を使用**する方法をデモします。最後まで実行可能なプロジェクトが手に入り、任意のMavenまたはGradleビルドに組み込むことができます。 + +> **Pro tip:** 以下のコードはすべて Aspose.Cells 23.10(またはそれ以降)で動作します。古いバージョンを使用している場合、メソッド名が若干異なることがあります。 + +--- + +## 前提条件 + +- **Java 17**(または任意のLTSバージョン)をインストールし、設定済みであること。 +- **Aspose.Cells for Java** ライブラリ。`pom.xml` に以下のMaven依存関係を追加してください: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- お好みのIDEまたはテキストエディタ(IntelliJ IDEA、VS Code、Eclipse など)。 + +外部APIやWebサービスは不要です。純粋なJavaとAspose.Cells SDKだけで完結します。 + +--- + +## ソリューションの概要 + +実装は **7つの論理的ステップ** に分割します: + +1. ワークブックを作成し、**EXPAND** 関数をデモする。 +2. フォントバリエーションセレクタを有効にし、**ワークブックをPDFとして保存**する。 +3. 同じワークブックをHTMLにエクスポートし、凍結行を保持する。 +4. `IF` パラメータ付きのSmart Markerを使用して条件付きテキストを挿入する。 +5. 階層データ用のマスタ‑ディテールSmart Markerを適用する。 +6. Base‑64エンコードされた画像を含むMarkdownファイルをロードする。 +7. GridJsオプションを設定し、データを挿入する。 + +各ステップは独自のメソッドにラップされており、`main` メソッドをすっきり保ちつつ、**何を** 行うかだけでなく **なぜ** それを行うのかを示します。 + +--- + +## Step 1 – ワークブックを作成し、EXPAND 関数を使用 + +**EXPAND** 関数は Office 365 で導入された新しい動的配列数式です。セルを手動でコピーせずに、範囲をより大きな領域へ「スピル」させることができます。 + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**この重要性:** +- `EXPAND` は結果を自動的に空白で埋めるため、後で **ワークブックをPDFとして保存** するときに、PDF がきれいな長方形のテーブルとして表示されます。 +- `calculateFormula()` を呼び出すことで、エクスポート前に数式エンジンが実行されます。 + +--- + +## Step 2 – フォントバリエーションセレクタを有効にし、**ワークブックをPDFとして保存** + +高度なタイポグラフィ(例: 絵文字やCJKバリエーションセレクタ)をサポートする必要がある場合、保存 **前に** この機能をオンにする必要があります。 + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**重要ポイント:** 主要キーワード **how to create pdf** の答えはここにあります。設定を行った後に `workbook.save(..., SaveFormat.PDF)` を呼び出すことで実現します。 + +--- + +## Step 3 – **ExcelをHTMLにエクスポート**し、凍結行を保持 + +ステークホルダーが迅速なWebプレビューを求めることがよくあります。Aspose.Cells はHTMLへのエクスポートをサポートしており、`setPreserveFrozenRows(true)` を使用すると Excel と同様のスクロール体験が保たれます。 + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**なぜ重要か:** 凍結行はユーザビリティ向上のための便利機能です。これがないと、ページをスクロールした際にヘッダー行が消えてしまいます。 + +--- + +## Step 4 – IF パラメータ付き Smart Marker + +Smart Marker を使うと、ループを書かずにデータをテンプレートにマージできます。`if` パラメータはマーカー内に直接条件ロジックを組み込むことができます。 + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +出力されるPDFは **「VIP Customer: Acme Corp」** と表示されます(`IsVIP` が `true` のため)。フラグを `false` に変更すると **「Regular Customer: Acme Corp」** が出力され、追加コードは不要です。 + +--- + +## Step 5 – 階層範囲を使用したマスタ‑ディテール Smart Marker + +親子データ(例: 注文と明細行)がある場合、マスタ‑ディテールマーカーを使うと手動で行を挿入する手間が省けます。 + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**得られる効果:** エンジンが各注文ごとにマスタ行を展開し、明細行を自動的にその下にネストします。請求書や購買レポートに最適です。 + +--- + +## Step 6 – 埋め込み Base‑64 画像付き Markdown ドキュメントのロード + +ソースデータが Markdown にある場合(ドキュメントパイプラインで一般的)、Aspose.Cells はそれを直接ワークブックにレンダリングできます。 + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**エッジケースの注意:** Base‑64 文字列が不正な場合、Aspose は画像をスキップしますが、ドキュメントの残りの部分は引き続き処理され、クラッシュは起きません。 + +--- + +## Step 7 – GridJs オプションを設定しデータを挿入 + +GridJs は軽量な JavaScript グリッドで、Aspose はそれをHTMLにレンダリングできます。数値の右揃えや罫線の適用は可読性を向上させます。 + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**なぜ重要か:** 適切な配置と罫線により、生成されたHTMLは洗練されたスプレッドシートのように見え、ダッシュボードでの利用に適しています。 + +--- + +## 全体をまとめる – `main` メソッド + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/japanese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/japanese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..6bf9fa2461 --- /dev/null +++ b/cells/japanese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-03-01 +description: JavaワークブックからCSVをエクスポートし、 有効数字とエクスポート範囲を設定する方法を、シンプルで分かりやすいガイドで学びましょう。 +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: ja +og_description: JavaでCSVをエクスポートする方法、桁数を設定する方法、範囲をCSVにエクスポートする方法を実践的なコードとヒントでマスターしよう。 +og_title: JavaでCSVをエクスポートする方法 – 完全ステップバイステップガイド +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: JavaでCSVをエクスポートする方法 – 有効数字の設定とエクスポート範囲の指定 +url: /ja/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java で CSV をエクスポートする方法 – 有効数字の設定と範囲エクスポート + +Java のワークブックから **CSV をエクスポート** する際に数値の精度が失われたことはありませんか? `toString()` で手軽に変換しようとして、丸め誤差の混乱に陥ったことがあるかもしれません。特に金融データや科学的結果で **有効数字を設定** する必要がある場合、これはよくある問題です。 + +このチュートリアルでは、**CSV のエクスポート方法**、**有効数字の設定方法**、さらに **範囲を CSV にエクスポート** する方法を、データを整然と保ったまま実演します。各行を順に解説し、API 呼び出しの *理由* を説明し、一般的な落とし穴を回避するコツも紹介します。余計なドキュメントを探す必要はありません—今日すぐにコピーペーストできる自己完結型のソリューションです。 + +## 学べること + +- `setNumberSignificantDigits` でワークブックを作成し、数値精度を構成する方法 +- 特定のセル範囲を整形された CSV 文字列としてエクスポートする方法 +- `DateTimeFormatInfo` を使って和暦日付を解析する方法 +- 動的配列の結果が最新になるように数式を再計算する方法 +- ピボットテーブルを PNG 画像としてレンダリングする方法 +- Smart Marker を使ってコメントを挿入し、最終的にワークブックを保存する方法 + +これらはすべて Aspose.Cells for Java ライブラリ(バージョン 23.12、執筆時点での最新)で実現できます。JAR がクラスパスに入っていればすぐに始められます。 + +--- + +## 手順 1: ワークブックを作成し **有効数字を設定** する + +エクスポートを行う前に、まずワークブックオブジェクトが必要です。多くの開発者が見落としがちなのは数値精度です。デフォルトでは Aspose.Cells は double のフル精度を使用するため、CSV では長くて扱いにくい文字列になることがあります。有効数字の数を設定することで、出力を短くしつつ重要な桁は保持できます。 + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**なぜ重要なのか?** +`12345.6789` を含むセルを桁数制限なしでエクスポートすると、CSV にはフル値が出力され、レポートが乱雑になります。`setNumberSignificantDigits(5)` を使用すれば、同じセルは `12346` と丸められ、ビジネスユーザーが期待する形になります。 + +> **プロのコツ:** 列ごとに異なる精度が必要な場合は、グローバル設定の代わりにカスタム `Style` を適用できます。 + +--- + +## 手順 2: **範囲を CSV にエクスポート** – フォーマットが鍵 + +ワークブックの準備ができたら、矩形ブロックのデータを取得し、CSV 文字列に変換します。ここではすべての数値を `0.00` の小数点2桁形式に統一し、列が揃うようにします。 + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +`exportDataTable` が実際の処理を行います。`exportAsString` を設定したため、メソッドは `String` を返し、コンソール出力やファイル書き込み、HTTP 送信などに利用できます。**範囲を CSV にエクスポート** のステップは、先ほど設定した `setNumberSignificantDigits` も考慮するため、数値は「有効数字5桁に丸められ」かつ「小数点2桁で表示」されます。 + +**期待される出力(抜粋):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **よくある質問:** *区切り文字をセミコロンにしたい場合は?* +> エクスポート前に `exportOptions.setSeparator(";")` を呼び出すだけです。 + +--- + +## 手順 3: 和暦日付を解析する(便利ユーティリティ) + +CSV とは直接関係ありませんが、Excel シートにはローカライズされた日付が頻出します。ここでは和暦文字列 `"R3/04/01"` を標準的な `DateTime` オブジェクトに変換する方法を示します。 + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +出力: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**なぜこのコードを入れるのか?** +CSV エクスポート先のシステムが ISO‑8601 形式の日付を期待している場合、ローカライズされた形式を先に正規化する必要があります。このスニペットは「やり方」と「理由」を一箇所にまとめています。 + +--- + +## 手順 4: 数式を再計算 – 動的配列結果を最新に保つ + +ワークブックに数式(例: `=SUM(A1:A10)`)が含まれている場合、設定変更後に自動で更新されません。`calculateFormula` を呼び出すことで全体の再計算が行われ、エクスポートされた CSV が最新の値を反映します。 + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **注意:** 大規模なワークブックは再計算に時間がかかります。パフォーマンスが重要なシナリオでは、`calculateFormula(FormulaCalculationOptions)` を使用して対象範囲を限定することを検討してください。 + +--- + +## 手順 5: 最初のピボットテーブルを PNG 画像としてレンダリング + +CSV と一緒にピボットテーブルのビジュアルスナップショットが必要なことがあります。以下のコードは、最初のワークシートにある最初のピボットテーブルを PNG ファイルに出力します。 + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**ヒント:** ワークブックにピボットがまだ無い場合は、プログラムで作成できます—詳しくは Aspose.Cells のドキュメントをご参照ください。 + +--- + +## 手順 6: Smart Marker を使ってコメントを書き込み、ワークブックを保存 + +Smart Marker はプレースホルダーを使ってセルに動的コンテンツを注入できます。ここでは「Reviewed by QA」というコメントを指定セルに書き込み、最後にワークブックを保存します。 + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}` プレースホルダーはシート内の任意の場所(例: `A1`)に配置可能です。`apply` が実行されると、プレースホルダーは提供した値に置き換わります。 + +**結果:** `output/commented.xlsx` にコメントが入ったファイルが生成され、先ほどの `pivot.png` とコンソールに出力された CSV 文字列も併せて確認できます。 + +--- + +## 完全動作サンプル + +すべてを組み合わせた、コンパイルして実行できる完全プログラムを以下に示します。 + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### 期待されるコンソール出力 + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +実行後、`output/pivot.png`(ピボットが存在した場合)と `output/commented.xlsx` がディスクに生成されます。 + +--- + +## FAQ とエッジケース + +- **CSV ファイルへ直接エクスポートできますか?** + はい。`exportAsString` の部分を `dataRange.exportDataTable("output/data.csv", exportOptions);` に置き換えるだけです。 + +- **シートの数値ロケールが別の文化圏の場合は?** + エクスポート前に `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` を設定すれば、数値の区切り文字や小数点表記がフランス式に変わります。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/japanese/java/excel-pivot-tables/_index.md b/cells/japanese/java/excel-pivot-tables/_index.md index f5934814eb..4739ca9c89 100644 --- a/cells/japanese/java/excel-pivot-tables/_index.md +++ b/cells/japanese/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aspose.Cells for Java を使用してピボットテーブルに計算フィー Aspose.Cells for Javaでピボットテーブルデータを更新する方法を学びましょう。データを簡単に最新の状態に保ちましょう。 ### [ピボットテーブルスタイルのカスタマイズ](./customizing-pivot-table-styles/) Aspose.Cells for Java API でピボットテーブルのスタイルをカスタマイズする方法を学びましょう。視覚的に魅力的なピボットテーブルを簡単に作成できます。 +### [Javaでピボットテーブルをコピー – 保持してPPTXにエクスポート](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Aspose.Cells for Java を使用して、ピボットテーブルをコピーし、書式やデータを保持したまま PowerPoint PPTX ファイルへエクスポートする方法を学びます。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/japanese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..4f36613ef6 --- /dev/null +++ b/cells/japanese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-03-01 +description: Javaでピボットテーブルをコピーし、ピボットを保持したままExcelをPPTXにエクスポートし、Excelのオートフィルタを無効にし、JSON配列にSmart + Markerを使用する – 完全ステップバイステップガイド +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: ja +og_description: Javaでピボットテーブルをコピーし、ピボット定義を保持、PPTXへエクスポート、AutoFilterを無効化、Smart Markerを使用する + – 開発者向け完全ガイド。 +og_title: Javaでピボットテーブルをコピー – 保存してPPTXにエクスポート +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Javaでピボットテーブルをコピー – そのまま保存し、PPTXにエクスポート +url: /ja/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Javaでピボットテーブルをコピー – 保持し、PPTXへエクスポート + +ワークブック間で **ピボットテーブルをコピー** し、基になるピボット定義を失わないようにしたことはありますか? 同じことで頭を抱えているのはあなただけではありません。実務プロジェクトではデータを移動する機会が多く、実行時にエラーを投げる壊れたピボットは最後に避けたいものです。 + +このチュートリアルでは、**ピボットテーブルをコピー** するだけでなく、コピー時に **ピボットテーブルを保持** する方法、**ExcelをPPTXにエクスポート**、**Excel AutoFilterを無効化**、そして **スマートマーカー** を使って JSON 配列を単一セルに挿入する方法を順に解説します。最後まで読むと、4 つのシナリオすべてをカバーした単一の実行可能な Java プログラムが手に入ります。 + +## Prerequisites + +- Java 8 以上(コードは Java 11 でも動作します) +- Aspose.Cells for Java ライブラリ(バージョン 23.9 以降) – Maven Central から取得できます +- ピボットテーブル、テーブル、テキストボックスなどの Excel の概念に基本的に精通していること + +Aspose.Cells の JAR がない場合は、`pom.xml` に以下を追加してください: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +さあ、始めましょう。 + +## Step 1: Copy Pivot Table – Preserving the Pivot Definition + +ピボットテーブルが配置されているセル範囲だけをコピーすると、ピボットのメタデータが残らないことがよくあります。Aspose.Cells では `copyRange` と `CopyOptions` インスタンスを組み合わせることで、定義をそのまま保持できます。 + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Why this works:** `CopyOptions` は Aspose.Cells にピボットキャッシュやフィールド設定を含むすべてを引き継ぐよう指示します。これがないと単なる値だけがコピーされ、ピボットの更新ができなくなります。 + +**Edge case:** ソースのピボットがハードコーディングされた `A1:G20` を超える場合は、範囲を調整するか、`sourceSheet.getPivotTables().get(0).getDataRange()` を使用して動的に取得してください。 + +![ピボットテーブルのコピー例](image.png "Javaでのピボットテーブルのコピー") + +*画像の代替テキスト: Javaでのピボットテーブル図* + +## Step 2: Export a Worksheet with an Editable TextBox to PPTX + +Excel シートを PowerPoint スライドに変換する必要があることがよくあります(例:週次ダッシュボードのプレゼンテーション)。Aspose.Cells はテキストボックスなどのシェイプを保持したまま、ワークシートを直接 PPTX ファイルとして保存できます。 + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**What’s happening:** `SaveFormat.PPTX` を指定した `save` メソッドは、シート全体と編集可能な TextBox を含めて PowerPoint スライドに変換します。PPTX を PowerPoint で開くと、ボックス内のテキストは編集可能なままです。 + +**Tip:** 複数シートがある場合で特定のシートだけを保存したいときは、保存前に `wb.getWorksheets().removeAt(index)` で不要なシートを削除してください。 + +## Step 3: Disable Excel AutoFilter from a Table + +AutoFilter はエンドユーザーにとって便利ですが、データをエクスポートする前やクリーンなレポートを生成する際にプログラムでオフにしたくなることがあります。ここでは Excel テーブル上の **excel autofilter を無効化** する方法を示します。 + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Why you might need this:** CSV や PDF など AutoFilter に対応していない形式へエクスポートすると、不要なフィルタアイコンが残ることがあります。無効化することで出力がクリーンになります。 + +**Common pitfall:** シートにテーブルが存在しない場合、`getTables().get(0)` は `IndexOutOfBoundsException` を投げます。実装時は必ず `sheet.getTables().size()` を確認してください。 + +## Step 4: Use Smart Marker – Insert a JSON Array as a Single Cell Value + +Smart Marker は Aspose のテンプレートエンジンです。JSON 配列全体を単一セルの値として扱うテクニックは、ログ出力や下流システムへの構造化データ渡しに最適です。ここで **smart marker を使用** して実現しましょう。 + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**How it works:** ワークブック内の `${json}` マーカーは `ArrayAsSingle` を設定したため、配列全体の JSON 文字列に置き換えられます。このオプションがなければ、Aspose は配列要素を別々の行に展開しようとします。 + +**Variation:** 配列を行単位で分割したい場合は、`ArrayAsSingle` を省略すれば Smart Marker が自動的に展開します。 + +## Full Working Example – All Steps Combined + +以下は、ここまで説明したすべての操作をひとつにまとめた単一の Java クラスです。通常の `main` メソッドとして実行し、ファイルパスを環境に合わせて調整してください。 + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/japanese/java/getting-started/_index.md b/cells/japanese/java/getting-started/_index.md index 4e8ac01a65..aba4a930d4 100644 --- a/cells/japanese/java/getting-started/_index.md +++ b/cells/japanese/java/getting-started/_index.md @@ -38,6 +38,9 @@ Aspose.Words Javaのコードチュートリアル ### [Aspose.Cells Java ライセンスの設定と検証: 完全ガイド](./aspose-cells-java-license-setup-guide/) 包括的なガイドで、Aspose.Cells Javaライセンスの設定と検証をマスターしましょう。高度な機能へのフルアクセスを簡単に確保できます。 +### [ライセンス付きワークブックの作成 – 完全 Aspose.Cells Java ガイド](./create-licensed-workbook-full-aspose-cells-java-guide/) +Aspose.Cells for Java でライセンスを適用したワークブックを作成し、完全な機能を活用する方法を解説します。 + ### [Aspose.Cells for Java: Excel ワークブックを効率的に作成し、書式設定する方法](./aspose-cells-java-workbook-creation-guide/) Aspose.Cellsを使ってJavaでExcelワークブックの作成と書式設定を自動化する方法を学びましょう。このガイドでは、セットアップ、ワークブックの操作、セルの書式設定のテクニックについて説明します。 @@ -48,7 +51,7 @@ Aspose.Cells for Javaを使ってExcelブックを作成およびカスタマイ Aspose.Cells for Java を使用して、Excel ブックを作成し、カスタムデータを入力する方法を学びます。ワークフローを効率的に合理化します。 ### [Aspose.Cells for Java で Excel ブックを作成する: 包括的なガイド](./create-excel-workbooks-aspose-cells-java/) -Aspose.Cells for Java を使用して Excel ブックを作成し、スタイルを設定する方法を学びます。Excel タスクを自動化し、スタイルを適用し、レポートを効率的に保存します。 +Aspose.Cells for Java を使用して Excel ブックを作成し、スタイルを設定する方法を学びます。Excel タスクを自動化し、スタイルを適用、レポートを効率的に保存します。 ### [Aspose.Cells Java を使用して XLSX ファイルを作成する: 開発者向け完全ガイド](./create-xlsx-files-aspose-cells-java-guide/) Aspose.Cellsを使ってJavaでXLSXファイルを作成および管理する方法を学びましょう。この包括的なガイドでは、セットアップ、実装、トラブルシューティングについて解説しています。 diff --git a/cells/japanese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/japanese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..98251a9569 --- /dev/null +++ b/cells/japanese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells Java を使用して、ライセンス付きのワークブックを迅速に作成しましょう。Aspose のライセンス取得方法、Java + での Aspose ライセンス設定、そして Aspose を使った Excel の読み取りを、1つのチュートリアルで学べます。 +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: ja +og_description: Aspose.Cells Java を使用してライセンス付きワークブックを作成します。このガイドでは、Aspose のライセンス方法、Java + での Aspose ライセンス設定、および Aspose を使用した Excel の読み取り方法を示します。 +og_title: ライセンス付きワークブックの作成 – Aspose.Cells Java チュートリアル +tags: +- Aspose.Cells +- Java +- Excel Automation +title: ライセンス付きワークブックの作成 – 完全 Aspose.Cells Java ガイド +url: /ja/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ライセンス付きワークブックの作成 – 完全 Aspose.Cells Java ガイド + +ライセンスエラーに悩まされずに **create licensed workbook** を作成する方法を考えたことはありませんか? あなただけではありません—Aspose.Cells を初めて触れる多くの開発者が同じ壁にぶつかります。良いニュースは? 解決策はシンプルで、このガイドがステップバイステップで案内します。 + +数分で **how to license Aspose** の方法、正確な **set Aspose license Java** の手順が分かり、レポート作成やデータ移行といった実務で **read Excel with Aspose** がすぐに使えるようになります。曖昧な参照はなく、今日すぐにコピー&ペーストできる完全な実行可能サンプルだけをご提供します。 + +--- + +## 必要なもの + +- Java 17 以上(最新の安定版がベストです) +- Aspose.Cells for Java 23.9(または最近のバージョン) +- Aspose.Cells ライセンスファイル(`Aspose.Cells.Java.lic`) +- お好きな IDE またはビルドツール(Maven、Gradle、または単純な `javac`) + +これらの項目に見覚えがなくても心配はいりません—以下の手順で順にカバーします。 + +--- + +## Step 1: Add Aspose.Cells Dependency + +**ライセンス付きワークブックを作成**する前に、ライブラリをクラスパスに追加する必要があります。Maven を使用する場合は次のようになります。 + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Gradle の場合は次の通りです。 + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **プロのコツ:** plain `javac` でコンパイルする場合は、JAR を `libs/` フォルダーに置き、`-cp` オプションに追加するだけです。 + +--- + +## Step 2: **How to License Aspose** – Load the License File + +ライセンスなしで Aspose API を呼び出すと、生成された Excel ファイルに透かしが表示されます。これを防ぐには、プログラムの早い段階で **set Aspose license Java** を実行する必要があります。 + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **重要な理由:** `License` オブジェクトは Aspose に評価モードをスキップさせ、透かしを除去し、フル API を解放します。パスが間違っていると例外がスローされるため、すぐに問題に気付くことができます。 + +--- + +## Step 3: **Create Licensed Workbook** – Build an Excel File + +ライセンスが適用されたので、安心して **create licensed workbook** オブジェクトを作成できます。以下は最小限ながら完全なサンプルで、後で **read Excel with Aspose** を実演します。 + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**このコードの動作:** + +1. **Step 2** のユーティリティを呼び出し、**set Aspose license Java** を実行。 +2. 新しい `Workbook` をインスタンス化—**create licensed workbook** 操作の中心です。 +3. 小さなテーブルを書き込み、XLSX として保存し、すぐに再読込して **read Excel with Aspose** が透かしなしで機能することを確認。 + +プログラム実行時の出力は次の通りです。 + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +生成されたファイルを開くと、Aspose の透かしが一切ないクリーンなスプレッドシートが確認でき、ライセンスが有効であることが証明されます。 + +--- + +## Step 4: Common Pitfalls & Edge Cases + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **LicenseNotFoundException** | パスが間違っている、またはファイルが存在しない。 | 絶対パスを使用するか、リソースから読み込む(`getClass().getResourceAsStream`)。 | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR がクラスパスにない。 | Maven/Gradle の依存関係を確認するか、JAR を手動で追加。 | +| **Saving fails on Windows** | 保存先フォルダーが存在しない。 | `new File("output").mkdirs();` で `output/` ディレクトリを作成。 | +| **Reading older .xls files** | デフォルトの `SaveFormat` が古い形式に対応していない可能性。 | 保存時に `SaveFormat.XLS` を指定するか、ロード時に Aspose に自動検出させる。 | + +> **注意点:** サーバーへデプロイする場合、ライセンスファイルは Web アプリのルート外に配置し、誤って公開されないようにしてください。 + +--- + +## Step 5: Verify the License Programmatically (Optional) + +重い処理を行う前に、ライセンスが正しくロードされたかを二重チェックしたいことがあります。 + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +`LicenseChecker.isLicensed("...")` を呼び出し、`false` が返った場合は処理を中止できます。CI/CD パイプラインでの安全策として有用です。 + +--- + +## Visual Overview + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*画像の代替テキスト:* **create licensed workbook diagram** – ライセンス適用からワークブック作成、Excel 読み取りまでの手順を示しています。 + +--- + +## Conclusion + +これで Aspose.Cells for Java を使用した **create licensed workbook** の完全なエンドツーエンドソリューションが手に入りました。**how to license Aspose** の方法、正確な **set Aspose license Java** コード、そして **read Excel with Aspose** による動作確認までカバーしました。 + +次に試したいこと: + +- セルのスタイリング(フォント、カラー)— プロフェッショナルなレポート作成に最適。 +- CSV や PDF へのエクスポート — Aspose は多数のフォーマットを標準でサポート。 +- 大規模データセットの処理 — テンプレート作成には `WorkbookDesigner` を活用。 + +ぜひ色々試してみて、問題があれば下のコメント欄にご相談ください。ハッピーコーディング! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/japanese/java/ole-objects-embedded-content/_index.md b/cells/japanese/java/ole-objects-embedded-content/_index.md index f3b5e434e2..ca7e46ac63 100644 --- a/cells/japanese/java/ole-objects-embedded-content/_index.md +++ b/cells/japanese/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Aspose.Cells for Javaを使用して、Excelファイルに埋め込まれたPow ### [Aspose.Cells Java で Excel から ActiveX コントロールを削除する](./remove-activex-controls-excel-aspose-cells-java/) Aspose.Words Javaのコードチュートリアル - +### [フォントの埋め込み方法 – HTML、XPS、OLE エクスポートの完全ガイド](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +HTML、XPS、OLE エクスポート時にフォントを埋め込む手順とベストプラクティスを詳しく解説します。 ## 追加リソース diff --git a/cells/japanese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/japanese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..7e7333217a --- /dev/null +++ b/cells/japanese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-01 +description: HTMLやその他の形式でフォントを埋め込む方法を学びましょう。HTMLへのフォント埋め込み、ExcelをHTMLに変換、OLEのエクスポート方法、ExcelをXPSに変換する手順をステップバイステップで解説します。 +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: ja +og_description: HTML、XPS、OLE エクスポートでフォントを埋め込む方法。フルワークフローを学び、実行可能な Java コードを確認し、Excel + 変換用の HTML でフォント埋め込みをマスターしましょう。 +og_title: フォントを埋め込む方法 – 完全なJavaチュートリアル +tags: +- Aspose.Cells +- Java +- Document Export +title: フォント埋め込み方法 – HTML、XPS、OLEエクスポートの完全ガイド +url: /ja/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# フォント埋め込み方法 – HTML、XPS、OLE エクスポートの完全ガイド + +Excel ワークブックをウェブページや印刷可能なドキュメントに変換するとき、**フォントを埋め込む方法**に悩んだことはありませんか? あなただけではありません。出力は自分のマシンでは問題なく表示されても、別の環境では必要なフォントが無くて崩れることが多くの開発者の壁です。 + +このチュートリアルでは、Aspose.Cells for Java を使った実践シナリオを通して、HTML にフォントを埋め込む方法、XPS 変換時に絵文字のバリエーションセレクタを保持する方法、そして PPTX へエクスポートする際に OLE オブジェクトを編集可能なままに保つ方法を解説します。最後まで読むと、**embed fonts in html**、**convert excel to html**、**how to export ole**、**convert excel to xps** といった検索クエリに対するコピペ可能な解決策が手に入ります。 + +## 前提条件 + +- Java 17(または最近の JDK) +- Aspose.Cells for Java 25.x 以降 +- 開発 IDE(IntelliJ IDEA、Eclipse、または VS Code) +- Excel のデータ構造に関する基本的な知識 + +外部サービスは不要です。すべてローカルで実行できます。 + +## ソリューションの概要 + +1. **ワークブックを作成**し、`WRAPCOLS` 関数で縦方向の範囲を 3 列レイアウトに変換します。 +2. **フォントバリエーションセレクタを有効にして XPS として保存**し、絵文字をそのまま保持します。 +3. **フォント埋め込み付きで HTML にエクスポート**し、どこでも同じ見た目になることを保証します。 +4. **OLE オブジェクトを含むワークブックを PPTX にエクスポート**し、編集可能な状態を保持します。 +5. **マスタ‑詳細データバインディングを示す Smart Marker テンプレート**を適用します。 + +各ステップは独立した H2 セクションに分かれているので、検索エンジンや AI アシスタントが目的の情報をすばやく取得できます。 + +![フォント埋め込みのイラスト](image.png "フォント埋め込み") + +*画像代替テキスト: Excel から HTML、XPS、PPTX へのワークフローを示すフォント埋め込み図。* + +--- + +## Step 1 – Create a Workbook and Use WRAPCOLS (Why This Matters for embed fonts in html) + +フォント埋め込みについて語る前に、実際にデータを持つワークブックが必要です。`WRAPCOLS` 関数は 1 列を複数列に分割する便利な手段で、最終的な HTML を読みやすくすることが多いです。 + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**このステップの意図** +`WRAPCOLS` の呼び出しは、後で HTML のテーブルとして表示されるマルチカラム範囲を生成します。**embed fonts in html** を行う際、テーブルのスタイリングは埋め込んだフォントに依存するため、ブラウザ間で一貫した描画が保証されます。 + +--- + +## Step 2 – Save the Workbook as XPS While Preserving Emoji (convert excel to xps) + +印刷用フォーマットが必要な場合、XPS は堅実な選択肢です。ただし、近年の文書には絵文字やシンボルが含まれ、バリエーションセレクタが必要になることがあります。`EnableFontVariationSelectors` を有効にすると、これらの文字が変換時に失われません。 + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**得られるもの** +埋め込まれた絵文字が元のワークブックと同様に正しく表示される XPS ファイルが生成されます。これにより **convert excel to xps** の要件を満たし、フォント処理が HTML に限定されないことを示します。 + +--- + +## Step 3 – Export to HTML with Embedded Fonts (how to embed fonts & embed fonts in html) + +ここがチュートリアルの核心です:Excel を HTML に変換する際の **フォント埋め込み方法**。Aspose.Cells は生成された HTML ファイルにフォントを直接埋め込むことができ、外部フォントファイルが不要になります。 + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**仕組み** +`setEmbedFonts(true)` は、レンダラに対してワークブックで使用されたフォントファイルを読み取り、Base64 エンコードされた `@font-face` ルールとして ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +`@font-face` ルールに注目してください——これが **embed fonts in html** の具体的な実装です。 + +--- + +## Step 4 – Export a Workbook Containing an OLE Object to PPTX (how to export ole) + +ビジネスレポートでは Word 文書、PDF、あるいは別の Excel シートを OLE オブジェクトとして埋め込むことがよくあります。このようなワークブックを PowerPoint にエクスポートすると、オブジェクトの編集機能が失われがちです。Aspose.Cells はデフォルトで編集可能性を保持します。 + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**重要ポイント** +**how to export ole** を探している場合、このスニペットが正確な API 呼び出しを示します。生成された PowerPoint スライドには OLE オブジェクトがライブ状態で埋め込まれ、ダブルクリックで編集可能です——追加のポストプロセスは不要です。 + +--- + +## Step 5 – Apply a Smart Marker Template (master‑detail) and Finish the Demo + +Smart Marker はデータソース(Map、JSON、DataTable)を Excel テンプレートに直接バインドできる機能です。以下はマスタ‑詳細行を出力する最小例です。 + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**結果** +テンプレートプレースホルダーがデータで置換された新しいワークブック(`smartMarkerResult.xlsx`)が生成されます。このステップはフォントそのものに直接関係しませんが、**embed fonts in html** エクスポートの前に一般的に行われるレポート作成フローを示すことで、チュートリアル全体を締めくくります。 + +--- + +## Common Pitfalls & Pro Tips (Ensuring Successful Font Embedding) + +| 問題 | 発生原因 | 対策 | +|------|----------|------| +| HTML にフォントが含まれていない | ワークブックがサーバーにインストールされていないシステムフォントを使用している | データ読み込み前に `Workbook.getSettings().setDefaultFont("Arial")` を設定するか、必要なフォントファイルを手動で埋め込む | +| 出力 HTML が巨大になる | 多数の大きなフォントを埋め込んでいる | 実際に使用するフォントだけを埋め込むように `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)` を使用 | +| XPS 変換後に絵文字が消える | デフォルトでバリエーションセレクタが除去される | Step 2 のように `settings.setEnableFontVariationSelectors(true)` を有効化 | +| PPTX で OLE オブジェクトが静止画像になる | ワークブック保存時に `setSuppressOLEObjects(true)` が設定されている | PPTX に保存する際は OLE オブジェクトを抑制しないようにする | + +--- + +## Verifying the Results + +1. Chrome/Firefox で `embeddedFonts.html` を開きます。テーブルは埋め込まれたフォント(例: Arial)で表示され、マシンにそのフォントがインストールされていなくても同じ見た目になります。 +2. Windows XPS Viewer で `withVariations.xps` を開きます。👍 などの絵文字が正しく描画されます。 +3. PowerPoint で `oleEditable.pptx` を開き、OLE シェイプをダブルクリックします; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/korean/java/excel-import-export/_index.md b/cells/korean/java/excel-import-export/_index.md index 05a50915b1..33c310a49f 100644 --- a/cells/korean/java/excel-import-export/_index.md +++ b/cells/korean/java/excel-import-export/_index.md @@ -37,6 +37,8 @@ Aspose.Cells for Java를 사용하여 Excel 데이터 내보내기 방법의 잠 Aspose.Cells for Java를 사용하여 데이터를 CSV 형식으로 내보내는 방법을 알아보세요. 소스 코드가 포함된 단계별 가이드를 통해 CSV 파일을 원활하게 내보낼 수 있습니다. ### [Excel을 PDF로 내보내기](./exporting-excel-to-pdf/) Aspose.Cells for Java를 사용하여 Excel 파일을 PDF로 손쉽게 내보내는 방법을 알아보세요. 단계별 가이드를 통해 과정을 간소화할 수 있습니다. 지금 바로 변환을 시작하세요! +### [워크북에서 PDF 만들기 – 완전 Java 가이드](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Aspose.Cells for Java를 사용해 워크북을 PDF로 변환하는 전체 과정을 단계별로 안내합니다. ### [Excel을 XML Java로 내보내기](./export-excel-to-xml-java/) Aspose.Cells for Java를 사용하여 Java에서 Excel을 XML로 내보내는 방법을 알아보세요. 소스 코드가 포함된 단계별 가이드를 통해 원활한 데이터 변환을 경험해 보세요. ### [Excel에서 데이터 가져오기](./data-import-from-excel/) @@ -47,6 +49,7 @@ Aspose.Cells for Java를 사용하여 Excel 데이터를 JSON으로 내보내는 이 포괄적인 단계별 가이드를 통해 Aspose.Cells for Java를 사용하여 Excel 가져오기 데이터 유효성 검사를 구현하는 방법을 알아보세요. 데이터 정확성을 보장하고 사용자 경험을 향상시킵니다. ### [Excel을 HTML Java로 내보내기](./export-excel-to-html-java/) Aspose.Cells for Java를 사용하여 Java에서 Excel을 HTML로 내보내는 방법을 알아보세요. 소스 코드와 함께 제공되는 이 단계별 가이드를 따라 Excel 파일을 HTML로 손쉽게 변환해 보세요. +### [Java로 CSV 내보내기 – 유효숫자 설정 및 내보내기 범위 지정](./how-to-export-csv-with-java-set-significant-digits-export-ra/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/korean/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..bf3c9f2a12 --- /dev/null +++ b/cells/korean/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells for Java를 사용하여 PDF를 생성하고 워크북을 PDF로 저장하는 방법, Excel을 HTML로 + 내보내는 방법, 그리고 확장 기능을 사용하는 방법. 단계별 코드 포함. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: ko +og_description: Aspose.Cells for Java를 사용하여 워크북에서 PDF를 만드는 방법. 워크북을 PDF로 저장하고, Excel을 + HTML로 내보내며, EXPAND 함수를 사용하는 방법을 배웁니다. +og_title: 워크북에서 PDF 생성 방법 – Java 튜토리얼 +tags: +- Aspose.Cells +- Java +- PDF generation +title: 워크북에서 PDF 만들기 – 완전한 Java 가이드 +url: /ko/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 워크북에서 PDF 만들기 – 완전한 Java 가이드 + +Excel 워크북에서 서드‑파티 변환기를 사용하지 않고 **PDF를 만드는 방법**을 궁금해 본 적 있나요? 당신만 그런 것이 아닙니다. 많은 개발자들이 빠른 PDF 내보내기, HTML 미리보기, 혹은 고급 배열 수식이 한 번에 필요할 때 벽에 부딪히곤 합니다. + +이 튜토리얼에서는 바로 그 작업을 수행하는 단일, 독립형 Java 프로그램을 단계별로 살펴보겠습니다. **워크북을 PDF로 저장**하고, 동결된 행을 유지하면서 **Excel을 HTML로 내보내는 방법**을 보여주며, 워크시트 내에서 **EXPAND 함수 사용**을 시연합니다. 마지막까지 진행하면 Maven이나 Gradle 빌드에 바로 넣어 사용할 수 있는 실행 가능한 프로젝트를 얻게 됩니다. + +> **Pro tip:** 아래 모든 코드는 Aspose.Cells 23.10(이상)에서 작동합니다. 이전 버전을 사용 중이라면 일부 메서드 이름이 약간 다를 수 있습니다. + +--- + +## Prerequisites + +- **Java 17**(또는 다른 LTS 버전)이 설치되고 설정되어 있어야 합니다. +- **Aspose.Cells for Java** 라이브러리. 다음 Maven 의존성을 `pom.xml`에 추가하십시오: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- 선호하는 IDE 또는 텍스트 편집기(IntelliJ IDEA, VS Code, Eclipse 등). + +외부 API나 웹 서비스 없이 순수 Java와 Aspose.Cells SDK만 사용합니다. + +--- + +## Overview of the Solution + +구현을 **일곱 개의 논리적 단계**로 나눕니다: + +1. 워크북을 생성하고 **EXPAND** 함수를 시연합니다. +2. 폰트 변형 선택자를 활성화하고 **워크북을 PDF로 저장**합니다. +3. 동결된 행을 유지하면서 동일한 워크북을 HTML로 내보냅니다. +4. `IF`‑파라미터가 있는 Smart Marker를 사용해 조건부 텍스트를 삽입합니다. +5. 계층형 데이터를 위한 마스터‑디테일 Smart Marker를 적용합니다. +6. Base‑64‑인코딩된 이미지가 포함된 Markdown 파일을 로드합니다. +7. 정렬 및 테두리를 위한 GridJs 옵션을 구성하고 데이터를 삽입합니다. + +각 단계는 별도의 메서드로 감싸 `main` 메서드를 깔끔하게 유지하고, **무엇을** 입력하는지뿐 아니라 **왜** 그렇게 하는지를 보여줍니다. + +--- + +## Step 1 – Create a Workbook and Use the EXPAND Function + +**EXPAND** 함수는 Office 365에서 도입된 새로운 동적 배열 수식입니다. 셀을 수동으로 복사하지 않고도 범위를 더 큰 영역으로 자동으로 확장할 수 있습니다. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**이것이 중요한 이유:** +- `EXPAND`는 결과를 자동으로 빈 셀로 채워주므로, 이후 **워크북을 PDF로 저장**할 때 깨끗하고 직사각형 형태의 테이블이 PDF에 표시됩니다. +- `calculateFormula()`를 호출하면 내보내기 전에 수식 엔진이 실행됩니다. + +--- + +## Step 2 – Enable Font Variation Selectors and **Save Workbook as PDF** + +고급 타이포그래피(예: 이모지 또는 CJK 변형 선택자)를 지원해야 한다면, 저장하기 **전에** 해당 기능을 활성화해야 합니다. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**핵심 포인트:** 여기서 주요 키워드 **how to create pdf**에 대한 답을 얻을 수 있습니다—설정을 마친 후 `workbook.save(..., SaveFormat.PDF)`를 호출하면 됩니다. + +--- + +## Step 3 – **Export Excel to HTML** While Preserving Frozen Rows + +종종 이해관계자들이 빠른 웹 미리보기를 요구합니다. Aspose.Cells는 HTML로 내보낼 수 있으며, `setPreserveFrozenRows(true)`를 사용하면 Excel과 동일한 스크롤 경험을 유지합니다. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**왜 중요한가:** 동결된 행은 사용성 향상 요소입니다; 없으면 사용자가 페이지를 스크롤할 때 헤더 행이 사라집니다. + +--- + +## Step 4 – Smart Marker with an IF‑Parameter + +Smart Marker는 루프를 작성하지 않고도 데이터를 템플릿에 병합할 수 있게 해줍니다. `if`‑파라미터를 사용하면 마커 안에 직접 조건 로직을 추가할 수 있습니다. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +출력 PDF는 `IsVIP`가 `true`이므로 **“VIP Customer: Acme Corp”** 라고 표시됩니다. 플래그를 `false`로 바꾸면 **“Regular Customer: Acme Corp”** 가 표시되며, 추가 코드는 필요 없습니다. + +--- + +## Step 5 – Master‑Detail Smart Marker Using a Hierarchical Range + +부모‑자식 데이터(예: 주문 및 라인 아이템)가 있을 때, 마스터‑디테일 마커를 사용하면 수동으로 행을 삽입할 필요가 없습니다. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**얻는 이점:** 엔진이 각 주문에 대해 마스터 행을 확장하고, 상세 행을 자동으로 그 아래에 중첩시킵니다—청구서나 구매 보고서에 이상적입니다. + +--- + +## Step 6 – Load a Markdown Document with Embedded Base‑64 Images + +소스 데이터가 Markdown에 있다면(문서 파이프라인에서 흔함), Aspose.Cells가 이를 바로 워크북에 렌더링할 수 있습니다. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**예외 상황 주의:** Base‑64 문자열이 잘못된 경우, Aspose는 이미지를 건너뛰고 문서의 나머지 부분을 계속 처리합니다—크래시가 발생하지 않습니다. + +--- + +## Step 7 – Configure GridJs Options and Insert Data + +GridJs는 Aspose가 HTML로 렌더링할 수 있는 가벼운 JavaScript 그리드입니다. 숫자를 정렬하고 테두리를 적용하면 가독성이 향상됩니다. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**왜 중요한가:** 적절한 정렬과 테두리는 생성된 HTML을 깔끔한 스프레드시트처럼 보이게 하여 대시보드에 유용합니다. + +--- + +## Putting It All Together – The `main` Method + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/korean/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/korean/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..5ec2dd2631 --- /dev/null +++ b/cells/korean/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,265 @@ +--- +category: general +date: 2026-03-01 +description: Java 워크북에서 CSV를 내보내는 방법과 유효숫자 및 내보내기 범위를 설정하는 방법을 한 번에 명확하게 배워보세요. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: ko +og_description: Java에서 CSV를 내보내는 방법, 유효 숫자 설정, 범위를 CSV로 내보내는 방법을 실용적인 코드와 팁으로 마스터하세요. +og_title: Java로 CSV 내보내기 방법 – 전체 단계별 가이드 +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Java로 CSV 내보내기 – 유효숫자 설정 및 내보내기 범위 지정 +url: /ko/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java로 CSV 내보내는 방법 – 유효 숫자 설정 및 범위 내 CSV 내보내기 + +Java 워크북에서 숫자 정밀도를 잃지 않고 **CSV를 내보내는 방법**을 궁금해 본 적 있나요? 간단히 `toString()`을 사용했더니 반올림 오류가 난무했을 수도 있습니다. 특히 재무 데이터나 과학 결과에 대해 **유효 숫자를 설정**해야 할 때 흔히 겪는 문제입니다. + +이 튜토리얼에서는 **CSV를 내보내는 방법**, **유효 숫자를 설정하는 방법**, 그리고 데이터를 깔끔하게 유지하면서 **범위를 CSV로 내보내는 방법**을 보여주는 완전한 실행 가능한 예제를 확인할 수 있습니다. 각 라인을 하나씩 살펴보며 API 호출 뒤에 숨은 *이유*를 설명하고, 일반적인 함정을 피할 수 있는 팁을 제공합니다. 별도의 문서를 찾아볼 필요 없이 바로 복사‑붙여넣기 할 수 있는 자체 포함 솔루션입니다. + +## 배울 내용 + +- `setNumberSignificantDigits`로 숫자 정밀도를 구성하고 워크북을 생성합니다. +- 특정 셀 범위를 깔끔하게 포맷된 CSV 문자열로 내보냅니다. +- `DateTimeFormatInfo`를 사용해 일본 연호 날짜를 파싱합니다. +- 수식을 다시 계산하여 동적 배열 결과를 최신 상태로 유지합니다. +- 피벗 테이블을 PNG 이미지로 렌더링합니다. +- Smart Marker를 사용해 주석을 삽입하고 워크북을 저장합니다. + +이 모든 작업은 Aspose.Cells for Java 라이브러리 버전 23.12(작성 시 최신)로 수행됩니다. 클래스패스에 JAR 파일이 있으면 바로 시작할 수 있습니다. + +--- + +## Step 1: 워크북 생성 및 **유효 숫자 설정** + +아무것도 내보내기 전에 워크북 객체가 필요합니다. 많은 개발자가 간과하는 첫 번째 요소는 숫자 정밀도입니다. 기본적으로 Aspose.Cells는 전체 double 정밀도를 사용하므로 CSV에서 길고 다루기 힘든 문자열이 생성될 수 있습니다. 유효 숫자를 설정하면 가장 중요한 자리만 남기면서 출력 길이를 줄일 수 있습니다. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**왜 중요한가요?** +`12345.6789`와 같은 값을 가진 셀을 숫자 제한 없이 내보내면 CSV에 전체 값이 표시되어 보고서가 어수선해집니다. `setNumberSignificantDigits(5)`를 사용하면 같은 셀은 `12346`으로 표시되며, 이는 비즈니스 사용자가 기대하는 형태와 일치합니다. + +> **Pro tip:** 열마다 다른 정밀도가 필요하면 전역 설정 대신 사용자 정의 `Style`을 적용할 수 있습니다. + +--- + +## Step 2: **범위를 CSV로 내보내기** – 포맷이 중요합니다 + +워크북이 준비되었으니 이제 직사각형 데이터 블록을 가져와 CSV 문자열로 변환해 보겠습니다. 모든 숫자를 두 자리 소수점(`0.00`) 형식으로 맞춰 정렬하도록 강제합니다. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +`exportDataTable` 호출이 핵심 작업을 수행합니다. `exportAsString`을 설정했기 때문에 메서드는 `String`을 반환하며, 이를 콘솔에 출력하거나 파일에 쓰거나 HTTP로 전송할 수 있습니다. **범위를 CSV로 내보내기** 단계는 앞서 정의한 전역 `setNumberSignificantDigits` 설정을 그대로 적용하므로, 숫자는 다섯 자리 유효 숫자로 반올림되고 두 자리 소수점으로 표시됩니다. + +**예상 출력(일부 생략):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Common question:** *구분자를 세미콜론 등 다른 문자로 바꾸고 싶다면?* +> 내보내기 전에 `exportOptions.setSeparator(";")`를 호출하면 됩니다. + +--- + +## Step 3: 일본 연호 날짜 파싱 (보너스 유틸리티) + +CSV와 직접적인 관련은 없지만, 많은 Excel 시트에 로케일‑특정 날짜가 포함됩니다. 여기서는 `"R3/04/01"`과 같은 일본 연호 문자열을 표준 `DateTime` 객체로 변환하는 방법을 보여줍니다. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +출력: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**왜 포함했나요?** +CSV 내보내기가 ISO‑8601 날짜를 기대하는 하위 시스템으로 전달될 경우, 먼저 로컬 형식을 정규화해야 합니다. 이 스니펫은 *방법*과 *이유*를 한 곳에 정리합니다. + +--- + +## Step 4: 수식 재계산 – 동적‑배열 결과 최신 유지 + +워크북에 수식(`=SUM(A1:A10)` 등)이 포함되어 있으면 설정을 변경한 뒤 자동으로 업데이트되지 않습니다. `calculateFormula`를 호출하면 전체 재계산이 수행되어 내보낸 CSV가 최신 값을 반영합니다. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Watch out:** 대형 워크북은 재계산에 눈에 띄는 시간이 소요될 수 있습니다. 성능이 중요한 경우 `calculateFormula(FormulaCalculationOptions)`를 사용해 범위를 제한하는 것을 고려하세요. + +--- + +## Step 5: 첫 번째 피벗 테이블을 PNG 이미지로 렌더링 + +CSV와 함께 피벗 테이블의 시각적 스냅샷이 필요할 때가 있습니다. 아래 코드는 첫 번째 워크시트에 있는 첫 번째 피벗 테이블을 PNG 파일로 렌더링합니다. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** 워크북에 피벗이 아직 없으면 프로그래밍 방식으로 생성할 수 있습니다—자세한 내용은 Aspose.Cells 문서의 간단한 예제를 참고하세요. + +--- + +## Step 6: Smart Marker를 사용해 주석 작성 및 워크북 저장 + +Smart Marker를 이용하면 간단한 플레이스홀더로 셀에 동적 콘텐츠를 삽입할 수 있습니다. 여기서는 지정된 셀에 “Reviewed by QA”와 같은 주석을 작성한 뒤 워크북을 저장합니다. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}` 플레이스홀더는 시트 어디에든 배치할 수 있습니다(예: 셀 `A1`). `apply`가 실행되면 해당 플레이스홀더가 제공된 값으로 교체됩니다. + +**Result:** `output/commented.xlsx` 파일에 주석이 포함된 것을 확인할 수 있으며, 이전에 생성된 `pivot.png`와 콘솔에 출력된 CSV 문자열도 함께 존재합니다. + +--- + +## Full Working Example + +모두 합치면 아래와 같은 완전한 프로그램이 됩니다. 컴파일 후 바로 실행해 보세요. + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Expected Console Output + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +실행 후 `output/pivot.png`(피벗이 존재한 경우)와 `output/commented.xlsx` 파일이 디스크에 생성됩니다. + +--- + +## Frequently Asked Questions & Edge Cases + +- **물리적인 CSV 파일로 직접 내보낼 수 있나요?** + 네. `exportAsString` 블록을 `dataRange.exportDataTable("output/data.csv", exportOptions);` 로 교체하면 됩니다. + +- **시트가 숫자에 대해 다른 로케일을 사용한다면?** + 내보내기 전에 `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))`를 설정하면 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/korean/java/excel-pivot-tables/_index.md b/cells/korean/java/excel-pivot-tables/_index.md index 91a3e7b29b..cfbcc23202 100644 --- a/cells/korean/java/excel-pivot-tables/_index.md +++ b/cells/korean/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aspose.Cells for Java를 사용하여 피벗 테이블에 계산 필드를 만 Aspose.Cells for Java에서 피벗 테이블 데이터를 새로 고치는 방법을 알아보세요. 데이터를 손쉽게 최신 상태로 유지하세요. ### [피벗 테이블 스타일 사용자 지정](./customizing-pivot-table-styles/) Aspose.Cells for Java API에서 피벗 테이블 스타일을 사용자 지정하는 방법을 알아보세요. 시각적으로 매력적인 피벗 테이블을 쉽게 만들 수 있습니다. +### [Java에서 피벗 테이블 복사 – 보존하고 PPTX로 내보내기](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Aspose.Cells for Java를 사용해 피벗 테이블을 복사하고, 원본을 유지한 채 PPTX 파일로 내보내는 방법을 알아보세요. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/korean/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..f3dc183e36 --- /dev/null +++ b/cells/korean/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-03-01 +description: 피벗을 유지하면서 Java에서 피벗 테이블을 복사하고, Excel을 PPTX로 내보내며, Excel 자동 필터를 비활성화하고, + JSON 배열에 스마트 마커를 사용하는 전체 단계별 가이드. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: ko +og_description: Java에서 피벗 테이블 복사, 피벗 정의 보존, PPTX로 내보내기, 자동 필터 비활성화, Smart Marker 사용 + – 개발자를 위한 완전 가이드. +og_title: Java에서 피벗 테이블 복사 – 보존하고 PPTX로 내보내기 +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Java에서 피벗 테이블 복사 – 유지하고 PPTX로 내보내기 +url: /ko/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java에서 피벗 테이블 복사 – 유지하고 PPTX로 내보내기 + +하나의 워크북에서 다른 워크북으로 **copy pivot table**을 복사하면서 기본 피벗 정의를 잃어버린 적이 있나요? 당신만 그런 고민을 하는 것이 아닙니다. 실제 프로젝트에서는 데이터를 옮기는 경우가 많으며, 실행 시 오류를 일으키는 손상된 피벗을 원하지 않을 것입니다. + +이 튜토리얼에서는 **copy pivot table**을 수행할 뿐만 아니라 복사 시 **preserve pivot table**을 유지하는 방법, **export Excel to PPTX**, **disable Excel AutoFilter**, 그리고 **use smart marker**를 사용해 JSON 배열을 단일 셀에 삽입하는 방법까지 모두 다룹니다. 마지막에는 네 가지 시나리오를 모두 포함한 단일 실행 가능한 Java 프로그램을 얻게 됩니다. + +## Prerequisites + +- Java 8 이상 (코드는 Java 11에서도 동작합니다) +- Aspose.Cells for Java 라이브러리 (버전 23.9 이상) – Maven Central에서 가져올 수 있습니다 +- 피벗 테이블, 테이블, 텍스트 상자와 같은 Excel 개념에 대한 기본적인 이해 + +Aspose.Cells JAR가 없으시다면 `pom.xml`에 다음을 추가하세요: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +그럼 시작해 보겠습니다. + +## 단계 1: 피벗 테이블 복사 – 피벗 정의 유지 + +피벗 테이블이 포함된 셀 범위를 단순히 복사하면 피벗 메타데이터가 남지 않는 경우가 많습니다. Aspose.Cells는 `copyRange`와 `CopyOptions` 인스턴스를 사용해 정의를 그대로 유지하는 깔끔한 방법을 제공합니다. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**왜 작동하나요:** `CopyOptions`는 Aspose.Cells에게 피벗 캐시와 필드 설정을 포함한 모든 정보를 함께 복사하도록 지시합니다. 이를 사용하지 않으면 값만 복사되고 피벗을 새로 고칠 수 없게 됩니다. + +**예외 상황:** 소스 피벗이 하드코딩된 `A1:G20`보다 넓다면 범위를 조정하거나 `sourceSheet.getPivotTables().get(0).getDataRange()`를 사용해 동적으로 가져오세요. + +![피벗 테이블 복사 예시](image.png "Java에서 피벗 테이블 복사") + +*이미지 대체 텍스트: Java에서 피벗 테이블 복사 다이어그램* + +## 단계 2: 편집 가능한 텍스트 상자가 포함된 워크시트를 PPTX로 내보내기 + +Excel 시트를 PowerPoint 슬라이드로 변환해야 할 때가 많습니다—예를 들어 주간 대시보드를 발표해야 할 경우 등. Aspose.Cells는 텍스트 상자와 같은 도형을 보존하면서 워크시트를 바로 PPTX 파일로 저장할 수 있습니다. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**무슨 일이 일어나나요:** `SaveFormat.PPTX`와 함께 `save` 메서드를 호출하면 전체 시트가 PowerPoint 슬라이드로 변환되며, 텍스트 상자 안의 내용도 편집 가능한 상태로 유지됩니다. PPTX를 PowerPoint에서 열면 상자 안 텍스트를 그대로 편집할 수 있습니다. + +**팁:** 여러 시트가 있을 때 특정 시트만 저장하고 싶다면, 저장하기 전에 `wb.getWorksheets().removeAt(index)`를 사용해 나머지 시트를 제거하세요. + +## 단계 3: 테이블에서 Excel AutoFilter 비활성화 + +AutoFilter는 최종 사용자가 편리하게 사용할 수 있지만, 데이터를 내보내기 전이나 깔끔한 보고서를 생성하기 위해 프로그램matically 끄고 싶을 때가 있습니다. 여기서는 Excel 테이블에서 **disable excel autofilter**를 수행하는 방법을 보여드립니다. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**왜 필요할까요:** CSV나 PDF와 같이 AutoFilter를 지원하지 않는 형식으로 내보낼 경우 필터 아이콘이 남아 있어 보기 좋지 않을 수 있습니다. 이를 비활성화하면 깨끗한 출력물을 얻을 수 있습니다. + +**흔히 놓치는 점:** 시트에 테이블이 없으면 `getTables().get(0)`가 `IndexOutOfBoundsException`을 발생시킵니다. 실제 코드에서는 항상 `sheet.getTables().size()`를 먼저 확인하세요. + +## 단계 4: Smart Marker 사용 – JSON 배열을 단일 셀 값으로 삽입 + +Smart Marker는 Aspose의 템플릿 엔진입니다. 전체 JSON 배열을 하나의 셀 값으로 처리하면 로깅이나 구조화된 데이터를 하위 시스템에 전달할 때 유용합니다. 이제 **use smart marker**를 활용해 이를 구현해 보겠습니다. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**작동 원리:** 워크북에 있는 `${json}` 마커는 `ArrayAsSingle` 옵션을 설정했기 때문에 전체 JSON 문자열로 교체됩니다. 이 옵션이 없으면 Aspose가 배열 요소를 각각 별도의 행으로 확장하려 시도합니다. + +**변형:** 배열을 행별로 나누어 삽입하고 싶다면 `ArrayAsSingle`을 생략하고 Smart Marker가 자동으로 확장하도록 두면 됩니다. + +## 전체 작업 예제 – 모든 단계 결합 + +아래는 지금까지 다룬 모든 작업을 하나의 Java 클래스로 연결한 예제입니다. 일반 `main` 메서드로 실행하면 되며, 파일 경로만 환경에 맞게 조정하면 됩니다. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/korean/java/getting-started/_index.md b/cells/korean/java/getting-started/_index.md index bcb0ab73c0..fe4cbd3496 100644 --- a/cells/korean/java/getting-started/_index.md +++ b/cells/korean/java/getting-started/_index.md @@ -71,7 +71,8 @@ Aspose.Cells를 사용하여 Java에서 SpreadsheetML 파일을 효율적으로 ### [Java에서 Aspose.Cells 버전을 검색하는 방법: 단계별 가이드](./retrieve-aspose-cells-version-java-guide/) 이 포괄적인 가이드를 통해 Java 프로젝트에서 Aspose.Cells 버전을 확인하는 방법을 알아보세요. 호환성을 보장하고 새로운 기능을 효율적으로 활용하세요. - +### [라이선스가 적용된 워크북 만들기 – 전체 Aspose.Cells Java 가이드](./create-licensed-workbook-full-aspose-cells-java-guide/) +Aspose.Cells Java를 사용하여 라이선스가 적용된 워크북을 생성하고 전체 기능을 활용하는 방법을 단계별로 안내합니다. ## 추가 자료 diff --git a/cells/korean/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/korean/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..2da458b564 --- /dev/null +++ b/cells/korean/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells Java를 사용하여 라이선스가 적용된 워크북을 빠르게 만들세요. Aspose 라이선스를 적용하는 방법, + Java에서 Aspose 라이선스를 설정하는 방법, 그리고 Aspose로 Excel을 읽는 방법을 한 튜토리얼에서 배워보세요. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: ko +og_description: Aspose.Cells Java를 사용하여 라이선스가 적용된 워크북을 생성합니다. 이 가이드는 Aspose에 라이선스를 + 적용하고, Aspose 라이선스를 Java에 설정하며, Aspose로 Excel을 읽는 방법을 보여줍니다. +og_title: 라이선스가 적용된 워크북 만들기 – Aspose.Cells Java 튜토리얼 +tags: +- Aspose.Cells +- Java +- Excel Automation +title: 라이선스가 적용된 워크북 만들기 – 전체 Aspose.Cells Java 가이드 +url: /ko/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 라이선스가 적용된 워크북 만들기 – 전체 Aspose.Cells Java 가이드 + +라이선스 오류에 걸리지 않고 **create licensed workbook**을(를) 만드는 방법이 궁금했나요? 당신만 그런 것이 아닙니다—많은 개발자들이 Aspose.Cells를 처음 접할 때 이 장벽에 부딪힙니다. 좋은 소식은? 해결 방법은 간단하며, 이 가이드는 단계별로 안내합니다. + +몇 분만 투자하면 **how to license Aspose**를 알게 되고, 정확히 **set Aspose license Java**를 설정하며, 보고서 작성이나 데이터 마이그레이션과 같은 실제 작업을 위해 **read Excel with Aspose**를 사용할 준비가 됩니다. 애매한 설명 없이 바로 복사‑붙여넣기 할 수 있는 완전한 실행 예제가 제공됩니다. + +--- + +## 필요 사항 + +- Java 17 또는 최신 버전 (가장 최신 안정 릴리스를 권장) +- Aspose.Cells for Java 23.9 (또는 최신 버전) +- Aspose.Cells 라이선스 파일 (`Aspose.Cells.Java.lic`) +- 익숙한 IDE 또는 빌드 도구 (Maven, Gradle, 또는 일반 `javac`) + +위 항목 중 익숙하지 않은 것이 있더라도 걱정하지 마세요—각 항목은 아래 단계에서 다룹니다. + +--- + +## 단계 1: Aspose.Cells 의존성 추가 + +**create licensed workbook**을 수행하기 전에 라이브러리를 클래스패스에 추가해야 합니다. Maven을 사용할 경우 다음과 같습니다: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Gradle의 경우: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro tip:** 일반 `javac` 컴파일을 사용하는 경우, JAR 파일을 `libs/` 폴더에 넣고 `-cp` 옵션에 추가하면 됩니다. + +--- + +## 단계 2: **How to License Aspose** – 라이선스 파일 로드 + +라이선스 없이 Aspose API를 호출하면 생성된 Excel 파일에 워터마크가 표시됩니다. 이를 방지하려면 프로그램 초기에 **set Aspose license Java**를 설정해야 합니다. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Why this matters:** `License` 객체는 Aspose에 평가 모드를 건너뛰도록 알려 워터마크를 제거하고 전체 API를 사용할 수 있게 합니다. 경로가 잘못되면 예외가 발생하므로 즉시 확인할 수 있습니다. + +--- + +## 단계 3: **Create Licensed Workbook** – Excel 파일 만들기 + +라이선스가 적용되었으므로 이제 안전하게 **create licensed workbook** 객체를 만들 수 있습니다. 아래는 최소하지만 완전한 예제로, 이후에 **read Excel with Aspose**를 시연합니다. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +이 예제는 다음을 수행합니다: + +1. **Step 2**의 유틸리티를 호출하여 **set Aspose license Java**를 수행합니다. +2. 새로운 `Workbook`을 인스턴스화합니다 – **create licensed workbook** 작업의 핵심입니다. +3. 작은 테이블을 작성하고 XLSX로 저장한 뒤 즉시 다시 읽어 **read Excel with Aspose**가 워터마크 없이 작동함을 증명합니다. + +프로그램을 실행하면 다음과 같이 출력됩니다: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +생성된 파일을 열면 Aspose 워터마크가 없는 깔끔한 스프레드시트를 확인할 수 있습니다—라이선스가 활성화된 증거입니다. + +--- + +## 단계 4: 일반적인 함정 및 엣지 케이스 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **LicenseNotFoundException** | 경로가 잘못되었거나 파일이 없습니다. | 절대 경로를 사용하거나 리소스(`getClass().getResourceAsStream`)에서 파일을 로드하세요. | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR가 클래스패스에 없습니다. | Maven/Gradle 의존성을 확인하거나 JAR를 수동으로 추가하세요. | +| **Saving fails on Windows** | 대상 폴더가 존재하지 않습니다. | `output/` 디렉터리를 생성하도록 합니다 (`new File("output").mkdirs();`). | +| **Reading older .xls files** | 기본 `SaveFormat`이 오래된 형식을 지원하지 않을 수 있습니다. | 저장 시 `SaveFormat.XLS`를 사용하거나 로드 시 Aspose가 자동 감지하도록 합니다. | + +> **Watch out for:** 서버에 배포할 경우, 라이선스 파일을 웹‑앱 루트 밖에 두어 우발적인 노출을 방지해야 합니다. + +--- + +## 단계 5: 라이선스 프로그램matically 검증 (선택 사항) + +무거운 작업을 수행하기 전에 라이선스가 올바르게 로드되었는지 다시 확인하고 싶을 때가 있습니다. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +`LicenseChecker.isLicensed("...")`를 호출하고 `false`를 반환하면 중단할 수 있습니다. 이는 특히 CI/CD 파이프라인에서 추가적인 안전망을 제공합니다. + +--- + +## 시각적 개요 + +![라이선스 적용부터 워크북 생성 및 읽기까지의 흐름을 보여주는 다이어그램](create-licensed-workbook-diagram.png "create licensed workbook") + +*이미지 대체 텍스트:* **create licensed workbook diagram** – Aspose 라이선스 적용, 워크북 생성, Excel 읽기 단계를 보여줍니다. + +--- + +## 결론 + +이제 Aspose.Cells for Java를 사용하여 **create licensed workbook**을 위한 완전한 엔드‑투‑엔드 솔루션을 갖추었습니다. **how to license Aspose**를 다루었고, 정확한 **set Aspose license Java** 코드를 시연했으며, **read Excel with Aspose**를 빠르게 확인하여 모든 것이 정상 작동함을 확인했습니다. + +다음으로 탐색해볼 수 있는 항목: + +- 셀 스타일링(폰트, 색상) – 전문 보고서에 적합합니다. +- CSV 또는 PDF로 내보내기 – Aspose는 다양한 포맷을 기본 지원합니다. +- 대용량 데이터 작업 – 템플릿 작성을 위해 `WorkbookDesigner`를 사용합니다. + +자유롭게 실험해 보시고, 문제가 발생하면 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/korean/java/ole-objects-embedded-content/_index.md b/cells/korean/java/ole-objects-embedded-content/_index.md index eeed99ed39..2aa2fc9b29 100644 --- a/cells/korean/java/ole-objects-embedded-content/_index.md +++ b/cells/korean/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Aspose.Cells for Java를 사용하여 Excel 파일에 포함된 PowerPoint 객 ### [Aspose.Cells Java를 사용하여 Excel에서 ActiveX 컨트롤 제거](./remove-activex-controls-excel-aspose-cells-java/) Aspose.Words Java에 대한 코드 튜토리얼 - +### [글꼴 삽입 방법 – HTML, XPS 및 OLE 내보내기를 위한 완전 가이드](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Aspose.Cells for Java를 사용하여 HTML, XPS 및 OLE 내보내기 시 글꼴을 삽입하는 방법을 단계별로 안내합니다. ## 추가 자료 diff --git a/cells/korean/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/korean/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..8939329360 --- /dev/null +++ b/cells/korean/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-01 +description: HTML 및 기타 형식에 글꼴을 삽입하는 방법을 배워보세요. 단계별 튜토리얼에서는 HTML에 글꼴 삽입, Excel을 HTML로 + 변환, OLE 내보내는 방법, 그리고 Excel을 XPS로 변환하는 내용을 다룹니다. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: ko +og_description: HTML, XPS 및 OLE 내보내기에서 글꼴을 삽입하는 방법. 전체 워크플로를 배우고 실행 가능한 Java 코드를 확인하며, + Excel 변환을 위한 HTML 글꼴 삽입을 마스터하세요. +og_title: 글꼴 삽입 방법 – 전체 Java 튜토리얼 +tags: +- Aspose.Cells +- Java +- Document Export +title: 글꼴 삽입 방법 – HTML, XPS 및 OLE 내보내기를 위한 완전 가이드 +url: /ko/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML, XPS 및 OLE 내보내기를 위한 폰트 삽입 완전 가이드 + +Excel 워크북을 웹 페이지나 인쇄 가능한 문서로 변환할 때 **폰트를 삽입하는 방법**이 궁금하셨나요? 혼자가 아닙니다. 많은 개발자들이 출력은 자신의 머신에서는 정상인데 다른 환경에서는 필요한 폰트가 없어 깨지는 문제에 부딪히곤 합니다. + +이 튜토리얼에서는 Aspose.Cells for Java를 사용한 실제 시나리오를 단계별로 살펴봅니다: HTML에 폰트를 삽입하고, XPS로 변환할 때 이모지 변형 선택자를 보존하며, PPTX로 내보낼 때 OLE 객체를 편집 가능하게 유지합니다. 최종적으로 “폰트를 삽입하는 방법”에 대한 확실한 복사‑붙여넣기 솔루션을 제공하며 **embed fonts in html**, **convert excel to html**, **how to export ole**, **convert excel to xps**와 같은 주제도 다룹니다. + +## 사전 요구 사항 + +- Java 17 (또는 최신 JDK) +- Aspose.Cells for Java 25.x 이상 +- 개발 IDE (IntelliJ IDEA, Eclipse, 또는 VS Code) +- Excel 데이터 구조에 대한 기본적인 이해 + +외부 서비스가 필요하지 않습니다—모든 작업이 로컬에서 실행됩니다. + +## 솔루션 개요 + +1. **워크북 생성** 및 `WRAPCOLS` 함수를 사용해 세로 범위를 3열 레이아웃으로 변환합니다. +2. **워크북을 XPS로 저장**하면서 폰트 변형 선택자를 활성화해 이모지가 손상되지 않도록 합니다. +3. **HTML로 내보내기** 시 폰트를 삽입하여 페이지가 모든 환경에서 동일하게 보이도록 보장합니다. +4. **OLE 객체가 포함된 워크북을 PPTX로 내보내기**, 편집 가능성을 유지합니다. +5. **스마트 마커 템플릿 적용**으로 마스터‑디테일 데이터 바인딩을 시연합니다. + +![폰트 삽입 방법 일러스트레이션](image.png "폰트 삽입 방법") + +*이미지 대체 텍스트: Excel에서 HTML, XPS 및 PPTX로의 워크플로를 보여주는 폰트 삽입 다이어그램.* + +--- + +## 단계 1 – 워크북 생성 및 WRAPCOLS 사용 (embed fonts in html와 관련된 이유) + +폰트를 삽입하기에 앞서 실제 데이터가 들어 있는 워크북이 필요합니다. `WRAPCOLS` 함수는 하나의 열을 여러 열로 나누는 편리한 방법으로, 최종 HTML을 보다 읽기 쉽게 만들 수 있습니다. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**왜 이 단계인가?** +`WRAPCOLS` 호출은 나중에 HTML에서 테이블로 나타나는 다중 열 범위를 생성합니다. 이후 **embed fonts in html**을 수행하면 테이블 스타일이 삽입한 폰트에 의존하게 되어 브라우저 간 일관된 렌더링을 보장합니다. + +--- + +## 단계 2 – 이모지를 보존하면서 워크북을 XPS로 저장 (convert excel to xps) + +인쇄용 포맷이 필요하다면 XPS가 좋은 선택입니다. 하지만 최신 문서에는 변형 선택자를 사용하는 이모지나 기호가 포함되는 경우가 많습니다. `EnableFontVariationSelectors`를 활성화하면 이러한 문자들이 변환 과정에서도 유지됩니다. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**얻는 결과:** +임베드된 이모지가 원본 워크북과 동일하게 표시되는 XPS 파일을 얻습니다. 이는 **convert excel to xps** 요구 사항을 충족시키며 폰트 처리가 HTML에만 국한되지 않음을 보여줍니다. + +--- + +## 단계 3 – 폰트를 삽입한 HTML로 내보내기 (how to embed fonts & embed fonts in html) + +이제 튜토리얼의 핵심인 Excel을 HTML로 변환할 때 **폰트를 삽입하는 방법**을 살펴봅니다. Aspose.Cells를 사용하면 생성된 HTML 파일에 폰트를 직접 삽입할 수 있어 외부 폰트 파일이 필요하지 않습니다. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**작동 방식:** +`setEmbedFonts(true)`는 렌더러에게 워크북에서 사용된 폰트 파일을 읽어 ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +`@font-face` 규칙을 확인하세요—이것이 **embed fonts in html**에 대한 구체적인 답변입니다. + +--- + +## 단계 4 – OLE 객체가 포함된 워크북을 PPTX로 내보내기 (how to export ole) + +많은 비즈니스 보고서에서는 Word 문서, PDF 또는 다른 Excel 시트를 OLE 객체로 삽입합니다. 이러한 워크북을 PowerPoint로 내보낼 경우 객체 편집 기능이 사라지는 경우가 많습니다. Aspose.Cells는 기본적으로 편집 가능성을 유지합니다. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**왜 중요한가:** +**how to export ole**를 찾고 있다면, 이 스니펫이 정확한 API 호출을 보여줍니다. 결과 PowerPoint 슬라이드에는 OLE 객체가 실시간으로 두 번 클릭해 편집할 수 있는 컴포넌트로 포함되어 있어 추가 후처리가 필요 없습니다. + +--- + +## 단계 5 – 스마트 마커 템플릿 적용 (master‑detail) 및 데모 마무리 + +스마트 마커를 사용하면 데이터 소스(Map, JSON, DataTable)를 Excel 템플릿에 직접 바인딩할 수 있습니다. 아래는 마스터‑디테일 행을 출력하는 최소 예제입니다. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**결과:** +템플릿 자리표시자가 데이터로 교체된 새로운 워크북(`smartMarkerResult.xlsx`)이 생성됩니다. 이 단계는 폰트와 직접적인 관련은 없지만, 일반적인 보고 워크플로를 보여줌으로써 **embed fonts in html** 내보내기 전에 자주 수행되는 과정을 완성합니다. + +--- + +## 흔히 발생하는 문제 및 전문가 팁 (폰트 삽입 성공 보장) + +| 문제 | 발생 원인 | 해결 방법 | +|-------|----------------|-----| +| HTML 파일에 폰트가 누락됨 | 워크북이 서버에 설치되지 않은 시스템 폰트를 사용하고 있습니다. | 데이터 로드 전에 `Workbook.getSettings().setDefaultFont("Arial")`을 사용하거나, 필요한 폰트 파일을 수동으로 삽입하세요. | +| 출력 HTML 파일이 너무 큼 | 많은 대용량 폰트를 삽입하면 파일 크기가 크게 증가합니다. | 실제로 사용하는 폰트만 삽입하도록 제한하세요: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| XPS 변환 후 이모지 사라짐 | 기본적으로 변형 선택자가 제거됩니다. | Step 2에서와 같이 `settings.setEnableFontVariationSelectors(true)`를 활성화하세요. | +| PPTX에서 OLE 객체가 정적 이미지로 변환됨 | 원본 워크북이 `setSuppressOLEObjects(true)`와 함께 저장되었습니다. | PPTX로 저장할 때 OLE 객체를 **억제하지 않도록** 하세요. | + +--- + +## 결과 확인 + +1. Chrome/Firefox에서 `embeddedFonts.html`을 엽니다. 해당 폰트가 머신에 설치되지 않았더라도 테이블이 삽입된 폰트(예: Arial)로 표시되어야 합니다. +2. Windows XPS Viewer에서 `withVariations.xps`를 엽니다. 👍와 같은 이모지가 올바르게 렌더링되어야 합니다. +3. PowerPoint에서 `oleEditable.pptx`를 엽니다. OLE 도형을 두 번 클릭합니다; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/polish/java/excel-import-export/_index.md b/cells/polish/java/excel-import-export/_index.md index 05d73cd536..af27322b27 100644 --- a/cells/polish/java/excel-import-export/_index.md +++ b/cells/polish/java/excel-import-export/_index.md @@ -47,6 +47,10 @@ Dowiedz się, jak eksportować dane Excela do JSON za pomocą Aspose.Cells dla J Dowiedz się, jak wdrożyć walidację importu danych Excela przy użyciu Aspose.Cells for Java dzięki temu kompleksowemu przewodnikowi krok po kroku. Zapewnij dokładność danych i popraw wrażenia użytkownika. ### [Eksportuj Excela do HTML Java](./export-excel-to-html-java/) Dowiedz się, jak eksportować Excel do HTML w Javie za pomocą Aspose.Cells for Java. Postępuj zgodnie z tym przewodnikiem krok po kroku z kodem źródłowym, aby bezproblemowo przekonwertować pliki Excel do HTML. +### [Jak wyeksportować CSV w Javie – Ustaw znaczące cyfry i zakres eksportu do CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Dowiedz się, jak wyeksportować dane do CSV w Javie, ustawiając znaczące cyfry i zakres eksportu, korzystając z Aspose.Cells for Java. +### [Jak utworzyć PDF ze skoroszytu – Kompletny przewodnik Java](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Dowiedz się, jak przy użyciu Aspose.Cells for Java utworzyć plik PDF ze skoroszytu Excel w kilku prostych krokach. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/polish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..6719e1b372 --- /dev/null +++ b/cells/polish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,300 @@ +--- +category: general +date: 2026-03-01 +description: Jak utworzyć PDF i zapisać skoroszyt jako PDF, wyeksportować Excel do + HTML oraz użyć funkcji expand z Aspose.Cells dla Javy. Dołączony kod krok po kroku. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: pl +og_description: Jak utworzyć PDF z skoroszytu przy użyciu Aspose.Cells dla Javy. Dowiedz + się, jak zapisać skoroszyt jako PDF, wyeksportować Excel do HTML i używać funkcji + EXPAND. +og_title: Jak utworzyć PDF ze skoroszytu – Poradnik Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Jak utworzyć PDF ze skoroszytu – Kompletny przewodnik Java +url: /pl/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak utworzyć PDF z skoroszytu – Kompletny przewodnik Java + +Zastanawiałeś się kiedyś **jak utworzyć PDF** bezpośrednio z skoroszytu Excel, nie używając zewnętrznych konwerterów? Nie jesteś sam. Wielu programistów napotyka problem, gdy potrzebują szybkiego eksportu PDF, podglądu HTML lub zaawansowanych formuł tablicowych — wszystko w jednym kroku. + +W tym tutorialu przeprowadzimy Cię przez pojedynczy, samodzielny program w Javie, który robi dokładnie to. **Zapiszemy skoroszyt jako PDF**, pokażemy, jak **wyeksportować Excel do HTML** zachowując zamrożone wiersze, oraz zademonstrujemy **użycie funkcji EXPAND** wewnątrz arkusza. Po zakończeniu będziesz mieć działający projekt, który możesz wstawić do dowolnej budowy Maven lub Gradle. + +> **Pro tip:** Wszystkie poniższe fragmenty kodu działają z Aspose.Cells 23.10 (lub nowszą). Jeśli używasz starszej wersji, niektóre nazwy metod mogą się nieco różnić. + +--- + +## Wymagania wstępne + +- **Java 17** (lub dowolna wersja LTS) zainstalowana i skonfigurowana. +- Biblioteka **Aspose.Cells for Java**. Dodaj następującą zależność Maven do swojego `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- IDE lub edytor tekstu według własnego wyboru (IntelliJ IDEA, VS Code, Eclipse…). + +Brak zewnętrznych API, brak usług webowych — tylko czysta Java i SDK Aspose.Cells. + +--- + +## Przegląd rozwiązania + +Podzielimy implementację na **siedem logicznych kroków**: + +1. Utworzenie skoroszytu i demonstracja funkcji **EXPAND**. +2. Włączenie selektorów wariantów czcionek oraz **zapis skoroszytu jako PDF**. +3. Eksport tego samego skoroszytu do HTML przy zachowaniu zamrożonych wierszy. +4. Użycie Smart Marker z parametrem `IF` w celu wstawienia warunkowego tekstu. +5. Zastosowanie master‑detail Smart Marker dla danych hierarchicznych. +6. Załadowanie pliku Markdown zawierającego obrazy zakodowane w Base‑64. +7. Konfiguracja opcji GridJs dla wyrównania i obramowań, a następnie wstawienie danych. + +Każdy krok jest zamknięty w osobnej metodzie, aby metoda `main` była przejrzysta i aby zilustrować **dlaczego** robimy to, co robimy, a nie tylko **co** wpisujemy. + +--- + +## Krok 1 – Utworzenie skoroszytu i użycie funkcji EXPAND + +Funkcja **EXPAND** to nowa formuła dynamicznej tablicy wprowadzona w Office 365. Pozwala rozlać zakres na większy obszar bez ręcznego kopiowania komórek. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Dlaczego to ważne:** +- `EXPAND` automatycznie wypełnia wynik pustymi komórkami, co jest idealne, gdy później **zapisujemy skoroszyt jako PDF** — PDF pokaże czystą, prostokątną tabelę. +- Wywołanie `calculateFormula()` zapewnia, że silnik formuł zostanie uruchomiony przed eksportem czegokolwiek. + +--- + +## Krok 2 – Włączenie selektorów wariantów czcionek i **zapis skoroszytu jako PDF** + +Jeśli musisz obsługiwać zaawansowaną typografię (np. emoji lub selektory wariantów CJK), musisz włączyć tę funkcję **przed** zapisem. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Kluczowy punkt:** Główne zapytanie **how to create pdf** znajduje tutaj odpowiedź — wywołując `workbook.save(..., SaveFormat.PDF)` po skonfigurowaniu ustawień. + +--- + +## Krok 3 – **Eksport Excel do HTML** przy zachowaniu zamrożonych wierszy + +Często interesariusze proszą o szybki podgląd w przeglądarce. Aspose.Cells może eksportować do HTML, a dzięki `setPreserveFrozenRows(true)` zachowujemy takie samo doświadczenie przewijania jak w Excelu. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Dlaczego to istotne:** Zamrożone wiersze to wygoda użytkownika; bez nich wiersze nagłówka znikają, gdy użytkownik przewija stronę w dół. + +--- + +## Krok 4 – Smart Marker z parametrem IF + +Smart Markery pozwalają wstawiać dane do szablonu bez pisania pętli. Parametr `if` dodaje logikę warunkową bezpośrednio w markerze. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Wygenerowany PDF będzie zawierał **„VIP Customer: Acme Corp”**, ponieważ `IsVIP` jest `true`. Zmień flagę na `false`, a otrzymasz **„Regular Customer: Acme Corp”** — bez dodatkowego kodu. + +--- + +## Krok 5 – Master‑Detail Smart Marker używający zakresu hierarchicznego + +Gdy masz dane rodzic‑dziecko (np. zamówienia i pozycje zamówień), marker master‑detail oszczędza Ci ręcznego wstawiania wierszy. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Co zyskujesz:** Silnik rozszerza wiersze master dla każdego zamówienia i automatycznie zagnieżdża wiersze detail pod nimi — idealne do faktur lub raportów zakupowych. + +--- + +## Krok 6 – Załadowanie dokumentu Markdown z osadzonymi obrazami Base‑64 + +Jeśli Twoje dane źródłowe znajdują się w Markdown (powszechne w pipeline'ach dokumentacji), Aspose.Cells może je bezpośrednio wyrenderować w skoroszycie. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Uwaga o przypadkach brzegowych:** Jeśli ciąg Base‑64 jest niepoprawny, Aspose pominie obraz, ale kontynuuje przetwarzanie reszty dokumentu — bez awarii. + +--- + +## Krok 7 – Konfiguracja opcji GridJs i wstawienie danych + +GridJs to lekka siatka JavaScript, którą Aspose może wyrenderować do HTML. Wyrównanie liczb i zastosowanie obramowań poprawia czytelność. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Dlaczego to ważne:** Odpowiednie wyrównanie i obramowania sprawiają, że wygenerowany HTML wygląda jak dopracowany arkusz kalkulacyjny — przydatne w dashboardach. + +--- + +## Złożenie wszystkiego razem – metoda `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/polish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/polish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..15edd0a78b --- /dev/null +++ b/cells/polish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-01 +description: Dowiedz się, jak wyeksportować plik CSV z zeszytu Java, jednocześnie + ustawiając znaczące cyfry i zakres eksportu do CSV w jednym, przejrzystym przewodniku. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: pl +og_description: Opanuj eksport CSV w Javie, ustawianie znaczących cyfr oraz eksport + zakresu do CSV, korzystając z praktycznego kodu i wskazówek. +og_title: Jak wyeksportować CSV w Javie – pełny przewodnik krok po kroku +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Jak eksportować CSV w Javie – Ustaw znaczące cyfry i zakres eksportu do CSV +url: /pl/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wyeksportować CSV w Javie – Ustaw znaczące cyfry i zakres eksportu do CSV + +Zastanawiałeś się kiedyś **jak wyeksportować csv** z skoroszytu Java bez utraty precyzji numerycznej? Być może próbowałeś szybkiego `toString()` i skończyło się na bałaganie z błędami zaokrągleń. To częsty problem, szczególnie gdy musisz **ustawić znaczące cyfry** dla danych finansowych lub wyników naukowych. + +W tym tutorialu zobaczysz kompletny, gotowy do uruchomienia przykład, który pokazuje **jak wyeksportować csv**, jak **ustawić znaczące cyfry**, a nawet jak **wyeksportować zakres do csv**, zachowując porządek w danych. Przejdziemy przez każdy wiersz, wyjaśnimy *dlaczego* wywołania API są takie, a nie inne, i podpowiemy, jak uniknąć typowych pułapek. Bez dodatkowej dokumentacji do przeszukiwania — po prostu samodzielne rozwiązanie, które możesz skopiować i wkleić już dziś. + +## Czego się nauczysz + +- Utwórz skoroszyt i skonfiguruj precyzję numeryczną przy użyciu `setNumberSignificantDigits`. +- Wyeksportuj określony zakres komórek jako ładnie sformatowany ciąg CSV. +- Parsuj daty w japońskim erze przy użyciu `DateTimeFormatInfo`. +- Przelicz formuły, aby wyniki dynamicznych tablic były aktualne. +- Wygeneruj tabelę przestawną jako obraz PNG. +- Użyj Smart Marker, aby wstawić komentarze i ostatecznie zapisać skoroszyt. + +Wszystko to realizowane jest przy pomocy biblioteki Aspose.Cells for Java, wersja 23.12 (najnowsza w momencie pisania). Jeśli masz plik JAR na classpath, jesteś gotowy do działania. + +--- + +## Krok 1: Utwórz skoroszyt i **Ustaw znaczące cyfry** + +Zanim będziemy mogli cokolwiek wyeksportować, potrzebujemy obiektu skoroszytu. Pierwszą rzeczą, którą wielu programistów pomija, jest precyzja numeryczna. Domyślnie Aspose.Cells używa pełnej precyzji podwójnej, co może prowadzić do długich, nieporęcznych ciągów w CSV. Ustawienie liczby znaczących cyfr przycina wynik, zachowując najważniejsze cyfry. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Dlaczego to ważne?** +Jeśli wyeksportujesz komórkę zawierającą `12345.6789` bez ograniczania cyfr, CSV pokaże pełną wartość, zagracając raporty. Z `setNumberSignificantDigits(5)` ta sama komórka stanie się `12346`, co często jest tym, czego oczekują użytkownicy biznesowi. + +> **Pro tip:** Jeśli potrzebujesz innej precyzji w poszczególnych kolumnach, możesz zastosować niestandardowy `Style` zamiast ustawienia globalnego. + +--- + +## Krok 2: **Export Range to CSV** – Formatowanie ma znaczenie + +Teraz, gdy skoroszyt jest gotowy, pobierzmy prostokątny blok danych i przekształćmy go w ciąg CSV. Zastosujemy także format dwukropkowy (`0.00`), aby każda liczba była ładnie wyrównana. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Wywołanie `exportDataTable` wykonuje najcięższą pracę. Ponieważ ustawiliśmy `exportAsString`, metoda zwraca `String`, który możemy wydrukować, zapisać do pliku lub wysłać przez HTTP. Krok **export range to csv** respektuje także globalne `setNumberSignificantDigits`, które zdefiniowaliśmy wcześniej, więc liczby są zarówno zaokrąglone do pięciu znaczących cyfr, *jak i* wyświetlane z dwoma miejscami po przecinku. + +**Oczekiwany wynik (skrócony):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Common question:** *Co zrobić, jeśli potrzebny jest inny separator, np. średnik?* +> Po prostu wywołaj `exportOptions.setSeparator(";")` przed eksportem. + +--- + +## Krok 3: Parsowanie daty w japońskim erze (dodatkowe narzędzie) + +Choć nie jest to bezpośrednio związane z CSV, wiele arkuszy Excel zawiera daty specyficzne dla lokalizacji. Oto jak zamienić japoński ciąg erowy, taki jak `"R3/04/01"`, na standardowy obiekt `DateTime`. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Wyjście: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Dlaczego to dodajemy?** +Jeśli Twój eksport CSV zasila systemy downstream oczekujące dat w formacie ISO‑8601, najpierw musisz znormalizować wszelkie formaty lokalne. Ten fragment kodu pokazuje *jak* i *dlaczego* w jednym miejscu. + +--- + +## Krok 4: Przelicz formuły – Utrzymaj wyniki dynamicznych tablic aktualne + +Jeśli Twój skoroszyt zawiera formuły (np. `=SUM(A1:A10)`), nie zostaną one automatycznie zaktualizowane po zmianie ustawień. Wywołanie `calculateFormula` wymusza pełne przeliczenie, zapewniając, że wyeksportowany CSV odzwierciedla najnowsze wartości. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Watch out:** Duże skoroszyty mogą wymagać zauważalnego czasu na przeliczenie. W scenariuszach krytycznych pod względem wydajności rozważ użycie `calculateFormula(FormulaCalculationOptions)`, aby ograniczyć zakres. + +--- + +## Krok 5: Wygeneruj pierwszą tabelę przestawną jako obraz PNG + +Czasami potrzebny jest wizualny zrzut tabeli przestawnej obok CSV. Poniższy kod renderuje pierwszą tabelę przestawną na pierwszym arkuszu do pliku PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** Jeśli skoroszyt nie zawiera jeszcze tabeli przestawnej, możesz ją utworzyć programowo — zobacz dokumentację Aspose.Cells po szybki przykład. + +--- + +## Krok 6: Użyj Smart Marker, aby dodać komentarz i zapisać skoroszyt + +Smart Marker pozwala wstawiać dynamiczną treść do komórek przy użyciu prostych placeholderów. Tutaj zapisujemy komentarz typu „Reviewed by QA” w wyznaczonej komórce, a następnie zapisujemy skoroszyt. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Placeholder `${Comment}` może znajdować się w dowolnym miejscu arkusza (np. komórka `A1`). Gdy uruchomisz `apply`, placeholder zostanie zastąpiony podaną wartością. + +**Result:** Znajdziesz plik `output/commented.xlsx` zawierający komentarz, a także wcześniej wygenerowany `pivot.png` oraz ciąg CSV wydrukowany w konsoli. + +--- + +## Pełny działający przykład + +Łącząc wszystkie elementy, oto kompletny program, który możesz skompilować i uruchomić: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Oczekiwany wynik w konsoli + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Znajdziesz również `output/pivot.png` (jeśli tabela przestawna istniała) oraz `output/commented.xlsx` na dysku. + +--- + +## Najczęściej zadawane pytania i przypadki brzegowe + +- **Czy mogę eksportować bezpośrednio do fizycznego pliku CSV?** + Tak. Zastąp blok `exportAsString` wywołaniem `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Co zrobić, jeśli mój arkusz używa innej lokalizacji dla liczb?** + Ustaw `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` przed eksportem; spowoduje to zamianę + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/polish/java/excel-pivot-tables/_index.md b/cells/polish/java/excel-pivot-tables/_index.md index 83a0411b8d..c0b367c32a 100644 --- a/cells/polish/java/excel-pivot-tables/_index.md +++ b/cells/polish/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Dowiedz się, jak tworzyć pola obliczeniowe w tabelach przestawnych za pomocą Dowiedz się, jak odświeżyć dane tabeli przestawnej w Aspose.Cells dla Java. Utrzymuj swoje dane na bieżąco bez wysiłku. ### [Dostosowywanie stylów tabeli przestawnej](./customizing-pivot-table-styles/) Dowiedz się, jak dostosować style tabeli przestawnej w Aspose.Cells for Java API. Twórz wizualnie atrakcyjne tabele przestawne z łatwością. +### [Kopiowanie tabeli przestawnej w Javie – zachowaj ją, wyeksportuj do PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Dowiedz się, jak skopiować tabelę przestawną w Aspose.Cells for Java, zachować jej ustawienia i wyeksportować do prezentacji PPTX. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/polish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..96b83e2944 --- /dev/null +++ b/cells/polish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Skopiuj tabelę przestawną w Javie, zachowując jej strukturę, następnie + wyeksportuj Excel do PPTX, wyłącz AutoFilter w Excelu i użyj Smart Marker dla tablic + JSON – pełny przewodnik krok po kroku. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: pl +og_description: Kopiowanie tabeli przestawnej w Javie, zachowanie definicji tabeli + przestawnej, eksport do PPTX, wyłączenie AutoFilter i użycie Smart Marker – kompletny + przewodnik dla programistów. +og_title: Kopiowanie tabeli przestawnej w Javie – zachowaj ją, wyeksportuj do PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Kopiowanie tabeli przestawnej w Javie – zachowaj ją, wyeksportuj do PPTX +url: /pl/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skopiuj tabelę przestawną w Javie – zachowaj ją, wyeksportuj do PPTX + +Kiedykolwiek potrzebowałeś **skopiować tabelę przestawną** z jednego skoroszytu do drugiego, nie tracąc przy tym definicji tabeli przestawnej? Nie jesteś jedynym, który się nad tym zastanawia. W wielu rzeczywistych projektach będziesz przenosić dane, a ostatnią rzeczą, jaką chcesz, jest zepsuta tabela przestawna, która generuje błędy w czasie wykonywania. + +W tym samouczku przeprowadzimy Cię przez kompletną rozwiązanie, które nie tylko **kopiuje tabelę przestawną**, ale także pokazuje, jak **zachować tabelę przestawną** przy kopiowaniu, **wyeksportować Excel do PPTX**, **wyłączyć AutoFilter w Excelu** oraz **użyć smart marker**, aby wstawić tablicę JSON jako pojedynczą komórkę. Po zakończeniu będziesz mieć pojedynczy, uruchamialny program w Javie, obejmujący wszystkie cztery scenariusze. + +## Wymagania wstępne + +- Java 8 lub nowsza (kod działa również z Java 11) +- Biblioteka Aspose.Cells for Java (wersja 23.9 lub nowsza) – możesz ją pobrać z Maven Central +- Podstawowa znajomość pojęć Excela, takich jak tabele przestawne, tabele i pola tekstowe + +Jeśli brakuje Ci pliku JAR Aspose.Cells, dodaj to do swojego `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Teraz zanurzmy się w temat. + +## Krok 1: Skopiuj tabelę przestawną – zachowując definicję tabeli przestawnej + +Gdy po prostu kopiujesz zakres komórek zawierający tabelę przestawną, metadane tabeli przestawnej często pozostają w tyle. Aspose.Cells oferuje wygodny sposób na zachowanie definicji, używając `copyRange` wraz z instancją `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Dlaczego to działa:** `CopyOptions` mówi Aspose.Cells, aby przeniosło wszystko, w tym pamięć podręczną tabeli przestawnej i ustawienia pól. Bez tego otrzymasz jedynie wartości i utracisz możliwość odświeżania tabeli przestawnej. + +**Przypadek brzegowy:** Jeśli Twoja źródłowa tabela przestawna obejmuje więcej niż sztywno zakodowany zakres `A1:G20`, dostosuj zakres odpowiednio lub użyj `sourceSheet.getPivotTables().get(0).getDataRange()`, aby pobrać go dynamicznie. + +![Przykład kopiowania tabeli przestawnej](image.png "Kopiowanie tabeli przestawnej w Javie") + +*Tekst alternatywny obrazu: diagram kopiowania tabeli przestawnej w Javie* + +## Krok 2: Wyeksportuj arkusz z edytowalnym polem tekstowym do PPTX + +Często potrzebujesz przekształcić arkusz Excela w slajd PowerPoint — myśl o cotygodniowych pulpitach nawigacyjnych, które muszą być prezentowane. Aspose.Cells może bezpośrednio zapisać arkusz jako plik PPTX, zachowując kształty takie jak pola tekstowe. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Co się dzieje:** Metoda `save` z parametrem `SaveFormat.PPTX` konwertuje cały arkusz, w tym dowolne edytowalne pole tekstowe, na slajd PowerPoint. Tekst wewnątrz pola pozostaje edytowalny po otwarciu pliku PPTX w PowerPoint. + +**Wskazówka:** Jeśli masz wiele arkuszy i chcesz zachować tylko konkretny, wywołaj `wb.getWorksheets().removeAt(index)` dla pozostałych przed zapisem. + +## Krok 3: Wyłącz AutoFilter w Excelu w tabeli + +AutoFilter jest przydatny dla użytkowników końcowych, ale czasami trzeba go wyłączyć programowo — być może przed eksportem danych lub przy generowaniu czystego raportu. Oto jak **wyłączyć AutoFilter w Excelu** w tabeli Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Dlaczego możesz tego potrzebować:** Eksport do formatów, które nie obsługują AutoFilter (np. CSV lub PDF), może spowodować pojawienie się niechcianych ikon filtrów. Wyłączenie go zapewnia czysty wynik. + +**Częsty problem:** Jeśli arkusz nie zawiera tabel, `getTables().get(0)` spowoduje `IndexOutOfBoundsException`. Zawsze najpierw sprawdzaj `sheet.getTables().size()` w kodzie produkcyjnym. + +## Krok 4: Użyj Smart Marker — wstaw tablicę JSON jako pojedynczą wartość komórki + +Smart Marker to silnik szablonów Aspose. Jeden przydatny trik polega na traktowaniu całej tablicy JSON jako pojedynczej wartości komórki, co jest idealne do logowania lub przekazywania danych strukturalnych dalej. Użyjmy **smart marker**, aby to osiągnąć. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Jak to działa:** Znacznik `${json}` w skoroszycie zostaje zastąpiony całym ciągiem JSON, ponieważ ustawiliśmy `ArrayAsSingle`. Bez tej opcji Aspose próbowałby rozwinąć każdy element tablicy do osobnych wierszy. + +**Wariant:** Jeśli potrzebujesz podzielić tablicę na wiersze, po prostu pomiń `ArrayAsSingle`, a Smart Marker automatycznie rozwinie ją. + +## Pełny działający przykład — wszystkie kroki połączone + +Poniżej znajduje się pojedyncza klasa Java, która łączy wszystkie opisane operacje. Uruchom ją jako zwykłą metodę `main`; wystarczy dostosować ścieżki plików do swojego środowiska. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/polish/java/getting-started/_index.md b/cells/polish/java/getting-started/_index.md index 9f58066a39..3e1d980cab 100644 --- a/cells/polish/java/getting-started/_index.md +++ b/cells/polish/java/getting-started/_index.md @@ -71,7 +71,8 @@ Dowiedz się, jak sprawnie otwierać i przetwarzać pliki SpreadsheetML w Javie ### [Jak pobrać wersję Aspose.Cells w Javie: przewodnik krok po kroku](./retrieve-aspose-cells-version-java-guide/) Dowiedz się, jak sprawdzić wersję Aspose.Cells w swoich projektach Java dzięki temu kompleksowemu przewodnikowi. Zapewnij zgodność i efektywnie wykorzystuj nowe funkcje. - +### [Tworzenie licencjonowanego skoroszytu – Pełny przewodnik Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Dowiedz się, jak utworzyć licencjonowany skoroszyt przy użyciu Aspose.Cells for Java, krok po kroku, z pełnym przykładem kodu. ## Dodatkowe zasoby diff --git a/cells/polish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/polish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..11660fe63d --- /dev/null +++ b/cells/polish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Twórz licencjonowany skoroszyt szybko z Aspose.Cells Java. Dowiedz się, + jak licencjonować Aspose, ustawić licencję Aspose w Javie i odczytywać pliki Excel + za pomocą Aspose w jednym samouczku. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: pl +og_description: Utwórz licencjonowany skoroszyt przy użyciu Aspose.Cells Java. Ten + przewodnik pokazuje, jak licencjonować Aspose, ustawić licencję Aspose w Javie i + odczytać plik Excel przy użyciu Aspose. +og_title: Utwórz licencjonowany skoroszyt – Samouczek Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Utwórz licencjonowany skoroszyt – Pełny przewodnik Aspose.Cells Java +url: /pl/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz licencjonowany skoroszyt – Pełny przewodnik Aspose.Cells Java + +Zastanawiałeś się kiedyś, jak **create licensed workbook** bez napotkania błędów licencyjnych? Nie jesteś jedyny — wielu programistów natrafia na ten problem, gdy po raz pierwszy używa Aspose.Cells. Dobre wieści? Rozwiązanie jest proste, a ten przewodnik poprowadzi Cię krok po kroku. + +W ciągu kilku minut dowiesz się **how to license Aspose**, dokładnie **set Aspose license Java**, i będziesz gotowy do **read Excel with Aspose** w rzeczywistych zadaniach, takich jak raportowanie czy migracja danych. Bez niejasnych odniesień, tylko kompletny, uruchamialny przykład, który możesz skopiować i wkleić już dziś. + +--- + +## Czego będziesz potrzebować + +- Java 17 lub nowszy (najlepiej najnowsze stabilne wydanie) +- Aspose.Cells for Java 23.9 (lub dowolna nowsza wersja) +- Twój plik licencji Aspose.Cells (`Aspose.Cells.Java.lic`) +- IDE lub narzędzie budujące, z którym czujesz się komfortowo (Maven, Gradle lub zwykły `javac`) + +Jeśli któryś z tych elementów jest Ci nieznany, nie martw się — każdy z nich jest omówiony w poniższych krokach. + +--- + +## Krok 1: Dodaj zależność Aspose.Cells + +Zanim będziesz mógł **create licensed workbook**, biblioteka musi znajdować się na Twojej ścieżce klas. W Maven wygląda to tak: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Dla Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Wskazówka:** Jeśli używasz zwykłego kompilatora `javac`, po prostu umieść plik JAR w folderze `libs/` i dodaj go do flagi `-cp`. + +--- + +## Krok 2: **How to License Aspose** – Załaduj plik licencji + +W momencie, gdy wywołasz dowolne API Aspose bez licencji, zobaczysz znak wodny w wygenerowanym pliku Excel. Aby tego uniknąć, musisz **set Aspose license Java** wcześnie w swoim programie. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Dlaczego to ważne:** Obiekt `License` informuje Aspose, aby pominął tryb ewaluacji, usuwając znaki wodne i odblokowując pełny zakres API. Jeśli ścieżka jest nieprawidłowa, zostanie rzucony wyjątek — więc od razu się o tym dowiesz. + +--- + +## Krok 3: **Create Licensed Workbook** – Utwórz plik Excel + +Teraz, gdy licencja jest zastosowana, możesz bezpiecznie tworzyć obiekty **create licensed workbook**. Poniżej znajduje się minimalny, ale kompletny przykład, który dodatkowo demonstruje **read Excel with Aspose** później. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Co to robi:** + +1. Wywołuje narzędzie z **Krok 2**, aby **set Aspose license Java**. +2. Tworzy nowy obiekt `Workbook` — rdzeń operacji **create licensed workbook**. +3. Zapisuje małą tabelę, zapisuje ją jako XLSX, a następnie natychmiast odczytuje, aby udowodnić, że **read Excel with Aspose** działa bez znaków wodnych. + +Uruchomienie programu wypisuje: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Jeśli otworzysz wygenerowany plik, zobaczysz czysty arkusz bez znaku wodnego Aspose — dowód, że licencja jest aktywna. + +--- + +## Krok 4: Częste pułapki i przypadki brzegowe + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **LicenseNotFoundException** | Ścieżka jest nieprawidłowa lub plik brakujący. | Użyj ścieżki bezwzględnej lub załaduj plik z zasobów (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR Aspose nie znajduje się na ścieżce klas. | Sprawdź zależność Maven/Gradle lub dodaj JAR ręcznie. | +| **Saving fails on Windows** | Folder docelowy nie istnieje. | Upewnij się, że katalog `output/` został utworzony (`new File("output").mkdirs();`). | +| **Reading older .xls files** | Domyślny `SaveFormat` może nie obsługiwać starego formatu. | Użyj `SaveFormat.XLS` przy zapisie lub pozwól Aspose automatycznie wykrywać przy wczytywaniu. | + +> **Uwaga:** Jeśli wdrażasz na serwerze, plik licencji powinien znajdować się poza katalogiem głównym aplikacji webowej, aby uniknąć przypadkowego ujawnienia. + +--- + +## Krok 5: Zweryfikuj licencję programowo (opcjonalnie) + +Czasami chcesz podwójnie sprawdzić, czy licencja została załadowana poprawnie przed wykonaniem ciężkich operacji. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Możesz wywołać `LicenseChecker.isLicensed("...")` i przerwać, jeśli zwróci `false`. Dodaje to dodatkową warstwę bezpieczeństwa, szczególnie w pipeline'ach CI/CD. + +--- + +## Przegląd wizualny + +![Diagram przedstawiający przepływ od zastosowania licencji po utworzenie i odczyt skoroszytu](create-licensed-workbook-diagram.png "utwórz licencjonowany skoroszyt") + +*Tekst alternatywny obrazu:* **create licensed workbook diagram** – ilustruje kroki zastosowania licencji Aspose, utworzenia skoroszytu i odczytu Excela. + +--- + +## Zakończenie + +Masz teraz kompletną, kompleksową rozwiązanie dla **create licensed workbook** przy użyciu Aspose.Cells dla Javy. Omówiliśmy **how to license Aspose**, przedstawiliśmy dokładny kod **set Aspose license Java**, i pokazaliśmy szybki podgląd **read Excel with Aspose**, aby potwierdzić, że wszystko działa. + +Następnie możesz chcieć zbadać: + +- Stylowanie komórek (czcionki, kolory) — świetne do profesjonalnych raportów. +- Eksport do CSV lub PDF — Aspose obsługuje wiele formatów od razu. +- Praca z dużymi zestawami danych — użyj `WorkbookDesigner` do szablonowania. + +Śmiało eksperymentuj, a jeśli napotkasz problemy, zostaw komentarz poniżej. Szczęśliwego kodowania! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/polish/java/ole-objects-embedded-content/_index.md b/cells/polish/java/ole-objects-embedded-content/_index.md index 70b27eb6fb..f9a4cf240a 100644 --- a/cells/polish/java/ole-objects-embedded-content/_index.md +++ b/cells/polish/java/ole-objects-embedded-content/_index.md @@ -44,6 +44,9 @@ Dowiedz się, jak wydajnie wyodrębniać obiekty OLE z plików Excela za pomocą ### [Jak wyodrębnić GUID z obiektu OLE w programie Excel przy użyciu Aspose.Cells dla języka Java](./extract-guid-ole-object-excel-aspose-cells-java/) Dowiedz się, jak wydajnie wyodrębniać identyfikatory GUID z osadzonych obiektów PowerPoint w plikach Excel przy użyciu Aspose.Cells for Java. Postępuj zgodnie z tym przewodnikiem krok po kroku, aby uzyskać bezproblemową integrację. +### [Jak osadzić czcionki – kompletny przewodnik dla eksportu HTML, XPS i OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Dowiedz się, jak osadzić czcionki w dokumentach przy eksporcie do HTML, XPS i OLE, aby zachować ich wygląd we wszystkich środowiskach. + ### [Usuwanie kontrolek ActiveX z programu Excel za pomocą Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Samouczek dotyczący kodu dla Aspose.Words Java diff --git a/cells/polish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/polish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..d74262c393 --- /dev/null +++ b/cells/polish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: Dowiedz się, jak osadzać czcionki w HTML i innych formatach. Szczegółowy + poradnik krok po kroku obejmujący osadzanie czcionek w HTML, konwersję Excela do + HTML, jak eksportować OLE oraz konwersję Excela do XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: pl +og_description: Jak osadzać czcionki w eksportach HTML, XPS i OLE. Poznaj pełny przepływ + pracy, zobacz działający kod Java i opanuj osadzanie czcionek w HTML przy konwersjach + do Excela. +og_title: Jak osadzać czcionki – Pełny samouczek Javy +tags: +- Aspose.Cells +- Java +- Document Export +title: Jak osadzać czcionki – Kompletny przewodnik po HTML, XPS i eksporcie OLE +url: /pl/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak osadzić czcionki – Kompletny przewodnik dla HTML, XPS i eksportu OLE + +Zastanawiałeś się kiedyś **jak osadzić czcionki** podczas konwersji skoroszytu Excel na stronę internetową lub dokument do druku? Nie jesteś sam. Wielu programistów napotyka problem, gdy wynik wygląda dobrze na ich komputerze, ale psuje się na innym, ponieważ brakujące czcionki nie są dostępne. + +W tym tutorialu przejdziemy przez scenariusz z prawdziwego świata przy użyciu Aspose.Cells for Java: osadzimy czcionki w HTML, zachowamy selektory wariacji emoji podczas konwersji do XPS oraz utrzymamy edytowalny obiekt OLE przy eksporcie do PPTX. Po zakończeniu będziesz mieć solidne rozwiązanie kopiuj‑wklej, które odpowiada na pytanie „jak osadzić czcionki” i jednocześnie dotyka tematów **embed fonts in html**, **convert excel to html**, **how to export ole** oraz **convert excel to xps**. + +## Prerequisites + +- Java 17 (lub dowolny nowoczesny JDK) +- Aspose.Cells for Java 25.x lub nowszy +- Środowisko IDE (IntelliJ IDEA, Eclipse lub VS Code) +- Podstawowa znajomość struktur danych Excel + +Żadne zewnętrzne usługi nie są wymagane — wszystko działa lokalnie. + +## Overview of the Solution + +1. **Utwórz skoroszyt** i użyj funkcji `WRAPCOLS`, aby przekształcić pionowy zakres w układ trzech kolumn. +2. **Zapisz skoroszyt jako XPS**, włączając selektory wariacji czcionek, aby emoji pozostały nienaruszone. +3. **Eksportuj do HTML** z osadzonymi czcionkami, gwarantując, że strona wygląda tak samo wszędzie. +4. **Eksportuj skoroszyt zawierający obiekt OLE do PPTX**, zachowując możliwość edycji. +5. **Zastosuj szablon Smart Marker**, który demonstruje powiązanie danych master‑detail. + +Każdy krok jest wydzielony w osobnej sekcji H2, co ułatwia szybkie przeglądanie zarówno dla wyszukiwarek, jak i asystentów AI. + +![How to embed fonts illustration](image.png "jak osadzić czcionki") + +*Image alt text: diagram jak osadzić czcionki pokazujący przepływ pracy od Excela do HTML, XPS i PPTX.* + +--- + +## Step 1 – Create a Workbook and Use WRAPCOLS (Why This Matters for embed fonts in html) + +Zanim zaczniemy rozmawiać o osadzaniu czcionek, potrzebujemy skoroszytu, który faktycznie zawiera dane. Funkcja `WRAPCOLS` to wygodny sposób na podzielenie jednej kolumny na wiele kolumn, co często sprawia, że końcowy HTML jest bardziej czytelny. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Dlaczego ten krok?** +Wywołanie `WRAPCOLS` generuje zakres wielokolumnowy, który później pojawia się w HTML jako tabela. Gdy później **embed fonts in html**, styl tabeli będzie opierał się na osadzonych czcionkach, zapewniając spójne renderowanie we wszystkich przeglądarkach. + +--- + +## Step 2 – Save the Workbook as XPS While Preserving Emoji (convert excel to xps) + +Jeśli potrzebujesz formatu gotowego do druku, XPS jest solidnym wyborem. Jednak nowoczesne dokumenty często zawierają emoji lub symbole używające selektorów wariacji. Włączenie `EnableFontVariationSelectors` zapewnia, że te znaki przetrwają konwersję. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Co otrzymujesz:** +Plik XPS, który wyświetla wszelkie osadzone emoji dokładnie tak, jak w źródłowym skoroszycie. Spełnia to wymaganie **convert excel to xps** i pokazuje, że obsługa czcionek nie ogranicza się tylko do HTML. + +--- + +## Step 3 – Export to HTML with Embedded Fonts (how to embed fonts & embed fonts in html) + +Teraz przechodzimy do sedna tutorialu: **jak osadzić czcionki** przy konwersji Excel do HTML. Aspose.Cells pozwala osadzić czcionki bezpośrednio w wygenerowanym pliku HTML, eliminując potrzebę zewnętrznych plików czcionek. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Jak to działa:** +`setEmbedFonts(true)` instruuje renderer, aby odczytał pliki czcionek używane w skoroszycie i osadził je jako reguły `@font-face` zakodowane w Base64 wewnątrz znacznika ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Zauważ regułę `@font-face` — to konkretna odpowiedź na **embed fonts in html**. + +--- + +## Step 4 – Export a Workbook Containing an OLE Object to PPTX (how to export ole) + +Wiele raportów biznesowych osadza dokumenty Word, PDF lub inne arkusze Excel jako obiekty OLE. Przy eksporcie takiego skoroszytu do PowerPoint często tracimy możliwość edycji tego obiektu. Aspose.Cells zachowuje edytowalność od razu po wyjęciu. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Dlaczego to ważne:** +Jeśli szukasz **how to export ole**, ten fragment pokazuje dokładne wywołanie API. Powstały slajd PowerPoint zawiera obiekt OLE jako żywy komponent, który po podwójnym kliknięciu można edytować — bez dodatkowego przetwarzania po zakończeniu. + +--- + +## Step 5 – Apply a Smart Marker Template (master‑detail) and Finish the Demo + +Smart Markers pozwalają powiązać źródło danych (Map, JSON, DataTable) bezpośrednio z szablonem Excel. Oto minimalny przykład, który drukuje wiersze master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Co widzisz:** +Nowy skoroszyt (`smartMarkerResult.xlsx`), w którym zastąpiono znaczniki szablonu danymi. Ten krok nie dotyczy bezpośrednio czcionek, ale zamyka tutorial, pokazując typowy przepływ raportowania, który często poprzedza eksport **embed fonts in html**. + +--- + +## Common Pitfalls & Pro Tips (Ensuring Successful Font Embedding) + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|-------|----------------|-----| +| Czcionki brakują w pliku HTML | Skoroszyt używa czcionki systemowej, która nie jest zainstalowana na serwerze. | Użyj `Workbook.getSettings().setDefaultFont("Arial")` przed wczytaniem danych, lub ręcznie osadź wymagane pliki czcionek. | +| Wygenerowany HTML jest bardzo duży | Osadzanie wielu dużych czcionek zwiększa rozmiar pliku. | Ogranicz osadzanie tylko do czcionek faktycznie używanych: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji znikają po konwersji do XPS | Selektory wariacji są domyślnie usuwane. | Włącz `settings.setEnableFontVariationSelectors(true)` jak pokazano w Kroku 2. | +| Obiekt OLE staje się statycznym obrazem w PPTX | Źródłowy skoroszyt został zapisany z `setSuppressOLEObjects(true)`. | Upewnij się, że **nie** tłumisz obiektów OLE podczas zapisywania do PPTX. | + +--- + +## Verifying the Results + +1. Otwórz `embeddedFonts.html` w Chrome/Firefox. Tabela powinna wyświetlać się przy użyciu osadzonej czcionki (np. Arial), nawet jeśli ta czcionka nie jest zainstalowana na komputerze. +2. Otwórz `withVariations.xps` w Windows XPS Viewer. Emoji, takie jak 👍, powinny renderować się poprawnie. +3. Otwórz `oleEditable.pptx` w PowerPoint. Kliknij dwukrotnie kształt OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/portuguese/java/excel-import-export/_index.md b/cells/portuguese/java/excel-import-export/_index.md index b3c52cda79..431139628d 100644 --- a/cells/portuguese/java/excel-import-export/_index.md +++ b/cells/portuguese/java/excel-import-export/_index.md @@ -35,6 +35,8 @@ Aprenda a importar dados em massa do Excel usando a API Aspose.Cells para Java. Libere o potencial dos métodos de exportação de dados do Excel usando o Aspose.Cells para Java. Aprenda com exemplos práticos de código-fonte neste guia abrangente. Otimize suas habilidades de gerenciamento de dados hoje mesmo. ### [Exportação de código Java CSV](./csv-export-java-code/) Aprenda a exportar dados para o formato CSV usando o Aspose.Cells para Java. Guia passo a passo com código-fonte para exportação CSV simplificada. +### [Como Exportar CSV com Java – Definir Dígitos Significativos e Intervalo de Exportação para CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Aprenda a exportar dados para CSV em Java, configurando dígitos significativos e definindo intervalos de exportação. ### [Exportando Excel para PDF](./exporting-excel-to-pdf/) Aprenda a exportar arquivos do Excel para PDF sem esforço usando o Aspose.Cells para Java. Nosso guia passo a passo simplifica o processo. Comece a converter hoje mesmo! ### [Exportar Excel para XML Java](./export-excel-to-xml-java/) @@ -47,6 +49,8 @@ Aprenda a exportar dados do Excel para JSON usando o Aspose.Cells para Java. Sig Aprenda a implementar a validação de dados de importação do Excel usando o Aspose.Cells para Java com este guia passo a passo completo. Garanta a precisão dos dados e aprimore a experiência do usuário. ### [Exportar Excel para HTML Java](./export-excel-to-html-java/) Aprenda a exportar Excel para HTML em Java usando o Aspose.Cells para Java. Siga este guia passo a passo com o código-fonte para converter seus arquivos do Excel para HTML sem complicações. +### [Como criar PDF a partir de uma pasta de trabalho – Guia Java completo](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Aprenda a gerar PDFs a partir de pastas de trabalho Excel usando Aspose.Cells para Java com este guia passo a passo completo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/portuguese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..8cecf1e232 --- /dev/null +++ b/cells/portuguese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,300 @@ +--- +category: general +date: 2026-03-01 +description: Como criar PDF e salvar a pasta de trabalho como PDF, exportar Excel + para HTML e usar a função expand com Aspose.Cells para Java. Código passo a passo + incluído. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: pt +og_description: Como criar PDF a partir de uma planilha usando Aspose.Cells para Java. + Aprenda a salvar a planilha como PDF, exportar Excel para HTML e usar a função EXPAND. +og_title: Como criar PDF a partir de uma planilha – Tutorial Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Como criar PDF a partir de uma pasta de trabalho – Guia completo de Java +url: /pt/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Criar PDF a partir de uma Pasta de Trabalho – Guia Completo em Java + +Já se perguntou **como criar PDF** diretamente de uma pasta de trabalho do Excel sem lidar com conversores de terceiros? Você não está sozinho. Muitos desenvolvedores se deparam com um obstáculo quando precisam de uma exportação rápida para PDF, uma pré‑visualização em HTML ou fórmulas de matriz avançadas — tudo de uma vez. + +Neste tutorial, percorreremos um único programa Java autônomo que faz exatamente isso. Vamos **salvar a pasta de trabalho como PDF**, mostrar como **exportar Excel para HTML** mantendo as linhas congeladas e demonstrar o **uso da função expand** dentro de uma planilha. Ao final, você terá um projeto executável que pode ser inserido em qualquer build Maven ou Gradle. + +> **Dica profissional:** Todo o código abaixo funciona com Aspose.Cells 23.10 (ou mais recente). Se você estiver usando uma versão mais antiga, alguns nomes de métodos podem diferir ligeiramente. + +--- + +## Pré-requisitos + +- **Java 17** (ou qualquer versão LTS) instalado e configurado. +- Biblioteca **Aspose.Cells for Java**. Adicione a seguinte dependência Maven ao seu `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Uma IDE ou editor de texto de sua escolha (IntelliJ IDEA, VS Code, Eclipse…). + +Sem APIs externas, sem serviços web — apenas Java puro e o SDK Aspose.Cells. + +--- + +## Visão Geral da Solução + +Dividiremos a implementação em **sete etapas lógicas**: + +1. Criar uma pasta de trabalho e demonstrar a função **EXPAND**. +2. Habilitar seletores de variação de fonte e **salvar a pasta de trabalho como PDF**. +3. Exportar a mesma pasta de trabalho para HTML preservando linhas congeladas. +4. Usar um Smart Marker com um parâmetro `IF` para inserir texto condicional. +5. Aplicar um Smart Marker mestre‑detalhe para dados hierárquicos. +6. Carregar um arquivo Markdown que contém imagens codificadas em Base‑64. +7. Configurar opções do GridJs para alinhamento e bordas, então inserir dados. + +Cada etapa está encapsulada em seu próprio método para manter o método `main` organizado e ilustrar **por que** fazemos o que fazemos, não apenas **o que** digitamos. + +--- + +## Etapa 1 – Criar uma Pasta de Trabalho e Usar a Função EXPAND + +A função **EXPAND** é uma nova fórmula de matriz dinâmica introduzida no Office 365. Ela permite expandir um intervalo para uma área maior sem copiar células manualmente. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Por que isso importa:** +- `EXPAND` preenche automaticamente o resultado com espaços em branco, o que é perfeito quando você posteriormente **salva a pasta de trabalho como PDF** — o PDF exibirá uma tabela limpa e retangular. +- Chamar `calculateFormula()` garante que o motor de fórmulas seja executado antes de exportarmos qualquer coisa. + +--- + +## Etapa 2 – Habilitar Seletores de Variação de Fonte e **Salvar Pasta de Trabalho como PDF** + +Se você precisar suportar tipografia avançada (por exemplo, emojis ou seletores de variação CJK), deve ativar o recurso **antes** de salvar. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Ponto chave:** A palavra‑chave principal **how to create pdf** é respondida aqui — chamando `workbook.save(..., SaveFormat.PDF)` após configurar as opções. + +--- + +## Etapa 3 – **Exportar Excel para HTML** Preservando Linhas Congeladas + +Frequentemente, as partes interessadas solicitam uma pré‑visualização rápida na web. Aspose.Cells pode exportar para HTML e, com `setPreserveFrozenRows(true)`, mantemos a mesma experiência de rolagem que no Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Por que isso importa:** Linhas congeladas são um detalhe de usabilidade; sem elas, as linhas de cabeçalho desaparecem quando os usuários rolam a página. + +--- + +## Etapa 4 – Smart Marker com um Parâmetro IF + +Smart Markers permitem mesclar dados em um modelo sem escrever loops. O parâmetro `if` adiciona lógica condicional diretamente dentro do marcador. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +O PDF gerado exibirá **“VIP Customer: Acme Corp”** porque `IsVIP` está `true`. Alterando a bandeira para `false`, você obterá **“Regular Customer: Acme Corp”** — sem código extra necessário. + +--- + +## Etapa 5 – Smart Marker Mestre‑Detalhe Usando um Intervalo Hierárquico + +Quando você tem dados pai‑filho (por exemplo, pedidos e itens de linha), um marcador mestre‑detalhe evita a inserção manual de linhas. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**O que você ganha:** O motor expande as linhas mestre para cada pedido e aninha automaticamente as linhas de detalhe abaixo — perfeito para faturas ou relatórios de compras. + +--- + +## Etapa 6 – Carregar um Documento Markdown com Imagens Incorporadas em Base‑64 + +Se seus dados de origem estiverem em Markdown (comum em pipelines de documentação), Aspose.Cells pode renderiz‑los diretamente em uma pasta de trabalho. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Observação de caso extremo:** Se a string Base‑64 estiver malformada, o Aspose ignorará a imagem mas continuará processando o restante do documento — sem travar. + +--- + +## Etapa 7 – Configurar Opções do GridJs e Inserir Dados + +GridJs é uma grade JavaScript leve que o Aspose pode renderizar em HTML. Alinhar números e aplicar bordas melhora a legibilidade. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Por que isso importa:** Alinhamento adequado e bordas fazem o HTML gerado parecer uma planilha refinada — útil para dashboards. + +--- + +## Juntando Tudo – O Método `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/portuguese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/portuguese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..a9ffcedaf6 --- /dev/null +++ b/cells/portuguese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Aprenda como exportar CSV de uma planilha Java enquanto define os dígitos + significativos e o intervalo de exportação para CSV em um único guia claro. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: pt +og_description: Domine como exportar CSV em Java, definir dígitos significativos e + exportar intervalos para CSV com código prático e dicas. +og_title: Como Exportar CSV com Java – Guia Completo Passo a Passo +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Como Exportar CSV com Java – Definir Dígitos Significativos e Exportar Intervalo + para CSV +url: /pt/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Exportar CSV com Java – Definir Dígitos Significativos e Exportar Intervalo para CSV + +Já se perguntou **como exportar csv** de uma planilha Java sem perder a precisão numérica? Talvez você tenha tentado um rápido `toString()` e acabou com uma bagunça de erros de arredondamento. Isso é um obstáculo comum, especialmente quando você precisa **definir dígitos significativos** para dados financeiros ou resultados científicos. + +Neste tutorial você verá um exemplo completo, pronto‑para‑executar, que mostra **como exportar csv**, como **definir dígitos significativos**, e até como **exportar intervalo para csv** mantendo seus dados organizados. Vamos percorrer cada linha, explicar o *porquê* das chamadas de API e dar dicas para evitar armadilhas comuns. Sem documentação extra para procurar — apenas uma solução autônoma que você pode copiar‑colar hoje. + +## O que Você Vai Aprender + +- Criar uma planilha e configurar a precisão numérica com `setNumberSignificantDigits`. +- Exportar um intervalo de células específico como uma string CSV bem formatada. +- Analisar datas de era japonesa usando `DateTimeFormatInfo`. +- Recalcular fórmulas para que os resultados de arrays dinâmicos permaneçam atualizados. +- Renderizar uma tabela dinâmica para uma imagem PNG. +- Usar Smart Marker para inserir comentários e, finalmente, salvar a planilha. + +Tudo isso é feito com a biblioteca Aspose.Cells for Java, versão 23.12 (a mais recente no momento da escrita). Se você tem o JAR no seu classpath, está pronto para prosseguir. + +--- + +## Etapa 1: Criar uma Planilha e **Definir Dígitos Significativos** + +Antes de podermos exportar qualquer coisa, precisamos de um objeto workbook. A primeira coisa que muitos desenvolvedores ignoram é a precisão numérica. Por padrão, o Aspose.Cells usa a precisão completa de double, o que pode gerar strings longas e difíceis de manipular no CSV. Definir o número de dígitos significativos reduz a saída enquanto preserva os valores mais importantes. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Por que isso importa?** +Se você exportar uma célula contendo `12345.6789` sem limitar os dígitos, o CSV mostrará o valor completo, poluindo os relatórios. Com `setNumberSignificantDigits(5)`, a mesma célula se torna `12346`, que é frequentemente o que os usuários de negócios esperam. + +> **Dica profissional:** Se você precisar de precisão diferente por coluna, pode aplicar um `Style` personalizado em vez da configuração global. + +--- + +## Etapa 2: **Exportar Intervalo para CSV** – Formatação Importa + +Agora que a planilha está pronta, vamos extrair um bloco retangular de dados e transformá-lo em uma string CSV. Também aplicaremos um formato de duas casas decimais (`0.00`) para que cada número fique alinhado corretamente. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +A chamada `exportDataTable` faz o trabalho pesado. Como definimos `exportAsString`, o método retorna uma `String` que podemos imprimir, gravar em um arquivo ou enviar via HTTP. A etapa **exportar intervalo para csv** também respeita o `setNumberSignificantDigits` global que definimos anteriormente, portanto os números são arredondados para cinco dígitos significativos *e* exibidos com duas casas decimais. + +**Saída esperada (truncada):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Pergunta comum:** *E se eu precisar de um delimitador diferente, como ponto e vírgula?* +> Basta chamar `exportOptions.setSeparator(";")` antes de exportar. + +--- + +## Etapa 3: Analisar uma Data de Era Japonesa (Utilidade Bônus) + +Embora não esteja diretamente relacionado ao CSV, muitas planilhas Excel contêm datas específicas de localidade. Aqui está como transformar uma string de era japonesa como `"R3/04/01"` em um objeto `DateTime` padrão. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Saída: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Por que incluir isso?** +Se sua exportação CSV alimenta sistemas downstream que esperam datas no formato ISO‑8601, você precisará normalizar quaisquer formatos localizados primeiro. Este trecho mostra o *como* e o *porquê* em um único lugar. + +--- + +## Etapa 4: Recalcular Fórmulas – Manter Resultados de Array Dinâmico Atualizados + +Se sua planilha contém fórmulas (por exemplo, `=SUM(A1:A10)`), elas não serão atualizadas automaticamente após alterarmos as configurações. Chamar `calculateFormula` força uma recalculação completa, garantindo que o CSV exportado reflita os valores mais recentes. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Atenção:** Grandes planilhas podem levar um tempo considerável para recalcular. Para cenários críticos de desempenho, considere `calculateFormula(FormulaCalculationOptions)` para limitar o escopo. + +--- + +## Etapa 5: Renderizar a Primeira Tabela Dinâmica para uma Imagem PNG + +Às vezes você precisa de uma captura visual de uma tabela dinâmica junto com o CSV. O código a seguir renderiza a primeira tabela dinâmica da primeira planilha para um arquivo PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Dica:** Se a planilha ainda não contém uma tabela dinâmica, você pode criar uma programaticamente — veja a documentação do Aspose.Cells para um exemplo rápido. + +--- + +## Etapa 6: Usar Smart Marker para Escrever um Comentário e Salvar a Planilha + +Smart Marker permite injetar conteúdo dinâmico em células usando marcadores simples. Aqui escrevemos um comentário como “Reviewed by QA” em uma célula designada e então salvamos a planilha. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +O placeholder `${Comment}` pode ser colocado em qualquer lugar da planilha (por exemplo, célula `A1`). Quando `apply` é executado, o placeholder é substituído pelo valor fornecido. + +**Resultado:** Você encontrará um arquivo `output/commented.xlsx` contendo o comentário, além do `pivot.png` gerado anteriormente e a string CSV impressa no console. + +--- + +## Exemplo Completo Funcional + +Juntando tudo, aqui está o programa completo que você pode compilar e executar: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Saída Esperada no Console + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Você também encontrará `output/pivot.png` (se houver uma tabela dinâmica) e `output/commented.xlsx` no disco. + +--- + +## Perguntas Frequentes & Casos Limítrofes + +- **Posso exportar diretamente para um arquivo CSV físico?** + Sim. Substitua o bloco `exportAsString` por `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **E se minha planilha usar uma localidade diferente para números?** + Defina `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` antes de exportar; isso trocará + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/portuguese/java/excel-pivot-tables/_index.md b/cells/portuguese/java/excel-pivot-tables/_index.md index d2369d14ec..4bae28ed96 100644 --- a/cells/portuguese/java/excel-pivot-tables/_index.md +++ b/cells/portuguese/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aprenda a criar campos calculados em Tabelas Dinâmicas usando Aspose.Cells para Aprenda a atualizar dados de uma Tabela Dinâmica no Aspose.Cells para Java. Mantenha seus dados atualizados sem esforço. ### [Personalizando estilos de tabela dinâmica](./customizing-pivot-table-styles/) Aprenda a personalizar estilos de tabela dinâmica no Aspose.Cells para API Java. Crie tabelas dinâmicas visualmente atraentes com facilidade. +### [Copiar Tabela Dinâmica em Java – Preservar e Exportar para PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Aprenda a copiar uma Tabela Dinâmica, mantê‑la intacta e exportá‑la para um arquivo PPTX usando Aspose.Cells para Java. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/portuguese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..744316ef9f --- /dev/null +++ b/cells/portuguese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Copie a tabela dinâmica em Java preservando o pivô, depois exporte o + Excel para PPTX, desative o AutoFiltro do Excel e use Smart Marker para arrays JSON + – guia completo passo a passo. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: pt +og_description: Copiar tabela dinâmica em Java, preservar a definição da tabela dinâmica, + exportar para PPTX, desativar AutoFilter e usar Smart Marker – guia completo para + desenvolvedores. +og_title: Copiar Tabela Dinâmica em Java – Preserve‑a, Exporte para PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Copiar Tabela Dinâmica em Java – Preservá‑la, Exportar para PPTX +url: /pt/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Copiar Tabela Dinâmica em Java – Preservá‑la, Exportar para PPTX + +Já precisou **copiar tabela dinâmica** de uma pasta de trabalho para outra sem perder a definição subjacente da tabela dinâmica? Você não é o único coçando a cabeça com isso. Em muitos projetos do mundo real, você acabará movendo dados, e a última coisa que deseja é uma tabela dinâmica quebrada que gera erros em tempo de execução. + +Neste tutorial, percorreremos uma solução completa que não só **copia tabela dinâmica** mas também mostra como **preservar tabela dinâmica** ao copiar, **exportar Excel para PPTX**, **desativar AutoFilter do Excel**, e **usar smart marker** para inserir um array JSON em uma única célula. Ao final, você terá um único programa Java executável que cobre todos os quatro cenários. + +## Pré-requisitos + +- Java 8 ou superior (o código funciona também com Java 11) +- Biblioteca Aspose.Cells for Java (versão 23.9 ou posterior) – você pode obtê‑la no Maven Central +- Familiaridade básica com conceitos do Excel como tabelas dinâmicas, tabelas e caixas de texto + +Se estiver faltando o JAR do Aspose.Cells, adicione isto ao seu `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Agora, vamos mergulhar. + +## Etapa 1: Copiar Tabela Dinâmica – Preservando a Definição da Tabela Dinâmica + +Quando você simplesmente copia o intervalo de células que contém uma tabela dinâmica, os metadados da tabela dinâmica frequentemente ficam para trás. Aspose.Cells nos oferece uma maneira prática de manter a definição intacta usando `copyRange` com uma instância de `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Por que isso funciona:** `CopyOptions` indica ao Aspose.Cells que copie tudo, incluindo o cache da tabela dinâmica e as configurações de campo. Sem ele, você acabará com valores simples e perderá a capacidade de atualizar a tabela dinâmica. + +**Caso de borda:** Se a sua tabela dinâmica de origem abranger mais do que o intervalo codificado `A1:G20`, ajuste o intervalo adequadamente ou use `sourceSheet.getPivotTables().get(0).getDataRange()` para obtê‑lo dinamicamente. + +![Exemplo de cópia de tabela dinâmica](image.png "Copiar tabela dinâmica em Java") + +*Texto alternativo da imagem: diagrama de cópia de tabela dinâmica em Java* + +## Etapa 2: Exportar uma Planilha com uma Caixa de Texto Editável para PPTX + +Frequentemente você precisa transformar uma planilha Excel em um slide PowerPoint — pense em dashboards semanais que precisam ser apresentados. Aspose.Cells pode salvar diretamente uma planilha como um arquivo PPTX preservando formas como caixas de texto. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**O que está acontecendo:** O método `save` com `SaveFormat.PPTX` converte a planilha inteira, incluindo qualquer TextBox editável, em um slide PowerPoint. O texto dentro da caixa permanece editável ao abrir o PPTX no PowerPoint. + +**Dica:** Se você tem várias planilhas e deseja apenas uma específica, chame `wb.getWorksheets().removeAt(index)` nas demais antes de salvar. + +## Etapa 3: Desativar AutoFilter do Excel em uma Tabela + +AutoFilter é útil para os usuários finais, mas às vezes você precisa desativá‑lo programaticamente — talvez antes de exportar dados ou ao gerar um relatório limpo. Veja como **desativar excel autofilter** em uma tabela do Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Por que você pode precisar disso:** Exportar para formatos que não suportam AutoFilter (como CSV ou PDF) pode fazer ícones de filtro aparecerem. Desativá‑lo garante uma saída limpa. + +**Armadilha comum:** Se a planilha não possuir tabelas, `getTables().get(0)` lançará uma `IndexOutOfBoundsException`. Sempre verifique `sheet.getTables().size()` primeiro em código de produção. + +## Etapa 4: Usar Smart Marker – Inserir um Array JSON como Valor de Uma Única Célula + +Smart Marker é o mecanismo de templating da Aspose. Um truque útil é tratar um array JSON inteiro como valor de uma única célula, o que é perfeito para logging ou para passar dados estruturados adiante. Vamos **usar smart marker** para conseguir isso. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Como funciona:** O marcador `${json}` na pasta de trabalho é substituído pela string JSON completa porque definimos `ArrayAsSingle`. Sem essa opção, Aspose tentaria expandir cada elemento do array em linhas separadas. + +**Variação:** Se precisar que o array seja dividido em linhas, basta omitir `ArrayAsSingle` e deixar o Smart Marker lidar com a expansão automaticamente. + +## Exemplo Completo Funcional – Todas as Etapas Combinadas + +Abaixo está uma única classe Java que encadeia todas as operações que abordamos. Execute‑a como um método `main` regular; basta ajustar os caminhos de arquivo para corresponder ao seu ambiente. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/portuguese/java/getting-started/_index.md b/cells/portuguese/java/getting-started/_index.md index 1419f14141..37e3d3d5cb 100644 --- a/cells/portuguese/java/getting-started/_index.md +++ b/cells/portuguese/java/getting-started/_index.md @@ -71,6 +71,8 @@ Aprenda a abrir e processar arquivos SpreadsheetML com eficiência em Java com A ### [Como recuperar a versão do Aspose.Cells em Java: um guia passo a passo](./retrieve-aspose-cells-version-java-guide/) Aprenda a verificar a versão do Aspose.Cells em seus projetos Java com este guia completo. Garanta a compatibilidade e aproveite os novos recursos com eficiência. +### [Crie pasta de trabalho licenciada – Guia completo Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Aprenda a criar uma pasta de trabalho do Excel licenciada usando Aspose.Cells para Java, incluindo configuração de licença e geração de arquivos. ## Recursos adicionais diff --git a/cells/portuguese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/portuguese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..0a62a8c574 --- /dev/null +++ b/cells/portuguese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Crie rapidamente uma pasta de trabalho licenciada com Aspose.Cells Java. + Aprenda como licenciar o Aspose, definir a licença do Aspose Java e ler arquivos + Excel com o Aspose em um único tutorial. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: pt +og_description: Crie uma pasta de trabalho licenciada usando Aspose.Cells Java. Este + guia mostra como licenciar o Aspose, definir a licença do Aspose em Java e ler arquivos + Excel com o Aspose. +og_title: Criar Pasta de Trabalho Licenciada – Tutorial Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Criar Pasta de Trabalho Licenciada – Guia Completo do Aspose.Cells Java +url: /pt/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Pasta de Trabalho Licenciada – Guia Completo do Aspose.Cells Java + +Já se perguntou como **criar pasta de trabalho licenciada** sem encontrar erros de licenciamento? Você não está sozinho—muitos desenvolvedores esbarram nessa barreira ao primeiro contato com o Aspose.Cells. A boa notícia? A solução é simples, e este guia o conduzirá passo a passo. + +Em poucos minutos você saberá **como licenciar o Aspose**, exatamente **definir a licença Aspose Java**, e estará pronto para **ler Excel com Aspose** em tarefas reais como geração de relatórios ou migração de dados. Sem referências vagas, apenas um exemplo completo e executável que você pode copiar‑colar hoje. + +--- + +## O Que Você Precisa + +- Java 17 ou superior (a versão estável mais recente funciona melhor) +- Aspose.Cells for Java 23.9 (ou qualquer versão recente) +- Seu arquivo de licença Aspose.Cells (`Aspose.Cells.Java.lic`) +- Uma IDE ou ferramenta de build com a qual se sinta confortável (Maven, Gradle ou simplesmente `javac`) + +Se algum desses itens lhe for desconhecido, não se preocupe—cada um será abordado nas etapas a seguir. + +--- + +## Etapa 1: Adicionar a Dependência do Aspose.Cells + +Antes de poder **criar pasta de trabalho licenciada**, a biblioteca precisa estar no seu classpath. Com Maven, fica assim: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Para Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Dica profissional:** Se você estiver usando uma compilação simples com `javac`, basta colocar o JAR em uma pasta `libs/` e adicioná‑lo à flag `-cp`. + +--- + +## Etapa 2: **Como Licenciar o Aspose** – Carregar o Arquivo de Licença + +No momento em que você chamar qualquer API do Aspose sem uma licença, verá uma marca d'água no arquivo Excel gerado. Para evitar isso, você precisa **definir a licença Aspose Java** logo no início do seu programa. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Por que isso importa:** O objeto `License` indica ao Aspose que ele deve sair do modo de avaliação, removendo as marcas d'água e desbloqueando toda a API. Se o caminho estiver errado, uma exceção será lançada—assim você saberá imediatamente. + +--- + +## Etapa 3: **Criar Pasta de Trabalho Licenciada** – Gerar um Arquivo Excel + +Agora que a licença foi aplicada, você pode criar objetos **criar pasta de trabalho licenciada** com segurança. Abaixo está um exemplo mínimo, porém completo, que também demonstra **ler Excel com Aspose** posteriormente. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**O que isso faz:** + +1. Chama a utilidade da **Etapa 2** para **definir a licença Aspose Java**. +2. Instancia um novo `Workbook` – o núcleo de uma operação **criar pasta de trabalho licenciada**. +3. Grava uma pequena tabela, salva como XLSX e, em seguida, lê o arquivo de volta para provar que **ler Excel com Aspose** funciona sem marcas d'água. + +Executar o programa exibe: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Se você abrir o arquivo gerado, verá uma planilha limpa, sem marca d'água do Aspose—prova de que a licença está ativa. + +--- + +## Etapa 4: Armadilhas Comuns & Casos de Borda + +| Problema | Por que Acontece | Solução | +|----------|------------------|---------| +| **LicenseNotFoundException** | O caminho está errado ou o arquivo está ausente. | Use um caminho absoluto ou carregue o arquivo a partir dos recursos (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR do Aspose não está no classpath. | Verifique a dependência Maven/Gradle ou adicione o JAR manualmente. | +| **Falha ao salvar no Windows** | A pasta de destino não existe. | Garanta que o diretório `output/` seja criado (`new File("output").mkdirs();`). | +| **Leitura de arquivos .xls antigos** | O `SaveFormat` padrão pode não suportar o formato antigo. | Use `SaveFormat.XLS` ao salvar, ou deixe o Aspose detectar automaticamente na carga. | + +> **Fique atento:** Se você estiver implantando em um servidor, o arquivo de licença deve ficar fora da raiz da aplicação web para evitar exposição acidental. + +--- + +## Etapa 5: Verificar a Licença Programaticamente (Opcional) + +Às vezes você quer confirmar que a licença foi carregada corretamente antes de executar operações pesadas. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +É possível chamar `LicenseChecker.isLicensed("...")` e abortar se retornar `false`. Isso adiciona uma camada extra de segurança, especialmente em pipelines CI/CD. + +--- + +## Visão Geral Visual + +![Diagrama mostrando o fluxo desde a aplicação da licença até a criação e leitura de uma pasta de trabalho](create-licensed-workbook-diagram.png "criar pasta de trabalho licenciada") + +*Texto alternativo da imagem:* **diagrama de criar pasta de trabalho licenciada** – ilustra as etapas de aplicar a licença Aspose, criar a pasta de trabalho e ler o Excel. + +--- + +## Conclusão + +Agora você tem uma solução completa, de ponta a ponta, para **criar pasta de trabalho licenciada** usando Aspose.Cells para Java. Cobriramos **como licenciar o Aspose**, demonstramos o código exato de **definir a licença Aspose Java**, e oferecemos uma rápida demonstração de **ler Excel com Aspose** para confirmar que tudo funciona. + +A seguir, você pode explorar: + +- Estilização de células (fontes, cores) – ideal para relatórios profissionais. +- Exportação para CSV ou PDF – o Aspose suporta muitos formatos prontos para uso. +- Trabalho com grandes volumes de dados – use `WorkbookDesigner` para modelagem. + +Sinta‑se à vontade para experimentar e, se encontrar algum obstáculo, deixe um comentário abaixo. Boa codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/portuguese/java/ole-objects-embedded-content/_index.md b/cells/portuguese/java/ole-objects-embedded-content/_index.md index c15750f1ee..8eac979892 100644 --- a/cells/portuguese/java/ole-objects-embedded-content/_index.md +++ b/cells/portuguese/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Aprenda a extrair GUIDs de objetos do PowerPoint incorporados em arquivos do Exc ### [Remover controles ActiveX do Excel com Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Um tutorial de código para Aspose.Words Java - +### [Como incorporar fontes – Guia completo para exportação HTML, XPS e OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Aprenda a incorporar fontes em documentos ao exportar para HTML, XPS e OLE usando Aspose.Cells para Java. ## Recursos adicionais diff --git a/cells/portuguese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/portuguese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..f9c328993e --- /dev/null +++ b/cells/portuguese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: Aprenda como incorporar fontes em HTML e outros formatos. Tutorial passo + a passo cobrindo incorporação de fontes em HTML, conversão de Excel para HTML, como + exportar OLE e conversão de Excel para XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: pt +og_description: Como incorporar fontes em exportações HTML, XPS e OLE. Aprenda todo + o fluxo de trabalho, veja código Java executável e domine a incorporação de fontes + em HTML para conversões de Excel. +og_title: Como Incorporar Fontes – Tutorial Completo de Java +tags: +- Aspose.Cells +- Java +- Document Export +title: Como Incorporar Fontes – Guia Completo para Exportação em HTML, XPS e OLE +url: /pt/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Incorporar Fontes – Guia Completo para HTML, XPS e Exportação OLE + +Já se perguntou **como incorporar fontes** ao transformar uma pasta de trabalho do Excel em uma página da web ou em um documento imprimível? Você não está sozinho. Muitos desenvolvedores se deparam com um obstáculo quando a saída parece correta na sua máquina, mas falha em outra porque as fontes necessárias estão ausentes. + +Neste tutorial, percorreremos um cenário real usando Aspose.Cells for Java: incorporaremos fontes em HTML, preservaremos os seletores de variação de emoji ao converter para XPS e até manteremos um objeto OLE editável ao exportar para PPTX. Ao final, você terá uma solução robusta, pronta para copiar e colar, que responde a “como incorporar fontes” e também aborda **embed fonts in html**, **convert excel to html**, **how to export ole**, e **convert excel to xps**. + +## Pré-requisitos + +- Java 17 (ou qualquer JDK recente) +- Aspose.Cells for Java 25.x ou posterior +- Uma IDE de desenvolvimento (IntelliJ IDEA, Eclipse ou VS Code) +- Familiaridade básica com estruturas de dados do Excel + +Não são necessários serviços externos—tudo roda localmente. + +## Visão Geral da Solução + +1. **Criar uma pasta de trabalho** e usar a função `WRAPCOLS` para transformar um intervalo vertical em um layout de três colunas. +2. **Salvar a pasta de trabalho como XPS** ativando os seletores de variação de fonte para que os emojis permaneçam intactos. +3. **Exportar para HTML** com fontes incorporadas, garantindo que a página tenha a mesma aparência em qualquer lugar. +4. **Exportar uma pasta de trabalho contendo um objeto OLE para PPTX**, preservando a editabilidade. +5. **Aplicar um modelo Smart Marker** que demonstra a vinculação de dados mestre‑detalhe. + +Cada passo está isolado em sua própria seção H2, facilitando a leitura rápida tanto para mecanismos de busca quanto para assistentes de IA. + +![Ilustração de como incorporar fontes](image.png "como incorporar fontes") + +*Texto alternativo da imagem: diagrama de como incorporar fontes mostrando o fluxo de trabalho do Excel para HTML, XPS e PPTX.* + +--- + +## Etapa 1 – Criar uma Pasta de Trabalho e Usar WRAPCOLS (Por que Isso Importa para embed fonts in html) + +Antes de falarmos sobre incorporação de fontes, precisamos de uma pasta de trabalho que realmente contenha dados. A função `WRAPCOLS` é uma maneira prática de dividir uma única coluna em várias colunas, o que frequentemente torna o HTML final mais legível. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Por que este passo?** +A chamada `WRAPCOLS` gera um intervalo de múltiplas colunas que depois aparece no HTML como uma tabela. Quando posteriormente **incorporamos fontes em html**, o estilo da tabela dependerá das fontes que incorporamos, garantindo renderização consistente em todos os navegadores. + +--- + +## Etapa 2 – Salvar a Pasta de Trabalho como XPS Preservando Emoji (convert excel to xps) + +Se você precisa de um formato pronto para impressão, XPS é uma escolha sólida. No entanto, documentos modernos frequentemente contêm emojis ou símbolos que utilizam seletores de variação. Ativar `EnableFontVariationSelectors` garante que esses caracteres sobrevivam à conversão. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**O que você obtém:** +Um arquivo XPS que exibe qualquer emoji incorporado exatamente como na pasta de trabalho original. Isso atende ao requisito **convert excel to xps** e demonstra que o tratamento de fontes não se limita ao HTML. + +--- + +## Etapa 3 – Exportar para HTML com Fontes Incorporadas (how to embed fonts & embed fonts in html) + +Agora chegamos ao núcleo do tutorial: **como incorporar fontes** ao converter Excel para HTML. Aspose.Cells nos permite incorporar as fontes diretamente no arquivo HTML gerado, eliminando a necessidade de arquivos de fonte externos. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Como funciona:** +`setEmbedFonts(true)` indica ao renderizador que ele deve ler os arquivos de fonte usados na pasta de trabalho e incorporá‑los como regras `@font-face` codificadas em Base64 dentro da tag ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Observe a regra `@font-face` — esta é a resposta concreta para **embed fonts in html**. + +--- + +## Etapa 4 – Exportar uma Pasta de Trabalho Contendo um Objeto OLE para PPTX (how to export ole) + +Muitos relatórios empresariais incorporam documentos Word, PDFs ou outras planilhas Excel como objetos OLE. Ao exportar essa pasta de trabalho para PowerPoint, costuma‑se perder a capacidade de editar esse objeto. Aspose.Cells preserva a editabilidade prontamente. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Por que isso importa:** +Se você está procurando **how to export ole**, este trecho mostra a chamada de API exata. O slide resultante do PowerPoint contém o objeto OLE como um componente ativo, de duplo clique para editar — sem necessidade de pós‑processamento adicional. + +--- + +## Etapa 5 – Aplicar um Modelo Smart Marker (master‑detail) e Finalizar a Demonstração + +Smart Markers permitem vincular uma fonte de dados (Map, JSON, DataTable) diretamente a um modelo Excel. Aqui está um exemplo mínimo que imprime linhas mestre‑detalhe. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**O que você vê:** +Uma nova pasta de trabalho (`smartMarkerResult.xlsx`) onde os marcadores de posição do modelo são substituídos pelos dados. Esta etapa não trata diretamente de fontes, mas completa o tutorial ao mostrar um fluxo de trabalho típico de relatórios que frequentemente precede uma exportação **embed fonts in html**. + +--- + +## Armadilhas Comuns & Dicas Profissionais (Garantindo a Incorporação Bem‑sucedida de Fontes) + +| Problema | Por que acontece | Correção | +|----------|------------------|----------| +| As fontes estão ausentes no arquivo HTML | A pasta de trabalho usa uma fonte do sistema que não está instalada no servidor. | Use `Workbook.getSettings().setDefaultFont("Arial")` antes de carregar os dados, ou incorpore manualmente os arquivos de fonte necessários. | +| O HTML de saída é enorme | Incorporar muitas fontes grandes aumenta o tamanho do arquivo. | Limite a incorporação apenas às fontes que você realmente usa: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emojis desaparecem após a conversão para XPS | Os seletores de variação são removidos por padrão. | Ative `settings.setEnableFontVariationSelectors(true)` conforme mostrado na Etapa 2. | +| O objeto OLE torna‑se uma imagem estática no PPTX | A pasta de trabalho de origem foi salva com `setSuppressOLEObjects(true)`. | Certifique‑se de **não** suprimir objetos OLE ao salvar para PPTX. | + +--- + +## Verificando os Resultados + +1. Abra `embeddedFonts.html` no Chrome/Firefox. A tabela deve ser exibida usando a fonte incorporada (por exemplo, Arial) mesmo que essa fonte não esteja instalada na máquina. +2. Abra `withVariations.xps` no Visualizador XPS do Windows. Emojis como 👍 devem ser renderizados corretamente. +3. Abra `oleEditable.pptx` no PowerPoint. Clique duas vezes na forma OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/russian/java/excel-import-export/_index.md b/cells/russian/java/excel-import-export/_index.md index 49f1a58f37..420df23a9d 100644 --- a/cells/russian/java/excel-import-export/_index.md +++ b/cells/russian/java/excel-import-export/_index.md @@ -47,6 +47,11 @@ Узнайте, как реализовать проверку данных импорта Excel с помощью Aspose.Cells для Java с помощью этого всеобъемлющего пошагового руководства. Обеспечьте точность данных и улучшите пользовательский опыт. ### [Экспорт Excel в HTML Java](./export-excel-to-html-java/) Узнайте, как экспортировать Excel в HTML в Java с помощью Aspose.Cells для Java. Следуйте этому пошаговому руководству с исходным кодом, чтобы легко и без усилий преобразовать файлы Excel в HTML. +### [Как экспортировать CSV с Java – установить значимые цифры и диапазон экспорта в CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Узнайте, как экспортировать данные в CSV с помощью Aspose.Cells для Java, задав значимые цифры и диапазон экспорта. + +### [Как создать PDF из рабочей книги – Полное руководство Java](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Узнайте, как создать PDF из рабочей книги с помощью Aspose.Cells для Java. Пошаговое руководство с примером кода. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/russian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..51e78a4209 --- /dev/null +++ b/cells/russian/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: Как создать PDF и сохранить книгу как PDF, экспортировать Excel в HTML + и использовать функцию expand с Aspose.Cells для Java. Пошаговый код включён. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: ru +og_description: Как создать PDF из книги Excel с помощью Aspose.Cells для Java. Узнайте, + как сохранить книгу в PDF, экспортировать Excel в HTML и использовать функцию EXPAND. +og_title: Как создать PDF из рабочей книги — учебник по Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Как создать PDF из рабочей книги — полное руководство по Java +url: /ru/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как создать PDF из рабочей книги – Полное руководство по Java + +Когда‑нибудь задавались вопросом **how to create PDF** напрямую из рабочей книги Excel без использования сторонних конвертеров? Вы не одиноки. Многие разработчики сталкиваются с проблемой, когда им нужен быстрый экспорт в PDF, предварительный просмотр в HTML или сложные формулы массивов — всё сразу. + +В этом руководстве мы пройдемся по единой, автономной Java‑программе, которая делает именно это. Мы **save workbook as PDF**, покажем, как **export Excel to HTML** с сохранением замороженных строк, и продемонстрируем **use expand function** внутри листа. К концу у вас будет исполняемый проект, который можно добавить в любой Maven или Gradle билд. + +> **Pro tip:** Весь код ниже работает с Aspose.Cells 23.10 (или новее). Если вы используете более старую версию, некоторые имена методов могут немного отличаться. + +--- + +## Требования + +- **Java 17** (или любая LTS‑версия) установлен и настроен. +- **Aspose.Cells for Java** библиотека. Добавьте следующую зависимость Maven в ваш `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- IDE или текстовый редактор по вашему выбору (IntelliJ IDEA, VS Code, Eclipse…). + +Никаких внешних API, никаких веб‑сервисов — только чистый Java и SDK Aspose.Cells. + +--- + +## Обзор решения + +Мы разделим реализацию на **семь логических шагов**: + +1. Создать рабочую книгу и продемонстрировать функцию **EXPAND**. +2. Включить селекторы вариаций шрифтов и **save the workbook as PDF**. +3. Экспортировать ту же рабочую книгу в HTML, сохраняя замороженные строки. +4. Использовать Smart Marker с параметром `IF` для вставки условного текста. +5. Применить master‑detail Smart Marker для иерархических данных. +6. Загрузить файл Markdown, содержащий изображения в формате Base‑64. +7. Настроить параметры GridJs для выравнивания и границ, затем вставить данные. + +Каждый шаг помещён в отдельный метод, чтобы `main` оставался чистым и чтобы проиллюстрировать **почему** мы делаем то, что делаем, а не только **что** мы пишем. + +--- + +## Шаг 1 – Создание рабочей книги и использование функции EXPAND + +Функция **EXPAND** — новая формула динамического массива, представленная в Office 365. Она позволяет «разлить» диапазон на более большую область без ручного копирования ячеек. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Почему это важно:** +- `EXPAND` автоматически заполняет результат пустыми ячейками, что идеально, когда позже вы **save workbook as PDF** — PDF покажет чистую прямоугольную таблицу. +- Вызов `calculateFormula()` гарантирует, что движок формул выполнится до экспорта. + +--- + +## Шаг 2 – Включение селекторов вариаций шрифтов и **Save Workbook as PDF** + +Если вам необходимо поддерживать продвинутую типографику (например, эмодзи или селекторы вариаций CJK), вы должны включить эту функцию **до** сохранения. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Ключевой момент:** Основной запрос **how to create pdf** решён здесь — вызовом `workbook.save(..., SaveFormat.PDF)` после настройки параметров. + +--- + +## Шаг 3 – **Export Excel to HTML** с сохранением замороженных строк + +Часто заинтересованные стороны запрашивают быстрый веб‑превью. Aspose.Cells может экспортировать в HTML, и с `setPreserveFrozenRows(true)` мы сохраняем тот же опыт прокрутки, что и в Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Почему это важно:** Замороженные строки — удобство использования; без них заголовочные строки исчезают при прокрутке страницы. + +--- + +## Шаг 4 – Smart Marker с параметром IF + +Smart Markers позволяют объединять данные в шаблон без написания циклов. Параметр `if` добавляет условную логику непосредственно внутри маркера. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +В результирующем PDF будет отображаться **«VIP Customer: Acme Corp»**, потому что `IsVIP` равно `true`. Если изменить флаг на `false`, вы получите **«Regular Customer: Acme Corp»** — без дополнительного кода. + +--- + +## Шаг 5 – Master‑Detail Smart Marker с иерархическим диапазоном + +Когда у вас есть данные «родитель‑дочерний» (например, заказы и позиции), master‑detail маркер избавляет от ручного вставления строк. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Что вы получаете:** Движок расширяет строки‑мастера для каждого заказа и автоматически вкладывает строки‑детали под ними — идеально для счетов‑фактур или отчетов о покупках. + +--- + +## Шаг 6 – Загрузка документа Markdown с встроенными изображениями Base‑64 + +Если ваши исходные данные находятся в Markdown (часто в конвейерах документации), Aspose.Cells может отобразить их непосредственно в рабочую книгу. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Примечание о граничном случае:** Если строка Base‑64 некорректна, Aspose пропустит изображение, но продолжит обработку остального документа — без сбоя. + +--- + +## Шаг 7 – Настройка параметров GridJs и вставка данных + +GridJs — легковесная JavaScript‑сетка, которую Aspose может отобразить в HTML. Выравнивание чисел и добавление границ повышают читаемость. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Почему это важно:** Правильное выравнивание и границы делают сгенерированный HTML похожим на отшлифованную таблицу — полезно для панелей мониторинга. + +--- + +## Сводка — метод `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/russian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/russian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..9a8432fb0f --- /dev/null +++ b/cells/russian/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Узнайте, как экспортировать CSV из Java‑рабочей книги, задавая значимые + цифры и диапазон экспорта, в одном понятном руководстве. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: ru +og_description: Освойте, как экспортировать CSV в Java, задавать значимые цифры и + экспортировать диапазон в CSV с практическим кодом и советами. +og_title: Как экспортировать CSV с помощью Java – Полное пошаговое руководство +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Как экспортировать CSV с помощью Java – задать значимые цифры и диапазон экспорта + в CSV +url: /ru/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как экспортировать CSV с помощью Java – установить значимые цифры и экспортировать диапазон в CSV + +Когда‑нибудь задавались вопросом **как экспортировать csv** из Java‑рабочей книги без потери числовой точности? Возможно, вы пробовали быстро вызвать `toString()` и получили кучу ошибок округления. Это распространённая проблема, особенно когда нужно **установить значимые цифры** для финансовых данных или научных результатов. + +В этом руководстве вы увидите полностью готовый к запуску пример, который показывает **как экспортировать csv**, как **установить значимые цифры**, а также как **экспортировать диапазон в csv**, сохраняя данные в порядке. Мы пройдёмся по каждой строке, объясним *почему* вызываются те или иные API, и дадим советы, как избежать типичных подводных камней. Никакой дополнительной документации не требуется — просто автономное решение, которое можно скопировать и вставить уже сегодня. + +## Что вы узнаете + +- Создать рабочую книгу и настроить числовую точность с помощью `setNumberSignificantDigits`. +- Экспортировать определённый диапазон ячеек в красиво отформатированную строку CSV. +- Разобрать даты в японской эре с использованием `DateTimeFormatInfo`. +- Пересчитать формулы, чтобы результаты динамических массивов оставались актуальными. +- Отрисовать сводную таблицу в PNG‑изображение. +- Использовать Smart Marker для вставки комментариев и в конце сохранить рабочую книгу. + +Всё это делается с помощью библиотеки Aspose.Cells for Java, версия 23.12 (на момент написания самая свежая). Если JAR находится в вашем classpath, вы готовы к работе. + +--- + +## Шаг 1: Создать рабочую книгу и **установить значимые цифры** + +Прежде чем что‑либо экспортировать, нам нужен объект рабочей книги. Первое, что многие разработчики упускают из виду, — это числовая точность. По умолчанию Aspose.Cells использует полную двойную точность, что может привести к длинным, громоздким строкам в CSV. Установка количества значимых цифр обрезает вывод, сохраняя при этом самые важные цифры. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Почему это важно?** +Если вы экспортируете ячейку, содержащую `12345.6789`, без ограничения цифр, CSV покажет полное значение, загромождая отчёты. С `setNumberSignificantDigits(5)` та же ячейка станет `12346`, что часто ожидают бизнес‑пользователи. + +> **Pro tip:** Если вам нужна разная точность для разных столбцов, можно применить пользовательский `Style` вместо глобальной настройки. + +--- + +## Шаг 2: **Экспорт диапазона в CSV** – важен формат + +Теперь, когда рабочая книга готова, давайте извлечём прямоугольный блок данных и превратим его в строку CSV. Мы также зададим формат с двумя знаками после запятой (`0.00`), чтобы каждый номер выглядел аккуратно. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Вызов `exportDataTable` делает всю тяжёлую работу. Поскольку мы установили `exportAsString`, метод возвращает `String`, которую можно вывести, записать в файл или отправить по HTTP. Шаг **экспорт диапазона в csv** также учитывает глобальную настройку `setNumberSignificantDigits`, которую мы задали ранее, поэтому числа одновременно округляются до пяти значимых цифр *и* отображаются с двумя знаками после запятой. + +**Ожидаемый вывод (усечённый):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Common question:** *Что делать, если нужен другой разделитель, например точка с запятой?* +> Просто вызовите `exportOptions.setSeparator(";")` перед экспортом. + +--- + +## Шаг 3: Разобрать дату в японской эре (дополнительная утилита) + +Хотя это напрямую не связано с CSV, многие Excel‑файлы содержат локализованные даты. Ниже показано, как превратить строку японской эры вроде `"R3/04/01"` в стандартный объект `DateTime`. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Вывод: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Почему это включено?** +Если ваш CSV‑экспорт попадает в downstream‑системы, ожидающие даты в формате ISO‑8601, сначала нужно нормализовать любые локализованные форматы. Этот фрагмент кода демонстрирует *как* и *почему* это делается в одном месте. + +--- + +## Шаг 4: Пересчитать формулы – обновить результаты динамических массивов + +Если в рабочей книге есть формулы (например, `=SUM(A1:A10)`), они не обновятся автоматически после изменения настроек. Вызов `calculateFormula` принудительно пересчитывает всё, гарантируя, что экспортированный CSV отражает актуальные значения. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Watch out:** Большие рабочие книги могут потребовать заметного времени на пересчёт. Для сценариев, критичных к производительности, рассмотрите `calculateFormula(FormulaCalculationOptions)`, чтобы ограничить область пересчёта. + +--- + +## Шаг 5: Отрисовать первую сводную таблицу в PNG‑изображение + +Иногда нужен визуальный снимок сводной таблицы рядом с CSV. Ниже код, который рендерит первую сводную таблицу на первом листе в PNG‑файл. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tip:** Если в рабочей книге ещё нет сводной таблицы, её можно создать программно — см. документацию Aspose.Cells для быстрого примера. + +--- + +## Шаг 6: Использовать Smart Marker для записи комментария и сохранить рабочую книгу + +Smart Marker позволяет вставлять динамический контент в ячейки с помощью простых плейсхолдеров. Здесь мы записываем комментарий «Reviewed by QA» в указанную ячейку, а затем сохраняем рабочую книгу. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Плейсхолдер `${Comment}` можно разместить в любой ячейке листа (например, `A1`). Когда выполняется `apply`, плейсхолдер заменяется переданным значением. + +**Result:** Вы найдёте файл `output/commented.xlsx` с добавленным комментарием, а также ранее сгенерированный `pivot.png` и строку CSV, выведенную в консоль. + +--- + +## Полный рабочий пример + +Объединив всё вместе, получаем полную программу, которую можно скомпилировать и запустить: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Ожидаемый вывод в консоль + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Вы также найдёте `output/pivot.png` (если сводная таблица существовала) и `output/commented.xlsx` на диске. + +--- + +## Часто задаваемые вопросы и особые случаи + +- **Можно ли экспортировать сразу в физический CSV‑файл?** + Да. Замените блок `exportAsString` на `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Что делать, если мой лист использует другую локаль для чисел?** + Установите `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` перед экспортом; это переключит + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/russian/java/excel-pivot-tables/_index.md b/cells/russian/java/excel-pivot-tables/_index.md index fb5de04067..0233bb3534 100644 --- a/cells/russian/java/excel-pivot-tables/_index.md +++ b/cells/russian/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aspose.Cells для Java позволяет вам автоматизирова Узнайте, как обновить данные сводной таблицы в Aspose.Cells для Java. Поддерживайте актуальность данных без усилий. ### [Настройка стилей сводной таблицы](./customizing-pivot-table-styles/) Узнайте, как настроить стили сводных таблиц в API Aspose.Cells для Java. Создавайте визуально привлекательные сводные таблицы с легкостью. +### [Копирование сводной таблицы в Java – Сохранить её, экспортировать в PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Узнайте, как скопировать сводную таблицу в Aspose.Cells для Java, сохранить её свойства и экспортировать в презентацию PPTX. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/russian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..9cfcc90e26 --- /dev/null +++ b/cells/russian/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Копировать сводную таблицу в Java, сохраняя её структуру, затем экспортировать + Excel в PPTX, отключить AutoFilter в Excel и использовать Smart Marker для массивов + JSON — полное пошаговое руководство. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: ru +og_description: Копировать сводную таблицу в Java, сохранить определение сводной таблицы, + экспортировать в PPTX, отключить AutoFilter и использовать Smart Marker — полное + руководство для разработчиков. +og_title: Копировать сводную таблицу в Java — сохранить её, экспортировать в PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Копировать сводную таблицу в Java — сохранить её, экспортировать в PPTX +url: /ru/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Копировать сводную таблицу в Java – Сохранить её, экспортировать в PPTX + +Когда‑нибудь нужно было **скопировать сводную таблицу** из одной книги в другую, не теряя исходное определение сводной? Вы не одиноки в этом. Во многих реальных проектах вам придётся перемещать данные, и последнее, чего вы хотите, — это сломанная сводная таблица, вызывающая ошибки во время выполнения. + +В этом руководстве мы пройдем полное решение, которое не только **скопирует сводную таблицу**, но и покажет, как **сохранить сводную таблицу** при копировании, **экспортировать Excel в PPTX**, **отключить AutoFilter в Excel** и **использовать smart marker**, чтобы поместить массив JSON в одну ячейку. К концу у вас будет единая исполняемая Java‑программа, охватывающая все четыре сценария. + +## Требования + +- Java 8 или новее (код также работает с Java 11) +- библиотека Aspose.Cells for Java (версия 23.9 или новее) — её можно получить из Maven Central +- базовое знакомство с концепциями Excel, такими как сводные таблицы, таблицы и текстовые поля + +Если у вас отсутствует JAR‑файл Aspose.Cells, добавьте следующее в ваш `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Теперь давайте погрузимся. + +## Шаг 1: Копировать сводную таблицу – Сохранение определения сводной + +Если просто скопировать диапазон ячеек, содержащий сводную таблицу, метаданные сводной часто остаются позади. Aspose.Cells предоставляет удобный способ сохранить определение, используя `copyRange` с экземпляром `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Почему это работает:** `CopyOptions` указывает Aspose.Cells перенести всё, включая кэш сводной и настройки полей. Без него вы получите только значения и потеряете возможность обновлять сводную. + +**Пограничный случай:** Если ваша исходная сводная охватывает больше, чем жёстко заданный диапазон `A1:G20`, скорректируйте диапазон соответственно или используйте `sourceSheet.getPivotTables().get(0).getDataRange()` для динамического получения. + +![Пример копирования сводной таблицы](image.png "Копирование сводной таблицы в Java") + +*Текст изображения: диаграмма копирования сводной таблицы в Java* + +## Шаг 2: Экспорт листа с редактируемым TextBox в PPTX + +Часто требуется превратить лист Excel в слайд PowerPoint — например, еженедельные дашборды, которые нужно представить. Aspose.Cells может напрямую сохранить лист как файл PPTX, сохраняя такие формы, как текстовые поля. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Что происходит:** Метод `save` с параметром `SaveFormat.PPTX` преобразует весь лист, включая любой редактируемый TextBox, в слайд PowerPoint. Текст внутри поля остаётся редактируемым при открытии PPTX в PowerPoint. + +**Подсказка:** Если у вас несколько листов и нужен только определённый, вызовите `wb.getWorksheets().removeAt(index)` для остальных перед сохранением. + +## Шаг 3: Отключить AutoFilter в Excel для таблицы + +AutoFilter удобен для конечных пользователей, но иногда его нужно отключить программно — возможно, перед экспортом данных или при создании чистого отчёта. Вот как **отключить excel autofilter** для таблицы Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Зачем это может понадобиться:** При экспорте в форматы, не поддерживающие AutoFilter (например, CSV или PDF), могут появиться лишние значки фильтра. Отключение обеспечивает чистый вывод. + +**Распространённая ошибка:** Если на листе нет таблиц, `getTables().get(0)` вызовет `IndexOutOfBoundsException`. В продакшн‑коде всегда проверяйте `sheet.getTables().size()` сначала. + +## Шаг 4: Использовать Smart Marker – Вставить массив JSON как значение одной ячейки + +Smart Marker — это шаблонизатор от Aspose. Один полезный приём — рассматривать весь массив JSON как значение одной ячейки, что идеально подходит для логирования или передачи структурированных данных дальше. Давайте **используем smart marker** для этого. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Как это работает:** Маркер `${json}` в книге заменяется полной строкой JSON, потому что мы задали `ArrayAsSingle`. Без этой опции Aspose попытался бы развернуть каждый элемент массива в отдельные строки. + +**Вариант:** Если нужен массив, разбитый по строкам, просто опустите `ArrayAsSingle`, и Smart Marker автоматически выполнит развертывание. + +## Полный рабочий пример — все шаги вместе + +Ниже приведён один Java‑класс, объединяющий все операции, которые мы рассмотрели. Запустите его как обычный метод `main`; просто скорректируйте пути к файлам под вашу среду. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/russian/java/getting-started/_index.md b/cells/russian/java/getting-started/_index.md index da9139d0a6..d56563c145 100644 --- a/cells/russian/java/getting-started/_index.md +++ b/cells/russian/java/getting-started/_index.md @@ -71,7 +71,8 @@ ### [Как получить версию Aspose.Cells в Java: пошаговое руководство](./retrieve-aspose-cells-version-java-guide/) Узнайте, как проверить версию Aspose.Cells в ваших проектах Java с помощью этого всеобъемлющего руководства. Обеспечьте совместимость и эффективно используйте новые функции. - +### [Создание лицензированной рабочей книги – Полное руководство Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Подробное руководство по созданию и лицензированию рабочей книги Excel с помощью Aspose.Cells для Java. ## Дополнительные ресурсы diff --git a/cells/russian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/russian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..4a21dea874 --- /dev/null +++ b/cells/russian/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-03-01 +description: Быстро создавайте лицензированный рабочий лист с помощью Aspose.Cells + Java. Узнайте, как лицензировать Aspose, установить лицензию Aspose для Java и читать + Excel с помощью Aspose в одном руководстве. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: ru +og_description: Создайте лицензированный рабочий лист с помощью Aspose.Cells Java. + Это руководство показывает, как лицензировать Aspose, установить лицензию Aspose + для Java и читать Excel с помощью Aspose. +og_title: Создать лицензированную рабочую книгу – учебник Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Создать лицензированную рабочую книгу – Полное руководство по Aspose.Cells + для Java +url: /ru/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание лицензированной книги – Полное руководство Aspose.Cells для Java + +Когда‑нибудь задумывались, как **создать лицензированную книгу** без ошибок лицензирования? Вы не одиноки — многие разработчики сталкиваются с этой проблемой, когда впервые работают с Aspose.Cells. Хорошая новость? Решение простое, и это руководство проведёт вас шаг за шагом. + +Всего за несколько минут вы узнаете **как лицензировать Aspose**, точно **установить лицензию Aspose для Java**, и будете готовы **читать Excel с помощью Aspose** для реальных задач, таких как отчётность или миграция данных. Никаких расплывчатых ссылок, только полноценный, готовый к запуску пример, который можно скопировать и вставить уже сегодня. + +--- + +## Что понадобится + +- Java 17 или новее (рекомендована последняя стабильная версия) +- Aspose.Cells for Java 23.9 (или любая более свежая версия) +- Ваш файл лицензии Aspose.Cells (`Aspose.Cells.Java.lic`) +- IDE или система сборки, с которой вам удобно работать (Maven, Gradle или обычный `javac`) + +Если что‑то из этого вам незнакомо, не переживайте — каждый пункт будет рассмотрен в последующих шагах. + +--- + +## Шаг 1: Добавьте зависимость Aspose.Cells + +Прежде чем **создать лицензированную книгу**, библиотека должна находиться в вашем classpath. Для Maven это выглядит так: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Для Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Совет:** Если вы используете обычный компилятор `javac`, просто поместите JAR‑файл в папку `libs/` и укажите её в параметре `-cp`. + +--- + +## Шаг 2: **Как лицензировать Aspose** – загрузка файла лицензии + +Как только вы вызываете любой API Aspose без лицензии, в сгенерированном файле Excel появляется водяной знак. Чтобы этого избежать, необходимо **установить лицензию Aspose для Java** в начале программы. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Почему это важно:** Объект `License` сообщает Aspose отключить режим оценки, убирая водяные знаки и открывая полный набор API. Если путь указан неверно, будет выброшено исключение — и вы сразу об этом узнаете. + +--- + +## Шаг 3: **Создать лицензированную книгу** – построение Excel‑файла + +Теперь, когда лицензия применена, вы можете безопасно **создавать лицензированные книги**. Ниже приведён минимальный, но полностью рабочий пример, который также демонстрирует **чтение Excel с помощью Aspose** позже. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Что делает этот код:** + +1. Вызывает утилиту из **Шага 2**, чтобы **установить лицензию Aspose для Java**. +2. Создаёт новый объект `Workbook` — ядро операции **создания лицензированной книги**. +3. Записывает небольшую таблицу, сохраняет её как XLSX, а затем сразу же читает обратно, подтверждая, что **чтение Excel с помощью Aspose** работает без водяных знаков. + +Запуск программы выводит: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Если открыть сгенерированный файл, вы увидите чистую таблицу без водяного знака Aspose — доказательство того, что лицензия активна. + +--- + +## Шаг 4: Распространённые подводные камни и особые случаи + +| Проблема | Почему происходит | Как исправить | +|----------|-------------------|---------------| +| **LicenseNotFoundException** | Неправильный путь или файл отсутствует. | Используйте абсолютный путь или загрузите файл из ресурсов (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR‑файл Aspose не находится в classpath. | Проверьте зависимость Maven/Gradle или добавьте JAR вручную. | +| **Сохранение не удаётся в Windows** | Папка назначения не существует. | Убедитесь, что каталог `output/` создан (`new File("output").mkdirs();`). | +| **Чтение старых .xls файлов** | По умолчанию `SaveFormat` может не поддерживать старый формат. | При сохранении используйте `SaveFormat.XLS`, либо позвольте Aspose автоматически определить формат при загрузке. | + +> **Обратите внимание:** При развертывании на сервере файл лицензии следует размещать за пределами корня веб‑приложения, чтобы избежать случайного раскрытия. + +--- + +## Шаг 5: Программная проверка лицензии (опционально) + +Иногда требуется убедиться, что лицензия загружена корректно перед выполнением тяжёлых операций. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Можно вызвать `LicenseChecker.isLicensed("...")` и прервать работу, если метод вернёт `false`. Это добавит дополнительный уровень защиты, особенно в CI/CD‑конвейерах. + +--- + +## Визуальный обзор + +![Диаграмма, показывающая поток от применения лицензии к созданию и чтению книги](create-licensed-workbook-diagram.png "создание лицензированной книги") + +*Текст альтернативного описания:* **диаграмма создания лицензированной книги** — иллюстрирует шаги по применению лицензии Aspose, созданию книги и чтению Excel. + +--- + +## Заключение + +Теперь у вас есть полное решение «от начала до конца» для **создания лицензированной книги** с помощью Aspose.Cells для Java. Мы рассмотрели **как лицензировать Aspose**, продемонстрировали точный код **установки лицензии Aspose для Java** и дали быстрый пример **чтения Excel с помощью Aspose**, чтобы подтвердить, что всё работает. + +Дальше вы можете изучить: + +- Форматирование ячеек (шрифты, цвета) — отлично подходит для профессиональных отчётов. +- Экспорт в CSV или PDF — Aspose поддерживает множество форматов «из коробки». +- Работа с большими наборами данных — используйте `WorkbookDesigner` для шаблонизации. + +Экспериментируйте, а если возникнут трудности, оставляйте комментарий ниже. Приятного кодинга! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/russian/java/ole-objects-embedded-content/_index.md b/cells/russian/java/ole-objects-embedded-content/_index.md index c20d23928c..493064a862 100644 --- a/cells/russian/java/ole-objects-embedded-content/_index.md +++ b/cells/russian/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ ### [Удаление элементов управления ActiveX из Excel с помощью Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Учебник по коду для Aspose.Words Java - +### [Как встраивать шрифты — Полное руководство по экспорту в HTML, XPS и OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Узнайте, как встраивать шрифты при экспорте Excel в HTML, XPS и OLE с помощью Aspose.Cells для Java. ## Дополнительные ресурсы diff --git a/cells/russian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/russian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..fee94e0bdb --- /dev/null +++ b/cells/russian/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: Узнайте, как встраивать шрифты в HTML и другие форматы. Пошаговое руководство, + охватывающее встраивание шрифтов в HTML, конвертацию Excel в HTML, экспорт OLE и + преобразование Excel в XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: ru +og_description: Как встраивать шрифты в HTML, XPS и OLE‑экспорты. Узнайте полный рабочий + процесс, посмотрите работающий код Java и освоите встраивание шрифтов в HTML для + конвертации в Excel. +og_title: Как встраивать шрифты – Полный учебник по Java +tags: +- Aspose.Cells +- Java +- Document Export +title: Как встраивать шрифты — Полное руководство по экспорту в HTML, XPS и OLE +url: /ru/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как встраивать шрифты – Полное руководство для HTML, XPS и OLE‑экспорта + +Когда‑нибудь задумывались **как встраивать шрифты**, преобразуя книгу Excel в веб‑страницу или печатный документ? Вы не одиноки. Многие разработчики сталкиваются с тем, что вывод выглядит правильно на их машине, но ломается на другой, потому что требуемые шрифты отсутствуют. + +В этом руководстве мы пройдём реальный сценарий с использованием Aspose.Cells for Java: встраивание шрифтов в HTML, сохранение вариантов эмодзи при конвертации в XPS и даже сохранение редактируемого OLE‑объекта при экспорте в PPTX. К концу вы получите готовое решение «копировать‑вставить», отвечающее на вопрос «как встраивать шрифты», а также охватывающее **embed fonts in html**, **convert excel to html**, **how to export ole** и **convert excel to xps**. + +## Требования + +- Java 17 (или любой современный JDK) +- Aspose.Cells for Java 25.x или новее +- Среда разработки (IntelliJ IDEA, Eclipse или VS Code) +- Базовое знакомство со структурами данных Excel + +Внешние сервисы не требуются — всё работает локально. + +## Обзор решения + +1. **Создать книгу** и использовать функцию `WRAPCOLS` для преобразования вертикального диапазона в трёхколоночный макет. +2. **Сохранить книгу как XPS**, включив селекторы вариаций шрифтов, чтобы эмодзи оставались неизменными. +3. **Экспортировать в HTML** с встраиванием шрифтов, гарантируя одинаковый вид страницы везде. +4. **Экспортировать книгу, содержащую OLE‑объект, в PPTX**, сохраняя возможность редактирования. +5. **Применить шаблон Smart Marker**, демонстрирующий привязку данных master‑detail. + +Каждый шаг выделен в отдельный раздел H2, что облегчает быстрый просмотр как для поисковых систем, так и для AI‑ассистентов. + +![Иллюстрация по встраиванию шрифтов](image.png "как встраивать шрифты") + +*Image alt text: диаграмма, показывающая рабочий процесс от Excel к HTML, XPS и PPTX.* + +--- + +## Шаг 1 – Создать книгу и использовать WRAPCOLS (Почему это важно для embed fonts in html) + +Прежде чем говорить о встраивании шрифтов, нам нужна книга, содержащая данные. Функция `WRAPCOLS` удобно разбивает один столбец на несколько, что часто делает итоговый HTML более читаемым. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Зачем этот шаг?** +Вызов `WRAPCOLS` генерирует многоколоночный диапазон, который позже появляется в HTML в виде таблицы. Когда мы **embed fonts in html**, стили таблицы будут опираться на встраиваемые шрифты, обеспечивая единообразный рендеринг во всех браузерах. + +--- + +## Шаг 2 – Сохранить книгу как XPS, сохранив эмодзи (convert excel to xps) + +Если нужен готовый к печати формат, XPS — надёжный выбор. Однако современные документы часто содержат эмодзи или символы с селекторами вариаций. Включение `EnableFontVariationSelectors` гарантирует, что эти символы сохранятся при конвертации. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Что вы получаете:** +Файл XPS, отображающий любые встроенные эмодзи точно так же, как в исходной книге. Это удовлетворяет требование **convert excel to xps** и демонстрирует, что работа со шрифтами не ограничивается только HTML. + +--- + +## Шаг 3 – Экспортировать в HTML с встраиванием шрифтов (how to embed fonts & embed fonts in html) + +Теперь переходим к основной части руководства: **how to embed fonts** при преобразовании Excel в HTML. Aspose.Cells позволяет встраивать шрифты непосредственно в генерируемый HTML‑файл, устраняя необходимость внешних файлов шрифтов. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Как это работает:** +`setEmbedFonts(true)` заставляет рендерер читать файлы шрифтов, используемые в книге, и встраивать их как Base64‑закодированные правила `@font-face` внутри тега ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Обратите внимание на правило `@font-face — это конкретный ответ на **embed fonts in html**. + +--- + +## Шаг 4 – Экспортировать книгу с OLE‑объектом в PPTX (how to export ole) + +Во многих бизнес‑отчётах встраиваются документы Word, PDF или другие листы Excel в виде OLE‑объектов. При экспорте такой книги в PowerPoint часто теряется возможность редактировать объект. Aspose.Cells сохраняет редактируемость «из коробки». + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Почему это важно:** +Если вы ищете **how to export ole**, этот фрагмент показывает точный вызов API. Полученный слайд PowerPoint содержит OLE‑объект как живой элемент, двойной клик — редактирование, без дополнительной пост‑обработки. + +--- + +## Шаг 5 – Применить шаблон Smart Marker (master‑detail) и завершить демонстрацию + +Smart Markers позволяют привязывать источник данных (Map, JSON, DataTable) напрямую к шаблону Excel. Ниже минимальный пример, выводящий строки master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Что вы видите:** +Новая книга (`smartMarkerResult.xlsx`), где заполнители шаблона заменены данными. Этот шаг напрямую не связан со шрифтами, но завершает руководство, показывая типичный рабочий процесс отчётности, который часто предшествует экспорту **embed fonts in html**. + +--- + +## Распространённые ошибки и профессиональные советы (Обеспечение успешного встраивания шрифтов) + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| Шрифты отсутствуют в HTML‑файле | Книга использует системный шрифт, который не установлен на сервере. | Используйте `Workbook.getSettings().setDefaultFont("Arial")` перед загрузкой данных или вручную встраивайте необходимые шрифты. | +| Выходной HTML слишком велик | Встраивание множества больших шрифтов увеличивает размер файла. | Ограничьте встраивание только используемыми шрифтами: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Эмодзи исчезают после конвертации в XPS | Селекторы вариаций по умолчанию отбрасываются. | Включите `settings.setEnableFontVariationSelectors(true)`, как показано в Шаге 2. | +| OLE‑объект превращается в статическое изображение в PPTX | Книга была сохранена с `setSuppressOLEObjects(true)`. | Убедитесь, что **не** подавляете OLE‑объекты при сохранении в PPTX. | + +--- + +## Проверка результатов + +1. Откройте `embeddedFonts.html` в Chrome/Firefox. Таблица должна отображаться с встраиваемым шрифтом (например, Arial), даже если этот шрифт не установлен на компьютере. +2. Откройте `withVariations.xps` в Windows XPS Viewer. Эмодзи, такие как 👍, должны отображаться корректно. +3. Откройте `oleEditable.pptx` в PowerPoint. Дважды щёлкните по OLE‑форме; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/spanish/java/excel-import-export/_index.md b/cells/spanish/java/excel-import-export/_index.md index 5d5bf098d0..79943c0e81 100644 --- a/cells/spanish/java/excel-import-export/_index.md +++ b/cells/spanish/java/excel-import-export/_index.md @@ -35,8 +35,12 @@ Aprenda a importar datos en masa desde Excel con la API de Aspose.Cells para Jav Descubra el potencial de los métodos de exportación de datos de Excel con Aspose.Cells para Java. Aprenda con ejemplos prácticos de código fuente en esta guía completa. Optimice sus habilidades de gestión de datos hoy mismo. ### [Código Java de exportación CSV](./csv-export-java-code/) Aprenda a exportar datos a formato CSV con Aspose.Cells para Java. Guía paso a paso con código fuente para una exportación CSV fluida. +### [Cómo exportar CSV con Java – Establecer dígitos significativos y rango de exportación a CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Aprenda a exportar datos a CSV con Java, configurando dígitos significativos y rango de exportación, con ejemplos de código paso a paso. ### [Exportar Excel a PDF](./exporting-excel-to-pdf/) Aprende a exportar archivos de Excel a PDF fácilmente con Aspose.Cells para Java. Nuestra guía paso a paso simplifica el proceso. ¡Empieza a convertir hoy mismo! +### [Crear PDF a partir de un libro de trabajo – Guía completa de Java](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Aprenda a crear archivos PDF desde un libro de trabajo usando Aspose.Cells para Java. Guía paso a paso con ejemplos de código. ### [Exportar Excel a XML Java](./export-excel-to-xml-java/) Aprenda a exportar Excel a XML en Java con Aspose.Cells para Java. Guía paso a paso con código fuente para una conversión de datos fluida. ### [Importación de datos desde Excel](./data-import-from-excel/) diff --git a/cells/spanish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/spanish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..141fa22067 --- /dev/null +++ b/cells/spanish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,300 @@ +--- +category: general +date: 2026-03-01 +description: Cómo crear PDF y guardar el libro de trabajo como PDF, exportar Excel + a HTML y usar la función expand con Aspose.Cells para Java. Código paso a paso incluido. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: es +og_description: Cómo crear PDF a partir de un libro de trabajo usando Aspose.Cells + para Java. Aprende a guardar el libro de trabajo como PDF, exportar Excel a HTML + y usar la función EXPAND. +og_title: Cómo crear PDF a partir de un libro de trabajo – Tutorial de Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Cómo crear un PDF a partir de un libro de trabajo – Guía completa de Java +url: /es/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo crear PDF a partir de un libro de trabajo – Guía completa de Java + +¿Alguna vez te has preguntado **cómo crear PDF** directamente desde un libro de Excel sin depender de convertidores de terceros? No estás solo. Muchos desarrolladores se topan con un obstáculo cuando necesitan una exportación rápida a PDF, una vista previa en HTML o fórmulas de matriz avanzadas, todo en una sola operación. + +En este tutorial recorreremos un programa Java autónomo que hace exactamente eso. **Guardaremos el libro como PDF**, te mostraremos cómo **exportar Excel a HTML** manteniendo las filas congeladas y demostraremos el **uso de la función expand** dentro de una hoja. Al final tendrás un proyecto ejecutable que podrás integrar en cualquier compilación Maven o Gradle. + +> **Consejo profesional:** Todo el código a continuación funciona con Aspose.Cells 23.10 (o versiones posteriores). Si utilizas una versión anterior, algunos nombres de métodos pueden variar ligeramente. + +--- + +## Requisitos previos + +- **Java 17** (o cualquier versión LTS) instalado y configurado. +- Biblioteca **Aspose.Cells for Java**. Añade la siguiente dependencia Maven a tu `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Un IDE o editor de texto de tu preferencia (IntelliJ IDEA, VS Code, Eclipse…). + +Sin APIs externas, sin servicios web—solo Java puro y el SDK de Aspose.Cells. + +--- + +## Visión general de la solución + +Dividiremos la implementación en **siete pasos lógicos**: + +1. Crear un libro de trabajo y demostrar la función **EXPAND**. +2. Habilitar los selectores de variación de fuentes y **guardar el libro como PDF**. +3. Exportar el mismo libro a HTML preservando las filas congeladas. +4. Utilizar un Smart Marker con un parámetro `IF` para inyectar texto condicional. +5. Aplicar un Smart Marker maestro‑detalle para datos jerárquicos. +6. Cargar un archivo Markdown que contiene imágenes codificadas en Base‑64. +7. Configurar opciones de GridJs para alineación y bordes, y luego insertar datos. + +Cada paso está encapsulado en su propio método para mantener ordenado el método `main` y para ilustrar **por qué** hacemos lo que hacemos, no solo **qué** escribimos. + +--- + +## Paso 1 – Crear un libro de trabajo y usar la función EXPAND + +La función **EXPAND** es una nueva fórmula de matriz dinámica introducida en Office 365. Permite expandir un rango a un área mayor sin copiar manualmente las celdas. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Por qué es importante:** +- `EXPAND` rellena automáticamente el resultado con celdas en blanco, lo que es perfecto cuando luego **guardas el libro como PDF**—el PDF mostrará una tabla limpia y rectangular. +- Llamar a `calculateFormula()` asegura que el motor de fórmulas se ejecute antes de exportar cualquier cosa. + +--- + +## Paso 2 – Habilitar selectores de variación de fuentes y **guardar el libro como PDF** + +Si necesitas admitir tipografía avanzada (p. ej., emoji o selectores de variación CJK), debes activar la función **antes** de guardar. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Punto clave:** La palabra clave principal **how to create pdf** se responde aquí—llamando a `workbook.save(..., SaveFormat.PDF)` después de configurar los ajustes. + +--- + +## Paso 3 – **Exportar Excel a HTML** mientras se preservan las filas congeladas + +A menudo los interesados solicitan una vista previa rápida en la web. Aspose.Cells puede exportar a HTML, y con `setPreserveFrozenRows(true)` mantenemos la misma experiencia de desplazamiento que en Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Por qué te importa:** Las filas congeladas son una comodidad de usabilidad; sin ellas, las filas de encabezado desaparecen cuando los usuarios se desplazan hacia abajo en la página. + +--- + +## Paso 4 – Smart Marker con un parámetro IF + +Los Smart Markers te permiten combinar datos en una plantilla sin escribir bucles. El parámetro `if` agrega lógica condicional directamente dentro del marcador. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +El PDF resultante mostrará **“VIP Customer: Acme Corp”** porque `IsVIP` es `true`. Cambia la bandera a `false` y obtendrás **“Regular Customer: Acme Corp”**—sin código adicional. + +--- + +## Paso 5 – Smart Marker maestro‑detalle usando un rango jerárquico + +Cuando tienes datos padre‑hijo (p. ej., pedidos y líneas de detalle), un marcador maestro‑detalle te ahorra la inserción manual de filas. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Lo que obtienes:** El motor expande las filas maestras para cada pedido y anida automáticamente las filas de detalle debajo—ideal para facturas o informes de compras. + +--- + +## Paso 6 – Cargar un documento Markdown con imágenes incrustadas en Base‑64 + +Si tus datos de origen están en Markdown (común en pipelines de documentación), Aspose.Cells puede renderizarlos directamente en un libro de trabajo. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Nota de caso límite:** Si la cadena Base‑64 está malformada, Aspose omitirá la imagen pero continuará procesando el resto del documento—sin bloquearse. + +--- + +## Paso 7 – Configurar opciones de GridJs e insertar datos + +GridJs es una cuadrícula ligera de JavaScript que Aspose puede renderizar en HTML. Alinear números y aplicar bordes mejora la legibilidad. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Por qué nos importa:** Una alineación adecuada y bordes hacen que el HTML generado se vea como una hoja de cálculo pulida—útil para paneles de control. + +--- + +## Juntándolo todo – El método `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/spanish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/spanish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..d4bb7b538d --- /dev/null +++ b/cells/spanish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Aprende cómo exportar CSV desde un libro de trabajo Java mientras configuras + los dígitos significativos y el rango de exportación a CSV en una guía única y clara. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: es +og_description: Domina cómo exportar CSV en Java, establecer dígitos significativos + y exportar rangos a CSV con código práctico y consejos. +og_title: Cómo exportar CSV con Java – Guía completa paso a paso +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Cómo exportar CSV con Java – Establecer dígitos significativos y rango de exportación + a CSV +url: /es/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo exportar CSV con Java – Establecer dígitos significativos y rango de exportación a CSV + +¿Alguna vez te has preguntado **cómo exportar csv** desde un libro de trabajo Java sin perder precisión numérica? Tal vez intentaste un rápido `toString()` y terminaste con un desastre de errores de redondeo. Ese es un problema común, especialmente cuando necesitas **establecer dígitos significativos** para datos financieros o resultados científicos. + +En este tutorial verás un ejemplo completo, listo para ejecutar, que muestra **cómo exportar csv**, cómo **establecer dígitos significativos** y, además, cómo **exportar rango a csv** manteniendo tus datos ordenados. Revisaremos cada línea, explicaremos el *por qué* de las llamadas a la API y te daremos consejos para evitar los errores habituales. Sin documentación extra que buscar—solo una solución autocontenida que puedes copiar‑pegar hoy. + +## Lo que aprenderás + +- Crear un libro de trabajo y configurar la precisión numérica con `setNumberSignificantDigits`. +- Exportar un rango de celdas específico como una cadena CSV bien formateada. +- Analizar fechas de era japonesa usando `DateTimeFormatInfo`. +- Recalcular fórmulas para que los resultados de matrices dinámicas se mantengan actualizados. +- Renderizar una tabla dinámica a una imagen PNG. +- Usar Smart Marker para inyectar comentarios y, finalmente, guardar el libro de trabajo. + +Todo esto se realiza con la biblioteca Aspose.Cells for Java, versión 23.12 (la más reciente al momento de escribir). Si tienes el JAR en tu classpath, estás listo para comenzar. + +--- + +## Paso 1: Crear un libro de trabajo y **establecer dígitos significativos** + +Antes de poder exportar cualquier cosa, necesitamos un objeto workbook. Lo primero que muchos desarrolladores pasan por alto es la precisión numérica. Por defecto Aspose.Cells usa la precisión completa de double, lo que puede generar cadenas largas y poco manejables en CSV. Establecer el número de dígitos significativos recorta la salida mientras preserva las cifras más importantes. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**¿Por qué importa esto?** +Si exportas una celda que contiene `12345.6789` sin limitar los dígitos, el CSV mostrará el valor completo, saturando los informes. Con `setNumberSignificantDigits(5)`, la misma celda pasa a `12346`, que es a menudo lo que los usuarios de negocio esperan. + +> **Consejo profesional:** Si necesitas precisiones diferentes por columna, puedes aplicar un `Style` personalizado en lugar de la configuración global. + +--- + +## Paso 2: **Exportar rango a CSV** – El formato importa + +Ahora que el libro de trabajo está listo, extraigamos un bloque rectangular de datos y convirtámoslo en una cadena CSV. También forzaremos un formato de dos decimales (`0.00`) para que cada número quede alineado. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +La llamada `exportDataTable` hace el trabajo pesado. Como establecimos `exportAsString`, el método devuelve un `String` que podemos imprimir, escribir a un archivo o enviar por HTTP. El paso **export range to csv** también respeta el `setNumberSignificantDigits` global que definimos antes, de modo que los números se redondean a cinco dígitos significativos *y* se muestran con dos decimales. + +**Salida esperada (truncada):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Pregunta frecuente:** *¿Qué pasa si necesito un delimitador diferente, como un punto y coma?* +> Simplemente llama `exportOptions.setSeparator(";")` antes de exportar. + +--- + +## Paso 3: Analizar una fecha de era japonesa (utilidad extra) + +Aunque no está directamente relacionado con CSV, muchas hojas de Excel contienen fechas específicas de la localidad. Aquí tienes cómo convertir una cadena de era japonesa como `"R3/04/01"` en un objeto `DateTime` estándar. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Salida: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**¿Por qué incluir esto?** +Si tu exportación CSV alimenta sistemas posteriores que esperan fechas en formato ISO‑8601, primero deberás normalizar cualquier formato localizado. Este fragmento muestra el *cómo* y el *por qué* en un solo lugar. + +--- + +## Paso 4: Recalcular fórmulas – Mantener frescos los resultados de matrices dinámicas + +Si tu libro de trabajo contiene fórmulas (p. ej., `=SUM(A1:A10)`), no se actualizarán automáticamente después de cambiar la configuración. Llamar a `calculateFormula` fuerza una recalculación completa, asegurando que el CSV exportado refleje los valores más recientes. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Cuidado:** Los libros de trabajo grandes pueden tardar un tiempo notable en recalcularse. Para escenarios críticos de rendimiento, considera `calculateFormula(FormulaCalculationOptions)` para limitar el alcance. + +--- + +## Paso 5: Renderizar la primera tabla dinámica a una imagen PNG + +A veces necesitas una captura visual de una tabla dinámica junto al CSV. El siguiente código renderiza la primera tabla dinámica de la primera hoja a un archivo PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Consejo:** Si el libro de trabajo aún no contiene una tabla dinámica, puedes crear una programáticamente—consulta la documentación de Aspose.Cells para un ejemplo rápido. + +--- + +## Paso 6: Usar Smart Marker para escribir un comentario y guardar el libro de trabajo + +Smart Marker te permite inyectar contenido dinámico en celdas usando marcadores simples. Aquí escribimos un comentario como “Reviewed by QA” en una celda designada y luego guardamos el libro de trabajo. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +El marcador `${Comment}` puede colocarse en cualquier parte de la hoja (p. ej., celda `A1`). Cuando se ejecuta `apply`, el marcador se reemplaza por el valor suministrado. + +**Resultado:** Encontrarás un archivo `output/commented.xlsx` que contiene el comentario, además del `pivot.png` generado previamente y la cadena CSV impresa en la consola. + +--- + +## Ejemplo completo funcionando + +Juntando todo, aquí tienes el programa completo que puedes compilar y ejecutar: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Salida esperada en la consola + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +También encontrarás `output/pivot.png` (si existía una tabla dinámica) y `output/commented.xlsx` en el disco. + +--- + +## Preguntas frecuentes y casos límite + +- **¿Puedo exportar directamente a un archivo CSV físico?** + Sí. Sustituye el bloque `exportAsString` por `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **¿Qué pasa si mi hoja usa una configuración regional diferente para los números?** + Establece `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` antes de exportar; esto cambiará + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/spanish/java/excel-pivot-tables/_index.md b/cells/spanish/java/excel-pivot-tables/_index.md index 55787315f6..5274138195 100644 --- a/cells/spanish/java/excel-pivot-tables/_index.md +++ b/cells/spanish/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aprenda a crear campos calculados en tablas dinámicas con Aspose.Cells para Jav Aprenda a actualizar los datos de una tabla dinámica en Aspose.Cells para Java. Mantenga sus datos actualizados fácilmente. ### [Personalización de estilos de tabla dinámica](./customizing-pivot-table-styles/) Aprenda a personalizar los estilos de tablas dinámicas en Aspose.Cells para la API de Java. Cree tablas dinámicas visualmente atractivas fácilmente. +### [Copiar tabla dinámica en Java – preservarla y exportar a PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Aprenda a copiar una tabla dinámica en Java, conservar su formato y exportarla a una presentación PPTX con Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/spanish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..e357c746b5 --- /dev/null +++ b/cells/spanish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: 'Copiar tabla dinámica en Java manteniendo la pivote, luego exportar + Excel a PPTX, desactivar el AutoFiltro de Excel y usar Smart Marker para matrices + JSON: guía completa paso a paso.' +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: es +og_description: 'Copiar tabla dinámica en Java, preservar la definición de la tabla + dinámica, exportar a PPTX, desactivar AutoFilter y usar Smart Marker: guía completa + para desarrolladores.' +og_title: Copiar tabla dinámica en Java – Preservarla, exportarla a PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Copiar tabla dinámica en Java – Preservarla, exportar a PPTX +url: /es/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Copiar tabla dinámica en Java – Preservarla, Exportar a PPTX + +¿Alguna vez necesitaste **copy pivot table** de un libro de trabajo a otro sin perder la definición subyacente de la tabla dinámica? No eres el único rascándote la cabeza por esto. En muchos proyectos del mundo real te encontrarás moviendo datos, y lo último que deseas es una tabla dinámica rota que genere errores en tiempo de ejecución. + +En este tutorial recorreremos una solución completa que no solo **copy pivot table** sino que también te muestra cómo **preserve pivot table** al copiar, **export Excel to PPTX**, **disable Excel AutoFilter**, y **use smart marker** para insertar un array JSON en una sola celda. Al final tendrás un único programa Java ejecutable que cubre los cuatro escenarios. + +## Requisitos previos + +- Java 8 o superior (el código también funciona con Java 11) +- Biblioteca Aspose.Cells for Java (versión 23.9 o posterior) – puedes obtenerla de Maven Central +- Familiaridad básica con conceptos de Excel como pivot tables, tables y text boxes + +Si te falta el JAR de Aspose.Cells, agrega esto a tu `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Ahora, vamos a sumergirnos. + +## Paso 1: Copiar tabla dinámica – Preservando la definición de la tabla dinámica + +Cuando simplemente copias el rango de celdas que contiene una tabla dinámica, los metadatos de la tabla a menudo quedan atrás. Aspose.Cells nos ofrece una forma práctica de mantener la definición intacta usando `copyRange` con una instancia de `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Por qué funciona:** `CopyOptions` indica a Aspose.Cells que copie todo, incluyendo la caché de la tabla dinámica y la configuración de campos. Sin ella, terminarías con valores simples y perderías la capacidad de actualizar la tabla dinámica. + +**Caso límite:** Si tu tabla dinámica de origen abarca más que el rango codificado `A1:G20`, ajusta el rango en consecuencia o usa `sourceSheet.getPivotTables().get(0).getDataRange()` para obtenerlo dinámicamente. + +![Ejemplo de copiar tabla dinámica](image.png "Copiar tabla dinámica en Java") + +*Texto alternativo de la imagen: diagrama de copiar tabla dinámica en Java* + +## Paso 2: Exportar una hoja de cálculo con un TextBox editable a PPTX + +A menudo necesitas convertir una hoja de Excel en una diapositiva de PowerPoint—piensa en paneles semanales que deben presentarse. Aspose.Cells puede guardar directamente una hoja de cálculo como un archivo PPTX mientras preserva formas como los text boxes. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Qué está sucediendo:** El método `save` con `SaveFormat.PPTX` convierte toda la hoja, incluido cualquier TextBox editable, en una diapositiva de PowerPoint. El texto dentro del cuadro permanece editable al abrir el PPTX en PowerPoint. + +**Consejo:** Si tienes varias hojas y solo deseas una específica, llama a `wb.getWorksheets().removeAt(index)` para las demás antes de guardar. + +## Paso 3: Desactivar AutoFilter de Excel en una tabla + +AutoFilter es útil para los usuarios finales, pero a veces necesitas desactivarlo programáticamente—quizás antes de exportar datos o al generar un informe limpio. Aquí se muestra cómo **disable excel autofilter** en una tabla de Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Por qué podrías necesitar esto:** Exportar a formatos que no admiten AutoFilter (como CSV o PDF) puede hacer que aparezcan íconos de filtro sobrantes. Desactivarlo garantiza una salida limpia. + +**Trampa común:** Si la hoja no tiene tablas, `getTables().get(0)` lanzará una `IndexOutOfBoundsException`. Siempre verifica `sheet.getTables().size()` primero en el código de producción. + +## Paso 4: Usar Smart Marker – Insertar un array JSON como valor de una sola celda + +Smart Marker es el motor de plantillas de Aspose. Un truco útil es tratar un array JSON completo como un valor de una sola celda, lo cual es perfecto para registrar o pasar datos estructurados aguas abajo. Vamos a **use smart marker** para lograr esto. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Cómo funciona:** El marcador `${json}` en el libro de trabajo se reemplaza por la cadena JSON completa porque configuramos `ArrayAsSingle`. Sin esta opción, Aspose intentaría expandir cada elemento del array en filas separadas. + +**Variación:** Si necesitas que el array se divida en filas, simplemente omite `ArrayAsSingle` y deja que Smart Marker maneje la expansión automáticamente. + +## Ejemplo completo en funcionamiento – Todos los pasos combinados + +A continuación se muestra una única clase Java que encadena todas las operaciones que hemos cubierto. Ejecútala como un método `main` regular; solo ajusta las rutas de archivo para que coincidan con tu entorno. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/spanish/java/getting-started/_index.md b/cells/spanish/java/getting-started/_index.md index 35f8d3ca33..bdbc645ac4 100644 --- a/cells/spanish/java/getting-started/_index.md +++ b/cells/spanish/java/getting-started/_index.md @@ -38,6 +38,9 @@ Un tutorial de código para Aspose.Words Java ### [Configuración y verificación de la licencia de Java de Aspose.Cells: Guía completa](./aspose-cells-java-license-setup-guide/) Domine la configuración y verificación de su licencia Java de Aspose.Cells con nuestra guía completa. Acceda fácilmente a todas las funciones avanzadas. +### [Crear libro de trabajo con licencia – Guía completa de Aspose.Cells para Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Aprenda a crear libros de Excel con licencia usando Aspose.Cells para Java, con ejemplos completos y pasos detallados. + ### [Aspose.Cells para Java: Cómo crear y formatear libros de Excel de forma eficiente](./aspose-cells-java-workbook-creation-guide/) Aprenda a automatizar la creación y el formato de libros de Excel en Java con Aspose.Cells. Esta guía abarca la configuración, la manipulación de libros y las técnicas de formato de celdas. diff --git a/cells/spanish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/spanish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..862ef2864d --- /dev/null +++ b/cells/spanish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Cree rápidamente un libro de trabajo con licencia usando Aspose.Cells + Java. Aprenda cómo licenciar Aspose, establecer la licencia de Aspose en Java y + leer Excel con Aspose en un solo tutorial. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: es +og_description: Crear libro de trabajo con licencia usando Aspose.Cells Java. Esta + guía muestra cómo licenciar Aspose, establecer la licencia de Aspose en Java y leer + Excel con Aspose. +og_title: Crear libro de trabajo con licencia – Tutorial de Aspose.Cells para Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Crear libro de trabajo con licencia – Guía completa de Aspose.Cells para Java +url: /es/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear Libro de Trabajo con Licencia – Guía Completa de Aspose.Cells para Java + +¿Alguna vez te has preguntado cómo **create licensed workbook** sin encontrarte con errores de licencia? No eres el único: muchos desarrolladores chocan contra esa pared cuando usan Aspose.Cells por primera vez. ¿La buena noticia? La solución es sencilla, y esta guía te la explicará paso a paso. + +En pocos minutos sabrás **how to license Aspose**, exactamente **set Aspose license Java**, y estarás listo para **read Excel with Aspose** en tareas reales como generación de informes o migración de datos. No hay referencias vagas, solo un ejemplo completo y ejecutable que puedes copiar y pegar hoy. + +--- + +## Lo que necesitarás + +- Java 17 o superior (la última versión estable funciona mejor) +- Aspose.Cells for Java 23.9 (o cualquier versión reciente) +- Tu archivo de licencia de Aspose.Cells (`Aspose.Cells.Java.lic`) +- Un IDE o herramienta de compilación con la que te sientas cómodo (Maven, Gradle o simplemente `javac`) + +Si alguno de estos elementos te resulta desconocido, no te preocupes: cada punto se cubre en los pasos siguientes. + +--- + +## Paso 1: Añadir la dependencia de Aspose.Cells + +Antes de poder **create licensed workbook**, la biblioteca debe estar en tu classpath. Con Maven se ve así: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Para Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Consejo:** Si utilizas una compilación simple con `javac`, simplemente coloca el JAR en una carpeta `libs/` y añádelo al flag `-cp`. + +--- + +## Paso 2: **How to License Aspose** – Cargar el archivo de licencia + +En el momento en que llamas a cualquier API de Aspose sin una licencia, verás una marca de agua en el archivo Excel generado. Para evitarlo, debes **set Aspose license Java** al inicio de tu programa. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Por qué es importante:** El objeto `License` indica a Aspose que omita el modo de evaluación, eliminando las marcas de agua y desbloqueando toda la funcionalidad de la API. Si la ruta es incorrecta, se lanza una excepción, por lo que lo sabrás de inmediato. + +--- + +## Paso 3: **Create Licensed Workbook** – Construir un archivo Excel + +Ahora que la licencia está aplicada, puedes crear objetos **create licensed workbook** sin problemas. A continuación tienes un ejemplo mínimo pero completo que también muestra **read Excel with Aspose** más adelante. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Qué hace esto:** + +1. Llama a la utilidad del **Paso 2** para **set Aspose license Java**. +2. Instancia un nuevo `Workbook`, que es el núcleo de una operación **create licensed workbook**. +3. Escribe una tabla pequeña, la guarda como XLSX y luego la lee inmediatamente para demostrar que **read Excel with Aspose** funciona sin marcas de agua. + +Ejecutar el programa muestra: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Si abres el archivo generado, verás una hoja de cálculo limpia, sin marca de agua de Aspose, lo que confirma que la licencia está activa. + +--- + +## Paso 4: Problemas comunes y casos límite + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **LicenseNotFoundException** | La ruta es incorrecta o el archivo falta. | Usa una ruta absoluta o carga el archivo desde recursos (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | El JAR de Aspose no está en el classpath. | Verifica la dependencia en Maven/Gradle o añade el JAR manualmente. | +| **Error al guardar en Windows** | La carpeta de destino no existe. | Asegúrate de crear el directorio `output/` (`new File("output").mkdirs();`). | +| **Lectura de archivos .xls antiguos** | El `SaveFormat` predeterminado puede no soportar el formato antiguo. | Usa `SaveFormat.XLS` al guardar, o permite que Aspose lo detecte automáticamente al cargar. | + +> **Precaución:** Si despliegas en un servidor, el archivo de licencia debe estar fuera del directorio raíz de la aplicación web para evitar exposiciones accidentales. + +--- + +## Paso 5: Verificar la licencia programáticamente (opcional) + +A veces quieres confirmar que la licencia se cargó correctamente antes de realizar operaciones pesadas. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Puedes llamar a `LicenseChecker.isLicensed("...")` y abortar si devuelve `false`. Esto añade una capa extra de seguridad, especialmente en pipelines de CI/CD. + +--- + +## Visión general visual + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Texto alternativo de la imagen:* **create licensed workbook diagram** – ilustra los pasos para aplicar la licencia de Aspose, crear el libro de trabajo y leer Excel. + +--- + +## Conclusión + +Ahora dispones de una solución completa, de extremo a extremo, para **create licensed workbook** usando Aspose.Cells para Java. Hemos cubierto **how to license Aspose**, demostrado el código exacto de **set Aspose license Java**, y te hemos mostrado rápidamente **read Excel with Aspose** para confirmar que todo funciona. + +A continuación, podrías explorar: + +- Estilizar celdas (fuentes, colores) – ideal para informes profesionales. +- Exportar a CSV o PDF – Aspose soporta muchos formatos listos para usar. +- Trabajar con grandes conjuntos de datos – usa `WorkbookDesigner` para plantillas. + +¡Experimenta sin miedo y, si encuentras algún obstáculo, deja un comentario abajo! ¡Feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/spanish/java/ole-objects-embedded-content/_index.md b/cells/spanish/java/ole-objects-embedded-content/_index.md index 2c3bed91a7..0513a36764 100644 --- a/cells/spanish/java/ole-objects-embedded-content/_index.md +++ b/cells/spanish/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Aprenda a extraer GUID de objetos de PowerPoint incrustados en archivos de Excel ### [Eliminar controles ActiveX de Excel con Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Un tutorial de código para Aspose.Words Java - +### [Cómo incrustar fuentes – Guía completa para exportación a HTML, XPS y OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Aprenda a incrustar fuentes en documentos al exportar a HTML, XPS y OLE con Aspose.Cells para Java. Siga esta guía paso a paso para resultados óptimos. ## Recursos adicionales diff --git a/cells/spanish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/spanish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..02b382396e --- /dev/null +++ b/cells/spanish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-01 +description: Aprende cómo incrustar fuentes en HTML y otros formatos. Tutorial paso + a paso que cubre incrustar fuentes en HTML, convertir Excel a HTML, cómo exportar + OLE y convertir Excel a XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: es +og_description: Cómo incrustar fuentes en exportaciones HTML, XPS y OLE. Aprende todo + el flujo de trabajo, ve código Java ejecutable y domina la incrustación de fuentes + en HTML para conversiones a Excel. +og_title: Cómo incrustar fuentes – Tutorial completo de Java +tags: +- Aspose.Cells +- Java +- Document Export +title: Cómo incrustar fuentes – Guía completa para HTML, XPS y exportación OLE +url: /es/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo incrustar fuentes – Guía completa para HTML, XPS y exportación OLE + +¿Alguna vez te has preguntado **cómo incrustar fuentes** al convertir un libro de Excel en una página web o en un documento imprimible? No estás solo. Muchos desarrolladores se topan con un muro cuando la salida se ve bien en su máquina pero se rompe en otra porque faltan las fuentes requeridas. + +En este tutorial recorreremos un escenario del mundo real usando Aspose.Cells for Java: incrustaremos fuentes en HTML, preservaremos los selectores de variación de emoji al convertir a XPS, e incluso mantendremos un objeto OLE editable al exportar a PPTX. Al final tendrás una solución sólida, lista para copiar y pegar, que responde a “cómo incrustar fuentes” y también aborda **embed fonts in html**, **convert excel to html**, **how to export ole**, y **convert excel to xps**. + +## Prerrequisitos + +- Java 17 (o cualquier JDK reciente) +- Aspose.Cells for Java 25.x o posterior +- Un IDE de desarrollo (IntelliJ IDEA, Eclipse o VS Code) +- Familiaridad básica con estructuras de datos de Excel + +No se requieren servicios externos; todo se ejecuta localmente. + +## Visión general de la solución + +1. **Crear un libro** y usar la función `WRAPCOLS` para transformar un rango vertical en un diseño de tres columnas. +2. **Guardar el libro como XPS** activando los selectores de variación de fuentes para que los emoji permanezcan intactos. +3. **Exportar a HTML** con fuentes incrustadas, garantizando que la página se vea igual en cualquier lugar. +4. **Exportar un libro que contiene un objeto OLE a PPTX**, preservando su editabilidad. +5. **Aplicar una plantilla Smart Marker** que demuestre la vinculación maestro‑detalle de datos. + +Cada paso está aislado en su propia sección H2, lo que facilita la lectura tanto para motores de búsqueda como para asistentes de IA. + +![Ilustración de cómo incrustar fuentes](image.png "cómo incrustar fuentes") + +*Texto alternativo de la imagen: diagrama de cómo incrustar fuentes que muestra el flujo de trabajo de Excel a HTML, XPS y PPTX.* + +--- + +## Paso 1 – Crear un libro y usar WRAPCOLS (Por qué esto importa para embed fonts in html) + +Antes de poder hablar de incrustar fuentes, necesitamos un libro que realmente contenga datos. La función `WRAPCOLS` es una manera práctica de dividir una sola columna en varias columnas, lo que a menudo hace que el HTML final sea más legible. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**¿Por qué este paso?** +La llamada a `WRAPCOLS` genera un rango de varias columnas que luego aparece en HTML como una tabla. Cuando más adelante **embed fonts in html**, el estilo de la tabla dependerá de las fuentes que incrustemos, asegurando una renderización consistente en todos los navegadores. + +--- + +## Paso 2 – Guardar el libro como XPS preservando los emoji (convert excel to xps) + +Si necesitas un formato listo para imprimir, XPS es una opción sólida. Sin embargo, los documentos modernos a menudo contienen emoji o símbolos que usan selectores de variación. Activar `EnableFontVariationSelectors` asegura que esos caracteres sobrevivan a la conversión. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Qué obtienes:** +Un archivo XPS que muestra cualquier emoji incrustado exactamente como en el libro de origen. Esto satisface el requisito de **convert excel to xps** y demuestra que el manejo de fuentes no se limita a HTML. + +--- + +## Paso 3 – Exportar a HTML con fuentes incrustadas (how to embed fonts & embed fonts in html) + +Ahora llegamos al núcleo del tutorial: **how to embed fonts** al convertir Excel a HTML. Aspose.Cells nos permite incrustar las fuentes directamente en el archivo HTML generado, eliminando la necesidad de archivos de fuentes externos. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Cómo funciona:** +`setEmbedFonts(true)` indica al renderizador que lea los archivos de fuentes usados en el libro y los incruste como reglas `@font-face` codificadas en Base64 dentro de la etiqueta ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Observa la regla `@font-face`; esta es la respuesta concreta a **embed fonts in html**. + +--- + +## Paso 4 – Exportar un libro que contiene un objeto OLE a PPTX (how to export ole) + +Muchos informes empresariales incrustan documentos Word, PDFs u otras hojas de Excel como objetos OLE. Cuando exportas dicho libro a PowerPoint, a menudo pierdes la capacidad de editar ese objeto. Aspose.Cells preserva la editabilidad de forma predeterminada. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Por qué importa:** +Si buscas **how to export ole**, este fragmento muestra la llamada exacta a la API. La diapositiva de PowerPoint resultante contiene el objeto OLE como un componente activo, de doble clic para editar—sin procesamiento posterior adicional. + +--- + +## Paso 5 – Aplicar una plantilla Smart Marker (master‑detail) y finalizar la demo + +Los Smart Markers te permiten vincular una fuente de datos (Map, JSON, DataTable) directamente a una plantilla de Excel. Aquí tienes un ejemplo mínimo que imprime filas maestro‑detalle. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Lo que ves:** +Un nuevo libro (`smartMarkerResult.xlsx`) donde los marcadores de posición de la plantilla se sustituyen con los datos. Este paso no trata directamente de fuentes, pero completa el tutorial mostrando un flujo típico de generación de informes que a menudo precede a una exportación **embed fonts in html**. + +--- + +## Problemas comunes y consejos profesionales (Asegurando una incrustación de fuentes exitosa) + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| Faltan fuentes en el archivo HTML | El libro de trabajo usa una fuente del sistema que no está instalada en el servidor. | Use `Workbook.getSettings().setDefaultFont("Arial")` antes de cargar los datos, o incruste manualmente los archivos de fuentes requeridos. | +| El HTML de salida es muy grande | Incrustar muchas fuentes grandes aumenta el tamaño del archivo. | Limite la incrustación solo a las fuentes que realmente usa: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Los emojis desaparecen después de la conversión a XPS | Los selectores de variación se eliminan por defecto. | Active `settings.setEnableFontVariationSelectors(true)` como se muestra en el Paso 2. | +| El objeto OLE se convierte en una imagen estática en PPTX | El libro de trabajo fuente se guardó con `setSuppressOLEObjects(true)`. | Asegúrese de **no** suprimir objetos OLE al guardar en PPTX. | + +--- + +## Verificando los resultados + +1. Abra `embeddedFonts.html` en Chrome/Firefox. La tabla debería mostrarse usando la fuente incrustada (p.ej., Arial) incluso si esa fuente no está instalada en la máquina. +2. Abra `withVariations.xps` en el Visor XPS de Windows. Emojis como 👍 deberían renderizarse correctamente. +3. Abra `oleEditable.pptx` en PowerPoint. Haga doble clic en la forma OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/swedish/java/excel-import-export/_index.md b/cells/swedish/java/excel-import-export/_index.md index ddb4509a13..18c09efe7c 100644 --- a/cells/swedish/java/excel-import-export/_index.md +++ b/cells/swedish/java/excel-import-export/_index.md @@ -37,6 +37,8 @@ Frigör potentialen hos Excel-dataexportmetoder med Aspose.Cells för Java. Lär Lär dig hur du exporterar data till CSV-format med Aspose.Cells för Java. Steg-för-steg-guide med källkod för sömlös CSV-export. ### [Exportera Excel till PDF](./exporting-excel-to-pdf/) Lär dig hur du enkelt exporterar Excel-filer till PDF med Aspose.Cells för Java. Vår steg-för-steg-guide förenklar processen. Börja konvertera idag! +### [Hur du skapar PDF från en arbetsbok – Komplett Java-guide](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Lär dig hur du skapar PDF-filer från en Excel-arbetsbok med Aspose.Cells för Java i denna kompletta steg-för-steg-guide. ### [Exportera Excel till XML Java](./export-excel-to-xml-java/) Lär dig hur du exporterar Excel till XML i Java med Aspose.Cells för Java. Steg-för-steg-guide med källkod för sömlös datakonvertering. ### [Dataimport från Excel](./data-import-from-excel/) @@ -47,6 +49,8 @@ Lär dig hur du exporterar Excel-data till JSON med Aspose.Cells för Java. Föl Lär dig hur du implementerar validering av importdata i Excel med Aspose.Cells för Java med den här omfattande steg-för-steg-guiden. Säkerställ datanoggrannhet och förbättra användarupplevelsen. ### [Exportera Excel till HTML och Java](./export-excel-to-html-java/) Lär dig hur du exporterar Excel till HTML i Java med Aspose.Cells för Java. Följ den här steg-för-steg-guiden med källkod för att smidigt konvertera dina Excel-filer till HTML. +### [Hur man exporterar CSV med Java – Ställ in signifikanta siffror och exportintervall till CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Lär dig hur du exporterar data till CSV med specifika signifikanta siffror och anpassat exportintervall i Java med Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/swedish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..f37496ffaa --- /dev/null +++ b/cells/swedish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,300 @@ +--- +category: general +date: 2026-03-01 +description: Hur man skapar PDF och sparar arbetsbok som PDF, exporterar Excel till + HTML och använder expand‑funktionen med Aspose.Cells för Java. Steg‑för‑steg‑kod + inkluderad. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: sv +og_description: Hur man skapar PDF från en arbetsbok med Aspose.Cells för Java. Lär + dig att spara arbetsboken som PDF, exportera Excel till HTML och använda EXPAND‑funktionen. +og_title: Hur man skapar PDF från en arbetsbok – Java‑handledning +tags: +- Aspose.Cells +- Java +- PDF generation +title: Hur man skapar PDF från en arbetsbok – Komplett Java‑guide +url: /sv/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man skapar PDF från en arbetsbok – Komplett Java‑guide + +Har du någonsin undrat **how to create PDF** direkt från en Excel‑arbetsbok utan att jonglera med tredjeparts‑konverterare? Du är inte ensam. Många utvecklare stöter på problem när de behöver en snabb PDF‑export, en HTML‑förhandsgranskning eller avancerade array‑formler — allt i ett svep. + +I den här handledningen går vi igenom ett enda, självständigt Java‑program som gör exakt det. Vi kommer att **save workbook as PDF**, visa dig hur du **export Excel to HTML** samtidigt som du behåller frysta rader, och demonstrera **use expand function** i ett kalkylblad. I slutet har du ett körbart projekt som du kan lägga in i vilken Maven‑ eller Gradle‑byggnad som helst. + +> **Pro tip:** All kod nedan fungerar med Aspose.Cells 23.10 (eller nyare). Om du använder en äldre version kan vissa metodnamn skilja sig något. + +--- + +## Förutsättningar + +- **Java 17** (eller någon LTS‑version) installerad och konfigurerad. +- **Aspose.Cells for Java**‑biblioteket. Lägg till följande Maven‑beroende i din `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- En IDE eller textredigerare efter eget val (IntelliJ IDEA, VS Code, Eclipse…). + +Inga externa API:er, inga webbtjänster — bara ren Java och Aspose.Cells‑SDK. + +--- + +## Översikt av lösningen + +Vi delar upp implementeringen i **seven logical steps**: + +1. Skapa en arbetsbok och demonstrera **EXPAND**‑funktionen. +2. Aktivera teckensnittets variationsväljare och **save the workbook as PDF**. +3. Exportera samma arbetsbok till HTML samtidigt som frysta rader bevaras. +4. Använd en Smart Marker med en `IF`‑parameter för att infoga villkorlig text. +5. Tillämpa en master‑detail Smart Marker för hierarkiska data. +6. Ladda en Markdown‑fil som innehåller Base‑64‑kodade bilder. +7. Konfigurera GridJs‑alternativ för justering och ramar, och sedan infoga data. + +Varje steg är inbäddat i sin egen metod för att hålla `main`‑metoden prydlig och för att illustrera **why** vi gör vad vi gör, inte bara **what** vi skriver. + +--- + +## Steg 1 – Skapa en arbetsbok och använd EXPAND‑funktionen + +**EXPAND**‑funktionen är en ny dynamisk‑array‑formel som introducerades i Office 365. Den låter dig sprida ett område till ett större område utan att manuellt kopiera celler. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Varför detta är viktigt:** +- `EXPAND` fyller automatiskt resultatet med tomma celler, vilket är perfekt när du senare **save workbook as PDF** — PDF‑filen visar en ren, rektangulär tabell. +- Att anropa `calculateFormula()` säkerställer att formelmotorn körs innan vi exporterar något. + +--- + +## Steg 2 – Aktivera teckensnittets variationsväljare och **Save Workbook as PDF** + +Om du behöver stödja avancerad typografi (t.ex. emoji eller CJK‑variationsväljare) måste du slå på funktionen **before** sparandet. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Viktigt:** Det primära nyckelordet **how to create pdf** besvaras här — genom att anropa `workbook.save(..., SaveFormat.PDF)` efter att inställningarna konfigurerats. + +--- + +## Steg 3 – **Export Excel to HTML** samtidigt som frysta rader bevaras + +Ofta begär intressenter en snabb webb‑förhandsgranskning. Aspose.Cells kan exportera till HTML, och med `setPreserveFrozenRows(true)` behåller vi samma rullningsupplevelse som i Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Varför du bryr dig:** Frysta rader är en användbarhetssnutt; utan dem försvinner rubrikraderna när användare scrollar ner på sidan. + +--- + +## Steg 4 – Smart Marker med en IF‑parameter + +Smart Markers låter dig slå samman data i en mall utan att skriva loopar. `if`‑parametern lägger till villkorlig logik direkt i markören. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Den genererade PDF‑filen kommer att visa **“VIP Customer: Acme Corp”** eftersom `IsVIP` är `true`. Ändra flaggan till `false` så får du **“Regular Customer: Acme Corp”** — ingen extra kod behövs. + +--- + +## Steg 5 – Master‑Detail Smart Marker med ett hierarkiskt område + +När du har förälder‑barn‑data (t.ex. beställningar och radposter) sparar en master‑detail‑markör dig från manuell radinfogning. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Vad du får:** Motorn expanderar master‑raderna för varje beställning och nästar automatiskt detaljraderna under — perfekt för fakturor eller inköpsrapporter. + +--- + +## Steg 6 – Ladda ett Markdown‑dokument med inbäddade Base‑64‑bilder + +Om dina källdata finns i Markdown (vanligt i dokumentations‑pipelines) kan Aspose.Cells rendera det direkt till en arbetsbok. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Edge case‑anteckning:** Om Base‑64‑strängen är felaktig kommer Aspose att hoppa över bilden men fortsätta bearbeta resten av dokumentet — ingen krasch. + +--- + +## Steg 7 – Konfigurera GridJs‑alternativ och infoga data + +GridJs är ett lättviktigt JavaScript‑rutnät som Aspose kan rendera till HTML. Justering av siffror och applicering av ramar förbättrar läsbarheten. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Varför vi bryr oss:** Korrekt justering och ramar får den genererade HTML‑koden att se ut som ett polerat kalkylblad — användbart för instrumentpaneler. + +--- + +## Sätt ihop allt — `main`‑metoden + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/swedish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/swedish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..00fc738344 --- /dev/null +++ b/cells/swedish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-01 +description: Lär dig hur du exporterar CSV från en Java‑arbetsbok samtidigt som du + ställer in signifikanta siffror och exportintervall till CSV i en enda, tydlig guide. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: sv +og_description: Behärska hur du exporterar CSV i Java, ställer in signifikanta siffror + och exporterar intervall till CSV med praktisk kod och tips. +og_title: Hur man exporterar CSV med Java – Fullständig steg‑för‑steg‑guide +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Hur man exporterar CSV med Java – Ställ in signifikanta siffror och exportera + intervall till CSV +url: /sv/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man exporterar CSV med Java – Ställ in signifikanta siffror & exportera område till CSV + +Har du någonsin undrat **hur man exporterar csv** från en Java-arbetsbok utan att förlora numerisk precision? Kanske har du provat en snabb `toString()` och hamnat i en röra av avrundningsfel. Det är ett vanligt problem, särskilt när du behöver **ställa in signifikanta siffror** för finansiella data eller vetenskapliga resultat. + +I den här handledningen får du se ett komplett, färdigt‑att‑köra exempel som visar **hur man exporterar csv**, hur man **ställer in signifikanta siffror**, och till och med hur man **exporterar område till csv** samtidigt som du håller dina data prydliga. Vi går igenom varje rad, förklarar *varför* bakom API‑anropen och ger dig tips för att undvika de vanliga fallgroparna. Inga extra dokument att jaga—bara en självständig lösning du kan kopiera‑klistra in idag. + +## Vad du kommer att lära dig + +- Skapa en arbetsbok och konfigurera numerisk precision med `setNumberSignificantDigits`. +- Exportera ett specifikt cellområde som en snyggt formaterad CSV-sträng. +- Analysera japanska era‑datum med `DateTimeFormatInfo`. +- Räkna om formler så dynamiska‑arrayresultat hålls aktuella. +- Rendera en pivottabell till en PNG‑bild. +- Använd Smart Marker för att injicera kommentarer och slutligen spara arbetsboken. + +Allt detta görs med Aspose.Cells för Java‑biblioteket, version 23.12 (den senaste vid skrivtillfället). Om du har JAR‑filen på din classpath är du redo att köra. + +--- + +## Steg 1: Skapa en arbetsbok och **ställ in signifikanta siffror** + +Innan vi kan exportera något behöver vi ett arbetsboksobjekt. Det första många utvecklare förbiser är numerisk precision. Som standard använder Aspose.Cells full dubbelprecision, vilket kan leda till långa, otympliga strängar i CSV. Genom att ange antalet signifikanta siffror trimmas utskriften samtidigt som de viktigaste siffrorna bevaras. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Varför är detta viktigt?** +Om du exporterar en cell som innehåller `12345.6789` utan att begränsa siffror kommer CSV‑filen att visa hela värdet, vilket rör till rapporterna. Med `setNumberSignificantDigits(5)` blir samma cell `12346`, vilket ofta är vad affärsanvändare förväntar sig. + +> **Proffstips:** Om du behöver olika precision per kolumn kan du använda en anpassad `Style` istället för den globala inställningen. + +--- + +## Steg 2: **Exportera område till CSV** – Formatering är viktigt + +Nu när arbetsboken är klar, låt oss hämta ett rektangulärt block med data och omvandla det till en CSV‑sträng. Vi kommer också att tvinga fram ett två‑decimalformat (`0.00`) så att varje tal hamnar snyggt i linje. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Anropet `exportDataTable` gör det tunga arbetet. Eftersom vi satte `exportAsString` returnerar metoden en `String` som vi kan skriva ut, spara till en fil eller skicka via HTTP. Steget **exportera område till csv** respekterar också den globala `setNumberSignificantDigits` som vi definierade tidigare, så siffrorna både avrundas till fem signifikanta siffror *och* visas med två decimaler. + +**Förväntad output (avkortad):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Vanlig fråga:** *Vad händer om jag behöver ett annat avgränsningstecken, som ett semikolon?* +> Anropa helt enkelt `exportOptions.setSeparator(";")` innan export. + +--- + +## Steg 3: Analysera ett japanskt era‑datum (bonusverktyg) + +Även om det inte är direkt relaterat till CSV innehåller många Excel‑ark lokalspecifika datum. Så här kan du omvandla en japansk era‑sträng som `"R3/04/01"` till ett standard‑`DateTime`‑objekt. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Utdata: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Varför inkludera detta?** +Om din CSV‑export matar nerströmsystem som förväntar sig ISO‑8601‑datum, måste du först normalisera eventuella lokala format. Detta kodsnutt visar *hur* och *varför* på ett och samma ställe. + +--- + +## Steg 4: Räkna om formler – håll dynamiska‑arrayresultat färska + +Om din arbetsbok innehåller formler (t.ex. `=SUM(A1:A10)`) uppdateras de inte automatiskt efter att vi ändrat inställningarna. Att anropa `calculateFormula` tvingar en fullständig omräkning, vilket säkerställer att den exporterade CSV‑filen speglar de senaste värdena. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Observera:** Stora arbetsböcker kan ta märkbar tid att räkna om. För prestandakritiska scenarier, överväg `calculateFormula(FormulaCalculationOptions)` för att begränsa omfattningen. + +--- + +## Steg 5: Rendera den första pivottabellen till en PNG‑bild + +Ibland behöver du en visuell ögonblicksbild av en pivottabell tillsammans med CSV‑filen. Följande kod renderar den första pivottabellen på det första kalkylbladet till en PNG‑fil. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Tips:** Om arbetsboken ännu inte innehåller en pivottabell kan du skapa en programatiskt—se Aspose.Cells‑dokumentationen för ett snabbt exempel. + +--- + +## Steg 6: Använd Smart Marker för att skriva en kommentar och spara arbetsboken + +Smart Marker låter dig injicera dynamiskt innehåll i celler med enkla platshållare. Här skriver vi en kommentar som “Reviewed by QA” i en bestämd cell och sparar sedan arbetsboken. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}`‑platshållaren kan placeras var som helst i bladet (t.ex. cell `A1`). När `apply` körs ersätts platshållaren med det angivna värdet. + +**Resultat:** +Du hittar en `output/commented.xlsx`‑fil som innehåller kommentaren, plus den tidigare genererade `pivot.png` och CSV‑strängen som skrivs ut i konsolen. + +--- + +## Fullständigt fungerande exempel + +Sätter vi ihop allt får du det kompletta programmet som du kan kompilera och köra: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Förväntad konsolutdata + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Du hittar också `output/pivot.png` (om en pivottabell fanns) och `output/commented.xlsx` på disken. + +--- + +## Vanliga frågor & specialfall + +- **Kan jag exportera till en fysisk CSV‑fil direkt?** + Ja. Byt ut `exportAsString`‑blocket mot `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Vad händer om mitt blad använder en annan lokal för siffror?** + Sätt `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` innan export; detta kommer att byta + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/swedish/java/excel-pivot-tables/_index.md b/cells/swedish/java/excel-pivot-tables/_index.md index 88945e96f3..80932b1eb0 100644 --- a/cells/swedish/java/excel-pivot-tables/_index.md +++ b/cells/swedish/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Lär dig hur du skapar beräknade fält i pivottabeller med Aspose.Cells för Ja Lär dig hur du uppdaterar pivottabelldata i Aspose.Cells för Java. Håll dina data uppdaterade utan problem. ### [Anpassa pivottabellstilar](./customizing-pivot-table-styles/) Lär dig hur du anpassar pivottabellstilar i Aspose.Cells för Java API. Skapa visuellt tilltalande pivottabeller med lätthet. +### [Kopiera pivottabell i Java – bevara den, exportera till PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Lär dig hur du kopierar en pivottabell i Java, bevarar dess format och exporterar den till en PPTX‑presentation med Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/swedish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..7f5386fdc1 --- /dev/null +++ b/cells/swedish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-03-01 +description: Kopiera pivottabell i Java och bevara pivottabellen, exportera sedan + Excel till PPTX, inaktivera Excel AutoFilter och använd Smart Marker för JSON‑arrayer + – fullständig steg‑för‑steg‑guide. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: sv +og_description: Kopiera pivottabell i Java, bevara pivottdefinitionen, exportera till + PPTX, inaktivera AutoFilter och använd Smart Marker – komplett guide för utvecklare. +og_title: Kopiera pivottabell i Java – bevara den, exportera till PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Kopiera pivottabell i Java – bevara den, exportera till PPTX +url: /sv/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Kopiera pivottabell i Java – bevara den, exportera till PPTX + +Har du någonsin behövt **copy pivot table** från en arbetsbok till en annan utan att förlora den underliggande pivottabelldefinitionen? Du är inte den enda som kliar dig i huvudet över detta. I många verkliga projekt kommer du att flytta data runt, och det sista du vill ha är en trasig pivottabell som kastar fel vid körning. + +I den här handledningen går vi igenom en komplett lösning som inte bara **copy pivot table** utan också visar hur du **preserve pivot table** när du kopierar, **export Excel to PPTX**, **disable Excel AutoFilter**, och **use smart marker** för att stoppa in en JSON‑array i en enda cell. I slutet har du ett enda körbart Java‑program som täcker alla fyra scenarierna. + +## Förutsättningar + +- Java 8 eller nyare (koden fungerar även med Java 11) +- Aspose.Cells for Java‑biblioteket (version 23.9 eller senare) – du kan hämta det från Maven Central +- Grundläggande kunskap om Excel‑koncept som pivottabeller, tabeller och textrutor + +Om du saknar Aspose.Cells‑JAR‑filen, lägg till detta i din `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Nu, låt oss dyka ner. + +## Steg 1: Kopiera pivottabell – bevara pivottabelldefinitionen + +När du helt enkelt kopierar cellområdet som innehåller en pivottabell, lämnas pivottmetadata ofta kvar. Aspose.Cells ger oss ett smidigt sätt att behålla definitionen intakt genom att använda `copyRange` med en `CopyOptions`‑instans. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Varför detta fungerar:** `CopyOptions` instruerar Aspose.Cells att föra över allt, inklusive pivot‑cachen och fältinställningarna. Utan den skulle du bara få rena värden och förlora möjligheten att uppdatera pivottabellen. + +**Edge case:** Om din källpivottabell sträcker sig över mer än det hårdkodade `A1:G20`, justera området därefter eller använd `sourceSheet.getPivotTables().get(0).getDataRange()` för att hämta det dynamiskt. + +![Exempel på kopiering av pivottabell](image.png "Kopiera pivottabell i Java") + +*Bildtext: diagram för kopiera pivottabell i Java* + +## Steg 2: Exportera ett kalkylblad med en redigerbar textruta till PPTX + +Ofta behöver du omvandla ett Excel‑blad till en PowerPoint‑bild—tänk på veckovisa instrumentpaneler som måste presenteras. Aspose.Cells kan direkt spara ett kalkylblad som en PPTX‑fil samtidigt som former som textrutor bevaras. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Vad som händer:** `save`‑metoden med `SaveFormat.PPTX` konverterar hela bladet, inklusive eventuell redigerbar TextBox, till en PowerPoint‑bild. Texten i rutan förblir redigerbar när du öppnar PPTX‑filen i PowerPoint. + +**Tips:** Om du har flera blad och bara vill ha ett specifikt, anropa `wb.getWorksheets().removeAt(index)` för de andra innan du sparar. + +## Steg 3: Inaktivera Excel AutoFilter från en tabell + +AutoFilter är praktiskt för slutanvändare, men ibland behöver du programatiskt stänga av det—kanske innan du exporterar data eller när du genererar en ren rapport. Så här **disable excel autofilter** på en Excel‑tabell. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Varför du kan behöva detta:** Export till format som inte stödjer AutoFilter (som CSV eller PDF) kan leda till att oönskade filterikoner visas. Att inaktivera det säkerställer ett rent resultat. + +**Vanligt fallgropp:** Om bladet saknar tabeller, kommer `getTables().get(0)` att kasta ett `IndexOutOfBoundsException`. Kontrollera alltid `sheet.getTables().size()` först i produktionskod. + +## Steg 4: Använd Smart Marker – infoga en JSON‑array som ett enda cellvärde + +Smart Marker är Asposes mallmotor. Ett praktiskt trick är att behandla en hel JSON‑array som ett enda cellvärde, vilket är perfekt för loggning eller för att skicka strukturerad data vidare. Låt oss **use smart marker** för att uppnå detta. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Hur det fungerar:** Markören `${json}` i arbetsboken ersätts med hela JSON‑strängen eftersom vi har satt `ArrayAsSingle`. Utan detta alternativ skulle Aspose försöka expandera varje array‑element till separata rader. + +**Variation:** Om du behöver att arrayen delas upp över rader, utelämna helt enkelt `ArrayAsSingle` och låt Smart Marker hantera expansionen automatiskt. + +## Fullständigt fungerande exempel – alla steg kombinerade + +Nedan är en enda Java‑klass som kedjar ihop alla operationer vi har gått igenom. Kör den som en vanlig `main`‑metod; justera bara filsökvägarna så att de matchar din miljö. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/swedish/java/getting-started/_index.md b/cells/swedish/java/getting-started/_index.md index 5e8ac1f6ba..72c172cec1 100644 --- a/cells/swedish/java/getting-started/_index.md +++ b/cells/swedish/java/getting-started/_index.md @@ -71,7 +71,8 @@ Lär dig hur du effektivt öppnar och bearbetar SpreadsheetML-filer i Java med A ### [Hur man hämtar Aspose.Cells-versionen i Java: En steg-för-steg-guide](./retrieve-aspose-cells-version-java-guide/) Lär dig hur du kontrollerar versionen av Aspose.Cells i dina Java-projekt med den här omfattande guiden. Säkerställ kompatibilitet och utnyttja nya funktioner effektivt. - +### [Skapa licensierad arbetsbok – Fullständig Aspose.Cells Java-guide](./create-licensed-workbook-full-aspose-cells-java-guide/) +Lär dig hur du skapar en licensierad arbetsbok med Aspose.Cells för Java, inklusive licensinställning och fullständiga kodexempel. ## Ytterligare resurser diff --git a/cells/swedish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/swedish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..ac6d925c76 --- /dev/null +++ b/cells/swedish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Skapa en licensierad arbetsbok snabbt med Aspose.Cells Java. Lär dig + hur du licensierar Aspose, ställer in Aspose‑licens för Java och läser Excel med + Aspose i en handledning. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: sv +og_description: Skapa en licensierad arbetsbok med Aspose.Cells Java. Den här guiden + visar hur du licensierar Aspose, ställer in Aspose‑licens för Java och läser Excel + med Aspose. +og_title: Skapa licensierad arbetsbok – Aspose.Cells Java-handledning +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Skapa licensierad arbetsbok – Fullständig Aspose.Cells Java-guide +url: /sv/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa licensierad arbetsbok – Fullständig Aspose.Cells Java-guide + +Har du någonsin undrat hur man **create licensed workbook** utan att stöta på licensfel? Du är inte ensam—många utvecklare stöter på den muren när de först använder Aspose.Cells. Den goda nyheten? Lösningen är enkel, och den här guiden går igenom den steg för steg. + +På bara några minuter kommer du att veta **how to license Aspose**, exakt **set Aspose license Java**, och du kommer att vara redo att **read Excel with Aspose** för verkliga uppgifter som rapportering eller datamigrering. Inga vaga referenser, bara ett komplett, körbart exempel som du kan kopiera och klistra in idag. + +--- + +## Vad du behöver + +- Java 17 eller nyare (den senaste stabila versionen fungerar bäst) +- Aspose.Cells for Java 23.9 (eller någon recent version) +- Din Aspose.Cells‑licensfil (`Aspose.Cells.Java.lic`) +- En IDE eller byggverktyg du är bekväm med (Maven, Gradle eller plain `javac`) + +Om någon av dessa låter obekant, oroa dig inte—varje punkt täcks i stegen nedan. + +--- + +## Steg 1: Lägg till Aspose.Cells‑beroende + +Innan du kan **create licensed workbook**, måste biblioteket finnas på din classpath. Med Maven ser det här ut: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +För Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Proffstips:** Om du använder en vanlig `javac`‑kompilering, släpp bara JAR‑filen i en `libs/`‑mapp och lägg till den i `-cp`‑flaggan. + +--- + +## Steg 2: **How to License Aspose** – Ladda licensfilen + +Det ögonblick du anropar någon Aspose‑API utan licens, kommer du att se ett vattenstämpel i den genererade Excel‑filen. För att undvika det måste du **set Aspose license Java** tidigt i ditt program. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Varför detta är viktigt:** `License`‑objektet talar om för Aspose att hoppa över utvärderingsläget, ta bort vattenstämplar och låsa upp hela API‑ytan. Om sökvägen är fel kastas ett undantag—så du vet det omedelbart. + +--- + +## Steg 3: **Create Licensed Workbook** – Bygg en Excel‑fil + +Nu när licensen är tillämpad kan du säkert skapa **create licensed workbook**‑objekt. Nedan är ett minimalt men komplett exempel som också demonstrerar **read Excel with Aspose** senare. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Vad detta gör:** + +1. Anropar verktyget från **Step 2** för att **set Aspose license Java**. +2. Instansierar en ny `Workbook` – kärnan i en **create licensed workbook**‑operation. +3. Skriver en liten tabell, sparar den som XLSX och läser sedan omedelbart tillbaka den för att bevisa att **read Excel with Aspose** fungerar utan vattenstämplar. + +Kör programmet så skrivs ut: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Om du öppnar den genererade filen ser du ett rent kalkylblad utan Aspose‑vattenstämpel—bevis på att licensen är aktiv. + +--- + +## Steg 4: Vanliga fallgropar & kantfall + +| Problem | Varför det händer | Lösning | +|-------|----------------|-----| +| **LicenseNotFoundException** | Sökvägen är fel eller filen saknas. | Använd en absolut sökväg eller ladda filen från resurser (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR inte på classpath. | Verifiera Maven/Gradle‑beroende eller lägg till JAR‑filen manuellt. | +| **Saving fails on Windows** | Målmappen finns inte. | Säkerställ att `output/`‑katalogen skapas (`new File("output").mkdirs();`). | +| **Reading older .xls files** | Standard‑`SaveFormat` kanske inte stödjer gammalt format. | Använd `SaveFormat.XLS` när du sparar, eller låt Aspose auto‑detect vid laddning. | + +> **Se upp för:** Om du distribuerar till en server bör licensfilen ligga utanför webb‑app‑roten för att undvika oavsiktlig exponering. + +--- + +## Steg 5: Verifiera licensen programatiskt (valfritt) + +Ibland vill du dubbelkolla att licensen har laddats korrekt innan du utför tunga operationer. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Du kan anropa `LicenseChecker.isLicensed("...")` och avbryta om den returnerar `false`. Detta ger ett extra skyddsnät, särskilt i CI/CD‑pipelines. + +--- + +## Visuell översikt + +![Diagram som visar flödet från att applicera licens till att skapa och läsa en arbetsbok](create-licensed-workbook-diagram.png "create licensed workbook") + +*Bildtext:* **create licensed workbook diagram** – illustrerar stegen för att applicera Aspose‑licens, skapa arbetsbok och läsa Excel. + +--- + +## Slutsats + +Du har nu en komplett, end‑to‑end‑lösning för **create licensed workbook** med Aspose.Cells för Java. Vi gick igenom **how to license Aspose**, demonstrerade den exakta **set Aspose license Java**‑koden och gav dig en snabb titt på **read Excel with Aspose** för att bekräfta att allt fungerar. + +Nästa steg kan vara att utforska: + +- Formatera celler (typsnitt, färger) – perfekt för professionella rapporter. +- Exportera till CSV eller PDF – Aspose stödjer många format direkt. +- Arbeta med stora dataset – använd `WorkbookDesigner` för mallning. + +Känn dig fri att experimentera, och om du stöter på problem, lämna en kommentar nedan. Lycka till med kodandet! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/swedish/java/ole-objects-embedded-content/_index.md b/cells/swedish/java/ole-objects-embedded-content/_index.md index 2df03febd5..c9e7b5e36d 100644 --- a/cells/swedish/java/ole-objects-embedded-content/_index.md +++ b/cells/swedish/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Lär dig hur du effektivt extraherar GUID:er från inbäddade PowerPoint-objekt ### [Ta bort ActiveX-kontroller från Excel med Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) En kodhandledning för Aspose.Words Java - +### [Hur man bäddar in teckensnitt – Komplett guide för HTML, XPS och OLE-export](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Lär dig hur du bäddar in teckensnitt vid export till HTML, XPS och OLE med Aspose.Cells för Java. Följ steg-för-steg-guiden för bästa resultat. ## Ytterligare resurser diff --git a/cells/swedish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/swedish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..8f3466407e --- /dev/null +++ b/cells/swedish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Lär dig hur du bäddar in teckensnitt i HTML och andra format. Steg‑för‑steg‑handledning + som täcker inbäddning av teckensnitt i HTML, konvertera Excel till HTML, hur man + exporterar OLE och konvertera Excel till XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: sv +og_description: Hur man bäddar in typsnitt i HTML-, XPS- och OLE-export. Lär dig hela + arbetsflödet, se körbar Java‑kod och behärska inbäddning av typsnitt i HTML för + Excel‑konverteringar. +og_title: Hur man bäddar in teckensnitt – Fullständig Java‑handledning +tags: +- Aspose.Cells +- Java +- Document Export +title: Hur man bäddar in typsnitt – Komplett guide för HTML-, XPS- och OLE-export +url: /sv/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man bäddar in typsnitt – Komplett guide för HTML, XPS och OLE‑export + +Har du någonsin undrat **how to embed fonts** när du omvandlar en Excel‑arbetsbok till en webbsida eller ett utskriftsbart dokument? Du är inte ensam. Många utvecklare stöter på problem när resultatet ser bra ut på deras maskin men går sönder på en annan eftersom de nödvändiga typsnitten saknas. + +I den här handledningen går vi igenom ett verkligt scenario med Aspose.Cells for Java: vi bäddar in typsnitt i HTML, bevarar emoji‑variationsväljare vid konvertering till XPS, och behåller till och med ett OLE‑objekt redigerbart när vi exporterar till PPTX. I slutet har du en solid, kopiera‑och‑klistra‑lösning som svarar på “how to embed fonts” och även berör **embed fonts in html**, **convert excel to html**, **how to export ole**, och **convert excel to xps**. + +## Förutsättningar + +- Java 17 (eller någon nyare JDK) +- Aspose.Cells for Java 25.x eller senare +- En utvecklings‑IDE (IntelliJ IDEA, Eclipse eller VS Code) +- Grundläggande kunskap om Excel‑datastrukturer + +Inga externa tjänster krävs—allt körs lokalt. + +## Översikt av lösningen + +1. **Create a workbook** och använd `WRAPCOLS`‑funktionen för att omvandla ett vertikalt område till en tre‑kolumns layout. +2. **Save the workbook as XPS** medan du aktiverar font variation selectors så att emoji förblir intakta. +3. **Export to HTML** med inbäddade typsnitt, vilket garanterar att sidan ser likadan ut överallt. +4. **Export a workbook containing an OLE object to PPTX**, bevarar redigerbarhet. +5. **Apply a Smart Marker template** som demonstrerar master‑detail‑databindning. + +Varje steg är isolerat i sin egen H2‑sektion, vilket gör guiden lätt att skumma igenom för både sökmotorer och AI‑assistenter. + +![Illustration av hur man bäddar in typsnitt](image.png "hur man bäddar in typsnitt") + +*Bildtext: diagram som visar arbetsflödet från Excel till HTML, XPS och PPTX för hur man bäddar in typsnitt.* + +--- + +## Steg 1 – Skapa en arbetsbok och använd WRAPCOLS (Varför detta är viktigt för embed fonts in html) + +Innan vi kan prata om att bädda in typsnitt behöver vi en arbetsbok som faktiskt innehåller data. `WRAPCOLS`‑funktionen är ett praktiskt sätt att dela en enda kolumn i flera kolumner, vilket ofta gör den slutliga HTML‑koden mer läsbar. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Varför detta steg?** +`WRAPCOLS`‑anropet genererar ett multi‑column‑område som senare visas i HTML som en tabell. När vi senare **embed fonts in html**, kommer tabellens stil att bero på de typsnitt vi bäddar in, vilket säkerställer konsekvent rendering i alla webbläsare. + +## Steg 2 – Spara arbetsboken som XPS medan du bevarar emoji (convert excel to xps) + +Om du behöver ett utskriftsklart format är XPS ett bra val. Moderna dokument innehåller ofta emoji eller symboler som använder variationsväljare. Att aktivera `EnableFontVariationSelectors` säkerställer att dessa tecken överlever konverteringen. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Vad du får:** +En XPS‑fil som visar alla inbäddade emoji exakt som i källarbetsboken. Detta uppfyller kravet **convert excel to xps** och visar att typsnittshantering inte är begränsad till HTML. + +## Steg 3 – Exportera till HTML med inbäddade typsnitt (how to embed fonts & embed fonts in html) + +Nu kommer vi till kärnan i handledningen: **how to embed fonts** när vi konverterar Excel till HTML. Aspose.Cells låter oss bädda in typsnitten direkt i den genererade HTML‑filen, vilket eliminerar behovet av externa typsnittsfiler. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Hur det fungerar:** +`setEmbedFonts(true)` instruerar renderaren att läsa de typsnittsfiler som används i arbetsboken och bädda in dem som Base64‑kodade `@font-face`‑regler i ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Observera `@font-face`‑regeln—detta är det konkreta svaret på **embed fonts in html**. + +## Steg 4 – Exportera en arbetsbok som innehåller ett OLE‑objekt till PPTX (how to export ole) + +Många affärsrapporter bäddar in Word‑dokument, PDF‑filer eller andra Excel‑blad som OLE‑objekt. När du exporterar en sådan arbetsbok till PowerPoint förlorar du ofta möjligheten att redigera objektet. Aspose.Cells bevarar redigerbarheten direkt ur lådan. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Varför detta är viktigt:** +Om du letar efter **how to export ole**, visar detta utdrag det exakta API‑anropet. Den resulterande PowerPoint‑bilden innehåller OLE‑objektet som en levande, dubbelklick‑till‑redigera‑komponent—ingen extra efterbehandling behövs. + +## Steg 5 – Använd en Smart Marker‑mall (master‑detail) och avsluta demonstrationen + +Smart Markers låter dig binda en datakälla (Map, JSON, DataTable) direkt till en Excel‑mall. Här är ett minimalt exempel som skriver ut master‑detail‑rader. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Vad du ser:** +En ny arbetsbok (`smartMarkerResult.xlsx`) där mallens platshållare har ersatts med data. Detta steg handlar inte direkt om typsnitt, men det avrundar handledningen genom att visa ett typiskt rapporteringsflöde som ofta föregår en **embed fonts in html**‑export. + +## Vanliga fallgropar & Pro‑tips (för att säkerställa lyckad typsnitts‑inbäddning) + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| Typsnitt saknas i HTML‑filen | Arbetsboken använder ett systemtypsnitt som inte är installerat på servern. | Use `Workbook.getSettings().setDefaultFont("Arial")` before loading data, or embed the required font files manually. | +| HTML‑filen blir enorm | Inbäddning av många stora typsnitt ökar filstorleken. | Limit embedding to only the fonts you actually use: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji försvinner efter XPS‑konvertering | Variationsväljare tas bort som standard. | Enable `settings.setEnableFontVariationSelectors(true)` as shown in Step 2. | +| OLE‑objekt blir en statisk bild i PPTX | Källarbetsboken sparades med `setSuppressOLEObjects(true)`. | Ensure you **do not** suppress OLE objects when saving to PPTX. | + +## Verifiera resultaten + +1. Öppna `embeddedFonts.html` i Chrome/Firefox. Tabellen bör visas med det inbäddade typsnittet (t.ex. Arial) även om det typsnittet inte är installerat på maskinen. +2. Öppna `withVariations.xps` i Windows XPS Viewer. Emoji såsom 👍 bör renderas korrekt. +3. Öppna `oleEditable.pptx` i PowerPoint. Dubbelklicka på OLE‑formen; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/thai/java/excel-import-export/_index.md b/cells/thai/java/excel-import-export/_index.md index 9750e80035..4b7cc9e7fb 100644 --- a/cells/thai/java/excel-import-export/_index.md +++ b/cells/thai/java/excel-import-export/_index.md @@ -37,6 +37,8 @@ เรียนรู้วิธีส่งออกข้อมูลเป็นรูปแบบ CSV โดยใช้ Aspose.Cells สำหรับ Java คำแนะนำทีละขั้นตอนพร้อมโค้ดต้นฉบับสำหรับการส่งออก CSV ได้อย่างราบรื่น ### [การส่งออก Excel ไปยัง PDF](./exporting-excel-to-pdf/) เรียนรู้วิธีการส่งออกไฟล์ Excel เป็น PDF ได้อย่างง่ายดายโดยใช้ Aspose.Cells สำหรับ Java คำแนะนำทีละขั้นตอนของเราจะทำให้กระบวนการนี้ง่ายขึ้น เริ่มแปลงไฟล์ได้แล้ววันนี้! +### [วิธีสร้าง PDF จาก Workbook – คู่มือ Java ฉบับสมบูรณ์](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +เรียนรู้วิธีแปลง Workbook เป็นไฟล์ PDF อย่างละเอียดด้วย Aspose.Cells สำหรับ Java พร้อมตัวอย่างโค้ดขั้นตอนครบถ้วน ### [การส่งออก Excel ไปยัง XML Java](./export-excel-to-xml-java/) เรียนรู้วิธีการส่งออก Excel ไปยัง XML ใน Java ด้วย Aspose.Cells สำหรับ Java คำแนะนำทีละขั้นตอนพร้อมโค้ดต้นฉบับสำหรับการแปลงข้อมูลอย่างราบรื่น ### [นำเข้าข้อมูลจาก Excel](./data-import-from-excel/) @@ -47,6 +49,8 @@ เรียนรู้วิธีนำการตรวจสอบข้อมูลนำเข้า Excel ไปใช้โดยใช้ Aspose.Cells สำหรับ Java ด้วยคู่มือทีละขั้นตอนฉบับสมบูรณ์นี้ รับรองความถูกต้องของข้อมูลและปรับปรุงประสบการณ์ของผู้ใช้ ### [ส่งออก Excel เป็น HTML Java](./export-excel-to-html-java/) เรียนรู้วิธีการส่งออก Excel เป็น HTML ใน Java โดยใช้ Aspose.Cells สำหรับ Java ปฏิบัติตามคำแนะนำทีละขั้นตอนนี้พร้อมโค้ดต้นฉบับเพื่อแปลงไฟล์ Excel เป็น HTML ได้อย่างราบรื่นและง่ายดาย +### [วิธีส่งออก CSV ด้วย Java – ตั้งค่าตัวเลขสำคัญและช่วงการส่งออกเป็น CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +เรียนรู้วิธีส่งออก CSV ด้วย Java ตั้งค่าตัวเลขสำคัญและกำหนดช่วงข้อมูลที่ต้องการส่งออกอย่างแม่นยำ {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/thai/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..8a965725e8 --- /dev/null +++ b/cells/thai/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,281 @@ +--- +category: general +date: 2026-03-01 +description: วิธีสร้าง PDF และบันทึกเวิร์กบุ๊กเป็น PDF, ส่งออก Excel เป็น HTML, และใช้ฟังก์ชัน + expand กับ Aspose.Cells สำหรับ Java พร้อมโค้ดขั้นตอนโดยละเอียด. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: th +og_description: วิธีสร้าง PDF จากเวิร์กบุ๊กด้วย Aspose.Cells for Java. เรียนรู้การบันทึกเวิร์กบุ๊กเป็น + PDF, ส่งออก Excel เป็น HTML, และการใช้ฟังก์ชัน EXPAND. +og_title: วิธีสร้าง PDF จากสมุดงาน – บทเรียน Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: วิธีสร้าง PDF จาก Workbook – คู่มือ Java ฉบับสมบูรณ์ +url: /th/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีสร้าง PDF จาก Workbook – คู่มือ Java ฉบับสมบูรณ์ + +เคยสงสัย **วิธีสร้าง PDF** โดยตรงจาก Excel workbook โดยไม่ต้องใช้ตัวแปลงจากบุคคลที่สามหรือไม่? คุณไม่ได้เป็นคนเดียวที่คิดเช่นนั้น นักพัฒนาหลายคนเจออุปสรรคเมื่อพวกเขาต้องการการส่งออก PDF อย่างรวดเร็ว การแสดงตัวอย่าง HTML หรือสูตรอาเรย์ขั้นสูง—all in one go. + +ในบทแนะนำนี้ เราจะพาไปผ่านโปรแกรม Java แบบอิสระเดียวที่ทำเช่นนั้น เราจะ **บันทึก workbook เป็น PDF**, แสดงวิธี **ส่งออก Excel เป็น HTML** พร้อมกับคงแถวที่ถูกตรึงไว้, และสาธิต **การใช้ฟังก์ชัน expand** ภายใน worksheet. เมื่อเสร็จคุณจะได้โปรเจกต์ที่สามารถรันได้และสามารถนำไปใส่ใน Maven หรือ Gradle build ใดก็ได้. + +> **Pro tip:** โค้ดทั้งหมดด้านล่างทำงานกับ Aspose.Cells 23.10 (หรือใหม่กว่า) หากคุณใช้เวอร์ชันเก่า ชื่อเมธอดบางอย่างอาจแตกต่างกันเล็กน้อย. + +--- + +## ข้อกำหนดเบื้องต้น + +- **Java 17** (หรือเวอร์ชัน LTS ใดก็ได้) ที่ติดตั้งและกำหนดค่าแล้ว. +- ไลบรารี **Aspose.Cells for Java**. เพิ่ม Maven dependency ต่อไปนี้ในไฟล์ `pom.xml` ของคุณ: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- IDE หรือโปรแกรมแก้ไขข้อความที่คุณเลือก (IntelliJ IDEA, VS Code, Eclipse…). + +ไม่มี API ภายนอก, ไม่มีเว็บเซอร์วิส—เพียงแค่ Java แท้และ SDK ของ Aspose.Cells. + +## ภาพรวมของโซลูชัน + +เราจะแบ่งการทำงานออกเป็น **เจ็ดขั้นตอนเชิงตรรกะ**: + +1. สร้าง workbook และสาธิตฟังก์ชัน **EXPAND**. +2. เปิดใช้งานตัวเลือกการแปรผันของฟอนต์และ **บันทึก workbook เป็น PDF**. +3. ส่งออก workbook เดียวกันเป็น HTML พร้อมคงแถวที่ถูกตรึงไว้. +4. ใช้ Smart Marker พร้อมพารามิเตอร์ `IF` เพื่อแทรกข้อความตามเงื่อนไข. +5. ใช้ Master‑Detail Smart Marker สำหรับข้อมูลเชิงลำดับขั้น. +6. โหลดไฟล์ Markdown ที่มีภาพเข้ารหัส Base‑64. +7. กำหนดค่า GridJs options สำหรับการจัดแนวและเส้นขอบ, จากนั้นแทรกข้อมูล. + +แต่ละขั้นตอนจะถูกห่อหุ้มในเมธอดของตนเองเพื่อให้เมธอด `main` ดูเรียบร้อยและเพื่ออธิบาย **เหตุผล** ที่เราทำสิ่งที่ทำ, ไม่ใช่แค่ **สิ่งที่** เราพิมพ์. + +## ขั้นตอนที่ 1 – สร้าง Workbook และใช้ฟังก์ชัน EXPAND + +ฟังก์ชัน **EXPAND** เป็นสูตรอาเรย์ไดนามิกใหม่ที่แนะนำใน Office 365 มันทำให้คุณสามารถขยายช่วงเป็นพื้นที่ที่ใหญ่ขึ้นโดยไม่ต้องคัดลอกเซลล์ด้วยตนเอง. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +- `EXPAND` จะเติมช่องว่างโดยอัตโนมัติในผลลัพธ์ ซึ่งเหมาะอย่างยิ่งเมื่อคุณต่อมาจะ **บันทึก workbook เป็น PDF**—PDF จะแสดงตารางที่เรียบร้อยและเป็นสี่เหลี่ยม. +- การเรียก `calculateFormula()` ทำให้เครื่องยนต์สูตรทำงานก่อนที่เราจะส่งออกอะไรเลย. + +## ขั้นตอนที่ 2 – เปิดใช้งาน Font Variation Selectors และ **บันทึก Workbook เป็น PDF** + +หากคุณต้องการสนับสนุนการพิมพ์ขั้นสูง (เช่น emoji หรือ CJK variation selectors) คุณต้องเปิดคุณลักษณะนี้ **ก่อน** การบันทึก. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**จุดสำคัญ:** คำหลักหลัก **how to create pdf** ได้รับคำตอบที่นี่—โดยการเรียก `workbook.save(..., SaveFormat.PDF)` หลังจากกำหนดค่าต่างๆ. + +## ขั้นตอนที่ 3 – **ส่งออก Excel เป็น HTML** พร้อมคงแถวที่ตรึงไว้ + +บ่อยครั้งที่ผู้มีส่วนได้ส่วนเสียต้องการตัวอย่างเว็บอย่างรวดเร็ว Aspose.Cells สามารถส่งออกเป็น HTML ได้ และด้วย `setPreserveFrozenRows(true)` เราจะคงประสบการณ์การเลื่อนเหมือนใน Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**ทำไมคุณต้องสนใจ:** แถวที่ตรึงเป็นความสะดวกในการใช้งาน; หากไม่มีแถวเหล่านี้ แถวหัวตารางจะหายไปเมื่อผู้ใช้เลื่อนลงหน้า. + +## ขั้นตอนที่ 4 – Smart Marker พร้อมพารามิเตอร์ IF + +Smart Markers ช่วยให้คุณผสานข้อมูลเข้าสู่เทมเพลตโดยไม่ต้องเขียนลูป พารามิเตอร์ `if` เพิ่มตรรกะเงื่อนไขโดยตรงภายใน marker. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +PDF ที่ได้จะอ่านว่า **“VIP Customer: Acme Corp”** เนื่องจาก `IsVIP` เป็น `true`. หากเปลี่ยนค่าเป็น `false` คุณจะได้ **“Regular Customer: Acme Corp”**—ไม่ต้องเขียนโค้ดเพิ่มเติม. + +## ขั้นตอนที่ 5 – Master‑Detail Smart Marker ด้วยช่วงข้อมูลเชิงลำดับขั้น + +เมื่อคุณมีข้อมูลแบบพ่อแม่‑ลูก (เช่น คำสั่งซื้อและรายการสินค้า) master‑detail marker จะช่วยคุณหลีกเลี่ยงการแทรกแถวด้วยตนเอง. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**สิ่งที่คุณได้:** เครื่องยนต์จะขยายแถว master สำหรับแต่ละคำสั่งซื้อและใส่แถว detail ใต้โดยอัตโนมัติ—เหมาะสำหรับใบแจ้งหนี้หรือรายงานการซื้อ. + +## ขั้นตอนที่ 6 – โหลดเอกสาร Markdown พร้อมภาพ Base‑64 ฝังอยู่ + +หากข้อมูลต้นทางของคุณอยู่ในรูปแบบ Markdown (เป็นที่นิยมในกระบวนการเอกสาร) Aspose.Cells สามารถเรนเดอร์มันโดยตรงเข้าสู่ workbook. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**หมายเหตุกรณีขอบ:** หากสตริง Base‑64 มีรูปแบบไม่ถูกต้อง Aspose จะข้ามภาพนั้นแต่ดำเนินการประมวลผลเอกสารส่วนที่เหลือต่อ—ไม่มีการหยุดทำงาน. + +## ขั้นตอนที่ 7 – กำหนดค่า GridJs Options และแทรกข้อมูล + +GridJs เป็นกริด JavaScript ขนาดเล็กที่ Aspose สามารถเรนเดอร์เป็น HTML การจัดแนวตัวเลขและการใส่เส้นขอบช่วยเพิ่มความอ่านง่าย. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**ทำไมเราถึงสนใจ:** การจัดแนวและเส้นขอบที่เหมาะสมทำให้ HTML ที่สร้างขึ้นดูเหมือนสเปรดชีตที่เรียบหรู—มีประโยชน์สำหรับแดชบอร์ด. + +## สรุปทั้งหมด – เมธอด `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/thai/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/thai/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..081d4b5543 --- /dev/null +++ b/cells/thai/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-01 +description: เรียนรู้วิธีการส่งออก CSV จากเวิร์กบุ๊ก Java พร้อมตั้งค่าจำนวนหลักสำคัญและช่วงการส่งออกเป็น + CSV ในคู่มือเดียวที่ชัดเจน +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: th +og_description: เชี่ยวชาญการส่งออก CSV ใน Java ตั้งค่าตัวเลขที่สำคัญ และส่งช่วงข้อมูลออกเป็น + CSV ด้วยโค้ดและเคล็ดลับที่ใช้งานได้จริง +og_title: วิธีส่งออก CSV ด้วย Java – คู่มือเต็มขั้นตอนต่อขั้นตอน +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: วิธีส่งออก CSV ด้วย Java – ตั้งค่าตัวเลขที่สำคัญและช่วงการส่งออกเป็น CSV +url: /th/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีการส่งออก CSV ด้วย Java – ตั้งค่าตัวเลขสำคัญและส่งออกช่วงเป็น CSV + +เคยสงสัยไหมว่า **how to export csv** จาก workbook ของ Java โดยไม่สูญเสียความแม่นยำของตัวเลข? บางทีคุณอาจลองใช้ `toString()` อย่างรวดเร็วแล้วได้ผลลัพธ์ที่เต็มไปด้วยข้อผิดพลาดจากการปัดเศษ. นั่นเป็นปัญหาที่พบบ่อย, โดยเฉพาะเมื่อคุณต้อง **set significant digits** สำหรับข้อมูลการเงินหรือผลลัพธ์ทางวิทยาศาสตร์. + +ในบทแนะนำนี้คุณจะได้เห็นตัวอย่างที่สมบูรณ์และพร้อมรันที่แสดง **how to export csv**, วิธี **set significant digits**, และแม้กระทั่งวิธี **export range to csv** พร้อมกับรักษาข้อมูลให้เป็นระเบียบ เราจะเดินผ่านแต่ละบรรทัด, อธิบาย *ทำไม* ที่อยู่เบื้องหลังการเรียก API, และให้เคล็ดลับเพื่อหลีกเลี่ยงข้อผิดพลาดทั่วไป ไม่ต้องตามเอกสารเพิ่มเติม—เพียงโซลูชันที่รวมทุกอย่างที่คุณสามารถคัดลอกและวางได้ทันที. + +## สิ่งที่คุณจะได้เรียนรู้ + +- สร้าง workbook และกำหนดความแม่นยำของตัวเลขด้วย `setNumberSignificantDigits`. +- ส่งออกช่วงเซลล์เฉพาะเป็นสตริง CSV ที่จัดรูปแบบอย่างสวยงาม. +- แปลงวันที่ยุคญี่ปุ่นโดยใช้ `DateTimeFormatInfo`. +- คำนวณสูตรใหม่เพื่อให้ผลลัพธ์ของ dynamic‑array สดใหม่. +- แสดง pivot table เป็นภาพ PNG. +- ใช้ Smart Marker เพื่อแทรกคอมเมนต์และบันทึก workbook สุดท้าย. + +ทั้งหมดนี้ทำด้วยไลบรารี Aspose.Cells for Java รุ่น 23.12 (รุ่นล่าสุด ณ เวลาที่เขียน). หากคุณมีไฟล์ JAR อยู่ใน classpath ของคุณ, คุณพร้อมใช้งานแล้ว. + +--- + +## ขั้นตอนที่ 1: สร้าง Workbook และ **Set Significant Digits** + +ก่อนที่เราจะส่งออกอะไรได้ เราต้องมีอ็อบเจกต์ workbook ก่อน สิ่งแรกที่นักพัฒนาหลายคนมักมองข้ามคือความแม่นยำของตัวเลข โดยค่าเริ่มต้น Aspose.Cells ใช้ความแม่นยำแบบ double เต็มรูปแบบ, ซึ่งอาจทำให้สตริงใน CSV ยาวและอ่านยาก การตั้งค่าจำนวนตัวเลขสำคัญจะทำให้ผลลัพธ์สั้นลงในขณะที่ยังคงรักษาตัวเลขที่สำคัญที่สุดไว้. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**ทำไมเรื่องนี้ถึงสำคัญ?** +หากคุณส่งออกเซลล์ที่มีค่า `12345.6789` โดยไม่จำกัดจำนวนตัวเลข, CSV จะแสดงค่าทั้งหมดซึ่งทำให้รายงานรก. ด้วย `setNumberSignificantDigits(5)`, เซลล์เดียวกันจะกลายเป็น `12346`, ซึ่งมักเป็นสิ่งที่ผู้ใช้ธุรกิจคาดหวัง. + +> **เคล็ดลับ:** หากคุณต้องการความแม่นยำที่แตกต่างกันในแต่ละคอลัมน์, คุณสามารถใช้ `Style` แบบกำหนดเองแทนการตั้งค่าทั่วโลกได้. + +--- + +## ขั้นตอนที่ 2: **Export Range to CSV** – การจัดรูปแบบสำคัญ + +เมื่อ workbook พร้อมแล้ว, เราจะดึงบล็อกข้อมูลสี่เหลี่ยมและแปลงเป็นสตริง CSV. เราจะบังคับใช้รูปแบบสองตำแหน่งทศนิยม (`0.00`) เพื่อให้ตัวเลขทุกตัวจัดเรียงอย่างสวยงาม. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +การเรียก `exportDataTable` ทำหน้าที่หลัก. เนื่องจากเราตั้งค่า `exportAsString`, เมธอดจะคืนค่า `String` ที่เราสามารถพิมพ์, เขียนไฟล์, หรือส่งผ่าน HTTP. ขั้นตอน **export range to csv** ยังเคารพการตั้งค่า `setNumberSignificantDigits` ที่กำหนดไว้ก่อนหน้า, ดังนั้นตัวเลขจะถูกปัดเป็นห้าตัวเลขสำคัญ *และ* แสดงด้วยสองตำแหน่งทศนิยม. + +**ผลลัพธ์ที่คาดหวัง (ตัดบางส่วน):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **คำถามทั่วไป:** *ถ้าฉันต้องการตัวคั่นที่ต่างออกไป, เช่น เซมิโคลอน?* +> เพียงเรียก `exportOptions.setSeparator(";")` ก่อนทำการส่งออก. + +--- + +## ขั้นตอนที่ 3: แปลงวันที่ยุคญี่ปุ่น (ยูทิลิตี้โบนัส) + +แม้ว่าจะไม่เกี่ยวข้องโดยตรงกับ CSV, แต่หลายแผ่น Excel มีวันที่ที่ขึ้นกับโลคัล. นี่คือวิธีแปลงสตริงยุคญี่ปุ่นเช่น `"R3/04/01"` ให้เป็นอ็อบเจกต์ `DateTime` มาตรฐาน. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +ผลลัพธ์: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**ทำไมต้องรวมส่วนนี้?** +หากการส่งออก CSV ของคุณส่งต่อไปยังระบบ downstream ที่คาดหวังวันที่รูปแบบ ISO‑8601, คุณจำเป็นต้องทำให้รูปแบบโลคัลเป็นมาตรฐานก่อน. โค้ดส่วนนั้นแสดง *วิธีการ* และ *เหตุผล* ในที่เดียว. + +--- + +## ขั้นตอนที่ 4: คำนวณสูตรใหม่ – ทำให้ผลลัพธ์ Dynamic‑Array สดใหม่ + +หาก workbook ของคุณมีสูตร (เช่น `=SUM(A1:A10)`), สูตรจะไม่อัปเดตอัตโนมัติหลังจากที่เราเปลี่ยนการตั้งค่า. การเรียก `calculateFormula` จะบังคับให้ทำการคำนวณใหม่ทั้งหมด, ทำให้ CSV ที่ส่งออกสะท้อนค่าล่าสุด. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **ระวัง:** Workbook ขนาดใหญ่สามารถใช้เวลาคำนวณใหม่อย่างเห็นได้ชัด. สำหรับสถานการณ์ที่ต้องการประสิทธิภาพสูง, พิจารณาใช้ `calculateFormula(FormulaCalculationOptions)` เพื่อจำกัดขอบเขต. + +--- + +## ขั้นตอนที่ 5: แสดง Pivot Table แรกเป็นภาพ PNG + +บางครั้งคุณอาจต้องการภาพสแนปช็อตของ pivot table ควบคู่กับ CSV. โค้ดต่อไปนี้จะแสดง pivot table แรกบน worksheet แรกเป็นไฟล์ PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**เคล็ดลับ:** หาก workbook ยังไม่มี pivot, คุณสามารถสร้างขึ้นโดยโปรแกรม—ดูเอกสาร Aspose.Cells สำหรับตัวอย่างสั้น. + +--- + +## ขั้นตอนที่ 6: ใช้ Smart Marker เพื่อเขียนคอมเมนต์และบันทึก Workbook + +Smart Marker ช่วยให้คุณแทรกเนื้อหาแบบไดนามิกลงในเซลล์โดยใช้ตัวแทนง่าย ๆ. ที่นี่เราจะเขียนคอมเมนต์เช่น “Reviewed by QA” ลงในเซลล์ที่กำหนดและจากนั้นบันทึก workbook. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +ตัวแทน `${Comment}` สามารถวางได้ทุกที่ในแผ่น (เช่น เซลล์ `A1`). เมื่อเรียก `apply`, ตัวแทนจะถูกแทนที่ด้วยค่าที่ให้ไว้. + +**ผลลัพธ์:** คุณจะพบไฟล์ `output/commented.xlsx` ที่มีคอมเมนต์, พร้อมกับ `pivot.png` ที่สร้างก่อนหน้าและสตริง CSV ที่พิมพ์บนคอนโซล. + +--- + +## ตัวอย่างการทำงานเต็มรูปแบบ + +รวมทุกอย่างเข้าด้วยกัน, นี่คือโปรแกรมเต็มที่คุณสามารถคอมไพล์และรันได้: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### ผลลัพธ์ที่คาดหวังบนคอนโซล + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +คุณจะพบไฟล์ `output/pivot.png` (หากมี pivot) และ `output/commented.xlsx` บนดิสก์. + +--- + +## คำถามที่พบบ่อย & กรณีขอบ + +- **ฉันสามารถส่งออกเป็นไฟล์ CSV จริงได้โดยตรงหรือไม่?** + ได้. แทนที่บล็อก `exportAsString` ด้วย `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **ถ้าแผ่นของฉันใช้โลคัลที่ต่างสำหรับตัวเลขจะทำอย่างไร?** + ตั้งค่า `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` ก่อนทำการส่งออก; นี้จะสลับ + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/thai/java/excel-pivot-tables/_index.md b/cells/thai/java/excel-pivot-tables/_index.md index 6d9b75d892..848150b01e 100644 --- a/cells/thai/java/excel-pivot-tables/_index.md +++ b/cells/thai/java/excel-pivot-tables/_index.md @@ -42,6 +42,7 @@ Aspose.Cells สำหรับ Java ช่วยให้คุณสามา เรียนรู้วิธีการรีเฟรชข้อมูล Pivot Table ใน Aspose.Cells สำหรับ Java อัปเดตข้อมูลของคุณได้อย่างง่ายดาย ### [การปรับแต่งสไตล์ตารางสรุปข้อมูล](./customizing-pivot-table-styles/) เรียนรู้วิธีปรับแต่งรูปแบบตารางสรุปข้อมูลใน Aspose.Cells สำหรับ Java API สร้างตารางสรุปข้อมูลที่น่าสนใจได้อย่างง่ายดาย +### [คัดลอกตารางสรุปข้อมูลใน Java – เก็บไว้, ส่งออกเป็น PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/thai/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..61e9045205 --- /dev/null +++ b/cells/thai/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-03-01 +description: คัดลอก Pivot Table ใน Java พร้อมคง Pivot ไว้, จากนั้นส่งออก Excel ไปเป็น + PPTX, ปิด AutoFilter ของ Excel, และใช้ Smart Marker สำหรับอาเรย์ JSON – คู่มือเต็มขั้นตอนโดยละเอียด. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: th +og_description: คัดลอก Pivot Table ใน Java, รักษาการกำหนด Pivot, ส่งออกเป็นไฟล์ PPTX, + ปิด AutoFilter, และใช้ Smart Marker – คู่มือเต็มสำหรับนักพัฒนา +og_title: คัดลอกตาราง Pivot ใน Java – เก็บไว้, ส่งออกเป็น PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: คัดลอก Pivot Table ใน Java – รักษาไว้, ส่งออกเป็น PPTX +url: /th/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# คัดลอก Pivot Table ใน Java – รักษาไว้, ส่งออกเป็น PPTX + +เคยต้องการ **copy pivot table** จาก workbook หนึ่งไปยังอีก workbook หนึ่งโดยไม่สูญเสียการกำหนด pivot ด้านล่างหรือไม่? คุณไม่ได้เป็นคนเดียวที่สับสนกับเรื่องนี้ ในหลายโครงการจริง ๆ คุณจะพบว่าต้องย้ายข้อมูลไปมา และสิ่งสุดท้ายที่คุณต้องการคือ pivot ที่เสียหายและทำให้เกิดข้อผิดพลาดขณะรัน + +ในบทเรียนนี้เราจะเดินผ่านโซลูชันที่ครบถ้วนซึ่งไม่เพียงแต่ **copy pivot table** แต่ยังแสดงวิธี **preserve pivot table** เมื่อคัดลอก, **export Excel to PPTX**, **disable Excel AutoFilter**, และ **use smart marker** เพื่อใส่ JSON array ลงในเซลล์เดียว สุดท้ายคุณจะได้โปรแกรม Java เดียวที่ทำงานได้ครบทุกสถานการณ์สี่แบบ + +## Prerequisites + +- Java 8 หรือใหม่กว่า (โค้ดทำงานกับ Java 11 ด้วยเช่นกัน) +- ไลบรารี Aspose.Cells for Java (เวอร์ชัน 23.9 หรือใหม่กว่า) – คุณสามารถดาวน์โหลดได้จาก Maven Central +- ความคุ้นเคยพื้นฐานกับแนวคิดของ Excel เช่น pivot tables, tables, และ text boxes + +If you’re missing the Aspose.Cells JAR, add this to your `pom.xml`: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +ตอนนี้ ไปดูกันต่อ + +## Step 1: Copy Pivot Table – Preserving the Pivot Definition + +เมื่อคุณคัดลอกช่วงเซลล์ที่บรรจุ pivot table อย่างง่าย ๆ เมตาดาต้า pivot มักจะถูกทิ้งไว้ Aspose.Cells มีวิธีที่สะดวกในการรักษาการกำหนดไว้โดยใช้ `copyRange` พร้อมกับอ็อบเจกต์ `CopyOptions` + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Why this works:** `CopyOptions` บอก Aspose.Cells ให้คัดลอกทุกอย่างรวมถึง pivot cache และการตั้งค่า field ด้วย หากไม่มีตัวเลือกนี้ คุณจะได้ค่าเป็นค่าธรรมดาและเสียความสามารถในการรีเฟรช pivot + +**Edge case:** หาก pivot ต้นทางของคุณกว้างเกิน `A1:G20` ที่กำหนดไว้ล่วงหน้า ให้ปรับช่วงให้เหมาะสมหรือใช้ `sourceSheet.getPivotTables().get(0).getDataRange()` เพื่อดึงแบบไดนามิก + +![Copy pivot table example](image.png "Copy pivot table in Java") + +*ข้อความแทนภาพ: แผนผังการคัดลอก pivot table ใน Java* + +## Step 2: Export a Worksheet with an Editable TextBox to PPTX + +บ่อยครั้งที่คุณต้องแปลงแผ่นงาน Excel ให้เป็นสไลด์ PowerPoint — เช่นแดชบอร์ดประจำสัปดาห์ที่ต้องนำเสนอ Aspose.Cells สามารถบันทึกแผ่นงานเป็นไฟล์ PPTX ได้โดยตรงพร้อมคงรูปทรงเช่น TextBox ไว้ + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**What’s happening:** เมธอด `save` พร้อม `SaveFormat.PPTX` จะเปลี่ยนแปลงทั้งแผ่นรวมถึง TextBox ที่แก้ไขได้ให้เป็นสไลด์ PowerPoint ข้อความภายในกล่องจะยังคงแก้ไขได้เมื่อคุณเปิดไฟล์ PPTX ใน PowerPoint + +**Tip:** หากคุณมีหลายแผ่นและต้องการเพียงแผ่นเดียว ให้เรียก `wb.getWorksheets().removeAt(index)` เพื่อลบแผ่นอื่นก่อนบันทึก + +## Step 3: Disable Excel AutoFilter from a Table + +AutoFilter มีประโยชน์สำหรับผู้ใช้ปลายทาง แต่บางครั้งคุณต้องปิดมันโดยโปรแกรม — อาจก่อนส่งออกข้อมูลหรือเมื่อต้องสร้างรายงานที่สะอาด นี่คือวิธี **disable excel autofilter** บนตาราง Excel + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Why you might need this:** การส่งออกเป็นฟอร์แมตที่ไม่รองรับ AutoFilter (เช่น CSV หรือ PDF) อาจทำให้ไอคอนฟิลเตอร์หลงเหลืออยู่ การปิดมันช่วยให้ผลลัพธ์สะอาดตา + +**Common pitfall:** หากแผ่นงานไม่มีตาราง `getTables().get(0)` จะทำให้เกิด `IndexOutOfBoundsException` ควรตรวจสอบ `sheet.getTables().size()` ก่อนเสมอในโค้ดจริง + +## Step 4: Use Smart Marker – Insert a JSON Array as a Single Cell Value + +Smart Marker คือเอนจินเทมเพลตของ Aspose เทคนิคที่สะดวกคือการถือ JSON array ทั้งหมดเป็นค่าเซลล์เดียว ซึ่งเหมาะสำหรับการบันทึกหรือส่งข้อมูลโครงสร้างต่อไป ให้เรา **use smart marker** เพื่อทำเช่นนั้น + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**How it works:** ตัวมาร์คเกอร์ `${json}` ในเวิร์กบุ๊กจะถูกแทนที่ด้วยสตริง JSON ทั้งหมดเพราะเราตั้งค่า `ArrayAsSingle` หากไม่ตั้งค่านี้ Aspose จะพยายามขยายแต่ละองค์ประกอบของอาเรย์เป็นแถวแยกต่างหาก + +**Variation:** หากต้องการให้แอเรย์แยกเป็นหลายแถว เพียงละเว้น `ArrayAsSingle` แล้วให้ Smart Marker จัดการขยายอัตโนมัติ + +## Full Working Example – All Steps Combined + +ด้านล่างเป็นคลาส Java เดียวที่รวมทุกขั้นตอนที่อธิบายไว้ รันเป็นเมธอด `main` ปกติ; เพียงปรับเส้นทางไฟล์ให้ตรงกับสภาพแวดล้อมของคุณ + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/thai/java/getting-started/_index.md b/cells/thai/java/getting-started/_index.md index e24bebc260..b5d113bc8e 100644 --- a/cells/thai/java/getting-started/_index.md +++ b/cells/thai/java/getting-started/_index.md @@ -38,6 +38,9 @@ ### [การตั้งค่าและการตรวจสอบใบอนุญาต Java ของ Aspose.Cells: คำแนะนำฉบับสมบูรณ์](./aspose-cells-java-license-setup-guide/) ตั้งค่าและตรวจสอบใบอนุญาต Java ของ Aspose.Cells ของคุณอย่างเชี่ยวชาญด้วยคู่มือที่ครอบคลุมของเรา รับรองการเข้าถึงฟีเจอร์ขั้นสูงทั้งหมดได้อย่างง่ายดาย +### [สร้างเวิร์กบุ๊กที่มีใบอนุญาต – คู่มือเต็ม Aspose.Cells Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +เรียนรู้วิธีสร้างเวิร์กบุ๊กที่มีใบอนุญาตโดยใช้ Aspose.Cells สำหรับ Java ครอบคลุมขั้นตอนตั้งค่าใบอนุญาตและการสร้างไฟล์ Excel อย่างสมบูรณ์ + ### [Aspose.Cells สำหรับ Java: วิธีการสร้างและจัดรูปแบบเวิร์กบุ๊ก Excel อย่างมีประสิทธิภาพ](./aspose-cells-java-workbook-creation-guide/) เรียนรู้วิธีการสร้างและจัดรูปแบบเวิร์กบุ๊ก Excel โดยอัตโนมัติใน Java ด้วย Aspose.Cells คู่มือนี้ครอบคลุมถึงการตั้งค่า การจัดการเวิร์กบุ๊ก และเทคนิคการจัดรูปแบบเซลล์ @@ -63,10 +66,10 @@ บทช่วยสอนเกี่ยวกับโค้ดสำหรับ Aspose.Words Java ### [วิธีเปิดไฟล์ Excel โดยใช้ Aspose.Cells สำหรับ Java: คู่มือฉบับสมบูรณ์](./open-excel-aspose-cells-java-guide/) -เรียนรู้วิธีเปิดและจัดการไฟล์ Excel ในแอปพลิเคชัน Java ของคุณได้อย่างราบรื่นโดยใช้ Aspose.Cells คู่มือฉบับสมบูรณ์นี้ครอบคลุมถึงการตั้งค่า การใช้งาน และแอปพลิเคชันจริง +เรียนรู้วิธีเปิดและจัดการไฟล์ Excel ในแอปพลิเคชัน Java ของคุณได้อย่างราบรื่นโดยใช้ Aspose.Cells คู่มือฉบับสมบูรณ์นี้ครอบคลุมถึงการตั้งค่า การใช้งานและแอปพลิเคชันจริง ### [วิธีเปิดไฟล์ SpreadsheetML โดยใช้ Aspose.Cells สำหรับ Java: คู่มือฉบับสมบูรณ์](./open-spreadsheetml-aspose-cells-java/) -เรียนรู้วิธีเปิดและประมวลผลไฟล์ SpreadsheetML ใน Java อย่างมีประสิทธิภาพด้วย Aspose.Cells คู่มือฉบับสมบูรณ์นี้ครอบคลุมถึงการตั้งค่า การใช้งาน และการแก้ไขปัญหา +เรียนรู้วิธีเปิดและประมวลผลไฟล์ SpreadsheetML ใน Java อย่างมีประสิทธิภาพด้วย Aspose.Cells คู่มือฉบับสมบูรณ์นี้ครอบคลุมถึงการตั้งค่า การใช้งานและการแก้ไขปัญหา ### [วิธีการดึงข้อมูลเวอร์ชัน Aspose.Cells ใน Java: คำแนะนำทีละขั้นตอน](./retrieve-aspose-cells-version-java-guide/) เรียนรู้วิธีตรวจสอบเวอร์ชันของ Aspose.Cells ในโปรเจ็กต์ Java ของคุณด้วยคู่มือฉบับสมบูรณ์นี้ รับรองความเข้ากันได้และใช้ประโยชน์จากฟีเจอร์ใหม่ ๆ อย่างมีประสิทธิภาพ diff --git a/cells/thai/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/thai/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..5ec536523c --- /dev/null +++ b/cells/thai/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-03-01 +description: สร้างเวิร์กบุ๊กที่มีลิขสิทธิ์อย่างรวดเร็วด้วย Aspose.Cells Java. เรียนรู้วิธีให้ลิขสิทธิ์กับ + Aspose, ตั้งค่าลิขสิทธิ์ Aspose สำหรับ Java และอ่านไฟล์ Excel ด้วย Aspose ในบทเรียนเดียว. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: th +og_description: สร้างเวิร์กบุ๊กที่มีลิขสิทธิ์โดยใช้ Aspose.Cells Java. คู่มือนี้แสดงวิธีการให้ลิขสิทธิ์กับ + Aspose, ตั้งค่าลิขสิทธิ์ Aspose สำหรับ Java และอ่านไฟล์ Excel ด้วย Aspose. +og_title: สร้างสมุดงานที่มีใบอนุญาต – บทแนะนำ Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: สร้างเวิร์กบุ๊กที่มีลิขสิทธิ์ – คู่มือ Aspose.Cells Java ฉบับเต็ม +url: /th/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้างเวิร์กบุ๊กที่มีใบอนุญาต – คู่มือเต็ม Aspose.Cells สำหรับ Java + +เคยสงสัยไหมว่าจะแบบ **create licensed workbook** อย่างไรโดยไม่เจอข้อผิดพลาดเรื่องใบอนุญาต? คุณไม่ได้เป็นคนเดียว—นักพัฒนาหลายคนเจออุปสรรคนี้เมื่อติดตั้ง Aspose.Cells ครั้งแรก ข่าวดีคือ? วิธีแก้ง่ายและคู่มือนี้จะพาคุณผ่านขั้นตอนทีละขั้นตอน. + +ในไม่กี่นาทีคุณจะรู้ **how to license Aspose**, อย่างแม่นยำ **set Aspose license Java**, และพร้อมที่จะ **read Excel with Aspose** สำหรับงานจริงเช่นการทำรายงานหรือการย้ายข้อมูล ไม่มีการอ้างอิงที่คลุมเครือ มีเพียงตัวอย่างที่สมบูรณ์และสามารถรันได้ที่คุณสามารถคัดลอก‑วางได้ทันที. + +--- + +## สิ่งที่คุณต้องการ + +- Java 17 หรือใหม่กว่า (รุ่นเสถียรล่าสุดทำงานดีที่สุด) +- Aspose.Cells for Java 23.9 (หรือเวอร์ชันล่าสุดใดก็ได้) +- ไฟล์ใบอนุญาต Aspose.Cells ของคุณ (`Aspose.Cells.Java.lic`) +- IDE หรือเครื่องมือสร้างที่คุณถนัด (Maven, Gradle, หรือ `javac` ธรรมดา) + +หากรายการใดฟังดูแปลกใหม่ ไม่ต้องกังวล—แต่ละรายการจะอธิบายในขั้นตอนต่อไป + +--- + +## ขั้นตอน 1: Add Aspose.Cells Dependency + +ก่อนที่คุณจะ **create licensed workbook** ได้ ไลบรารีต้องอยู่ใน classpath ของคุณ ตัวอย่างสำหรับ Maven มีดังนี้: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +สำหรับ Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro tip:** หากคุณใช้การคอมไพล์ด้วย `javac` ธรรมดา เพียงวาง JAR ลงในโฟลเดอร์ `libs/` แล้วเพิ่มลงในแฟล็ก `-cp`. + +--- + +## ขั้นตอน 2: **How to License Aspose** – โหลดไฟล์ใบอนุญาต + +ทันทีที่คุณเรียกใช้ Aspose API ใด ๆ โดยไม่มีใบอนุญาต คุณจะเห็นลายน้ำในไฟล์ Excel ที่สร้างขึ้น เพื่อหลีกเลี่ยงสิ่งนี้ คุณต้อง **set Aspose license Java** ตั้งแต่ต้นโปรแกรมของคุณ + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Why this matters:** วัตถุ `License` บอก Aspose ให้ข้ามโหมดประเมินผล ลบลายน้ำและเปิดใช้งาน API ทั้งหมด หากเส้นทางไม่ถูกต้อง จะเกิดข้อยกเว้น—ดังนั้นคุณจะทราบทันที + +--- + +## ขั้นตอน 3: **Create Licensed Workbook** – สร้างไฟล์ Excel + +เมื่อใบอนุญาตถูกตั้งค่าแล้ว คุณสามารถสร้างอ็อบเจกต์ **create licensed workbook** ได้อย่างปลอดภัย ตัวอย่างต่อไปนี้เป็นตัวอย่างที่เล็กที่สุดแต่สมบูรณ์ ซึ่งยังแสดงการ **read Excel with Aspose** ต่อไป + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**สิ่งที่ทำ:** + +1. เรียกยูทิลิตี้จาก **ขั้นตอน 2** เพื่อ **set Aspose license Java**. +2. สร้าง `Workbook` ใหม่ – เป็นแกนหลักของการทำ **create licensed workbook**. +3. เขียนตารางขนาดเล็ก บันทึกเป็น XLSX แล้วอ่านกลับทันทีเพื่อพิสูจน์ว่า **read Excel with Aspose** ทำงานโดยไม่มีลายน้ำ. + +Running the program prints: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +หากคุณเปิดไฟล์ที่สร้างขึ้น คุณจะเห็นสเปรดชีตที่สะอาดไม่มีลายน้ำของ Aspose—เป็นหลักฐานว่าใบอนุญาตทำงาน + +--- + +## ขั้นตอน 4: ปัญหาที่พบบ่อยและกรณีขอบ + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **LicenseNotFoundException** | เส้นทางผิดหรือไฟล์หาย. | ใช้เส้นทางแบบ absolute หรือโหลดไฟล์จาก resources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR ของ Aspose ไม่อยู่ใน classpath. | ตรวจสอบ dependency ของ Maven/Gradle หรือเพิ่ม JAR ด้วยตนเอง. | +| **Saving fails on Windows** | โฟลเดอร์ปลายทางไม่มีอยู่. | ตรวจสอบให้แน่ใจว่าได้สร้างไดเรกทอรี `output/` (`new File("output").mkdirs();`). | +| **Reading older .xls files** | `SaveFormat` เริ่มต้นอาจไม่รองรับรูปแบบเก่า. | ใช้ `SaveFormat.XLS` เมื่อบันทึก หรือให้ Aspose ตรวจจับอัตโนมัติขณะโหลด. | + +> **Watch out for:** หากคุณทำการดีพลอยไปยังเซิร์ฟเวอร์ ไฟล์ใบอนุญาตควรอยู่ด้านนอกโฟลเดอร์รากของเว็บ‑แอปเพื่อป้องกันการเปิดเผยโดยบังเอิญ. + +--- + +## ขั้นตอน 5: ตรวจสอบใบอนุญาตแบบโปรแกรม (ทางเลือก) + +บางครั้งคุณอาจต้องการตรวจสอบสองครั้งว่าใบอนุญาตโหลดอย่างถูกต้องก่อนทำการประมวลผลหนัก + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +คุณสามารถเรียก `LicenseChecker.isLicensed("...")` และยกเลิกถ้าผลลัพธ์เป็น `false`. สิ่งนี้เพิ่มความปลอดภัยเพิ่มเติม โดยเฉพาะใน pipeline ของ CI/CD. + +--- + +## ภาพรวมโดยภาพ + +![แผนภาพแสดงกระบวนการตั้งค่าใบอนุญาตจนถึงการสร้างและอ่านเวิร์กบุ๊ก](create-licensed-workbook-diagram.png "สร้างเวิร์กบุ๊กที่มีใบอนุญาต") + +*ข้อความแทนภาพ:* **แผนภาพสร้างเวิร์กบุ๊กที่มีใบอนุญาต** – แสดงขั้นตอนการตั้งค่าใบอนุญาต Aspose, สร้างเวิร์กบุ๊ก, และอ่าน Excel. + +--- + +## สรุป + +ตอนนี้คุณมีโซลูชันครบวงจรสำหรับ **create licensed workbook** ด้วย Aspose.Cells สำหรับ Java เราได้อธิบาย **how to license Aspose**, แสดงโค้ด **set Aspose license Java** อย่างละเอียด และให้คุณดูตัวอย่างสั้น ๆ ของ **read Excel with Aspose** เพื่อยืนยันว่าทุกอย่างทำงาน + +ต่อไปคุณอาจอยากสำรวจ: + +- การจัดรูปแบบเซลล์ (ฟอนต์, สี) – เหมาะสำหรับรายงานระดับมืออาชีพ. +- การส่งออกเป็น CSV หรือ PDF – Aspose รองรับหลายรูปแบบโดยพร้อมใช้งาน. +- การทำงานกับชุดข้อมูลขนาดใหญ่ – ใช้ `WorkbookDesigner` สำหรับการเทมเพลต. + +ลองทำตามได้เลย หากเจอปัญหาใด ๆ สามารถแสดงความคิดเห็นด้านล่างได้ ขอให้สนุกกับการเขียนโค้ด! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/thai/java/ole-objects-embedded-content/_index.md b/cells/thai/java/ole-objects-embedded-content/_index.md index 0e54452482..4c66ab3d8d 100644 --- a/cells/thai/java/ole-objects-embedded-content/_index.md +++ b/cells/thai/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ ### [ลบ ActiveX Controls ออกจาก Excel ด้วย Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) บทช่วยสอนเกี่ยวกับโค้ดสำหรับ Aspose.Words Java - +### [วิธีฝังฟอนต์ – คู่มือฉบับสมบูรณ์สำหรับการส่งออก HTML, XPS และ OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +เรียนรู้วิธีฝังฟอนต์เมื่อต้องการส่งออกเป็น HTML, XPS และ OLE ด้วย Aspose.Cells สำหรับ Java ## แหล่งข้อมูลเพิ่มเติม diff --git a/cells/thai/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/thai/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..0a98141e38 --- /dev/null +++ b/cells/thai/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-01 +description: เรียนรู้วิธีฝังฟอนต์ใน HTML และรูปแบบอื่น ๆ คำแนะนำแบบทีละขั้นตอนที่ครอบคลุมการฝังฟอนต์ใน + HTML, การแปลง Excel เป็น HTML, วิธีส่งออก OLE, และการแปลง Excel เป็น XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: th +og_description: วิธีฝังแบบอักษรใน HTML, XPS และการส่งออก OLE เรียนรู้กระบวนการทำงานทั้งหมด + ดูโค้ด Java ที่รันได้ และเชี่ยวชาญการฝังแบบอักษรใน HTML สำหรับการแปลง Excel +og_title: วิธีฝังฟอนต์ – บทเรียน Java ฉบับเต็ม +tags: +- Aspose.Cells +- Java +- Document Export +title: วิธีฝังฟอนต์ – คู่มือฉบับสมบูรณ์สำหรับการส่งออก HTML, XPS และ OLE +url: /th/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีฝังฟอนต์ – คู่มือฉบับสมบูรณ์สำหรับ HTML, XPS และการส่งออก OLE + +เคยสงสัย **วิธีฝังฟอนต์** เมื่อคุณแปลงไฟล์ Excel ไปเป็นหน้าเว็บหรือเอกสารที่พิมพ์ได้หรือไม่? คุณไม่ได้เป็นคนเดียวที่เจอปัญหา นักพัฒนาหลายคนเจออุปสรรคเมื่อตัวผลลัพธ์ดูดีบนเครื่องของตนเองแต่พังบนเครื่องอื่นเพราะฟอนต์ที่ต้องการหายไป + +ในบทแนะนำนี้เราจะเดินผ่านสถานการณ์จริงโดยใช้ Aspose.Cells for Java: เราจะฝังฟอนต์ใน HTML, รักษา emoji variation selectors ขณะแปลงเป็น XPS, และแม้กระทั่งทำให้วัตถุ OLE สามารถแก้ไขได้เมื่อส่งออกเป็น PPTX. เมื่อจบคุณจะได้วิธีแก้ปัญหาแบบคัดลอก‑วางที่ตอบคำถาม “how to embed fonts” พร้อมกับครอบคลุม **embed fonts in html**, **convert excel to html**, **how to export ole**, และ **convert excel to xps**. + +## ข้อกำหนดเบื้องต้น + +- Java 17 (หรือ JDK เวอร์ชันล่าสุด) +- Aspose.Cells for Java 25.x หรือใหม่กว่า +- IDE สำหรับพัฒนา (IntelliJ IDEA, Eclipse, หรือ VS Code) +- ความคุ้นเคยพื้นฐานกับโครงสร้างข้อมูลของ Excel + +ไม่ต้องใช้บริการภายนอก—ทุกอย่างทำงานบนเครื่องของคุณ + +## ภาพรวมของโซลูชัน + +1. **สร้างเวิร์กบุ๊ก** และใช้ฟังก์ชัน `WRAPCOLS` เพื่อแปลงช่วงข้อมูลแนวตั้งให้เป็นเลย์เอาต์สามคอลัมน์ +2. **บันทึกเวิร์กบุ๊กเป็น XPS** พร้อมเปิดใช้งานฟอนต์ variation selectors เพื่อให้ emoji คงอยู่ +3. **ส่งออกเป็น HTML** พร้อมฝังฟอนต์, รับประกันว่าหน้าจะดูเหมือนกันทุกที่ +4. **ส่งออกเวิร์กบุ๊กที่มีวัตถุ OLE ไปเป็น PPTX**, รักษาความสามารถในการแก้ไขได้ +5. **ใช้เทมเพลต Smart Marker** ที่แสดงการผูกข้อมูลแบบ master‑detail + +แต่ละขั้นตอนแยกเป็นส่วน H2 ของตัวเอง ทำให้คู่มืออ่านง่ายสำหรับทั้งเครื่องมือค้นหาและผู้ช่วย AI + +![How to embed fonts illustration](image.png "how to embed fonts") + +*Image alt text: how to embed fonts diagram showing the workflow from Excel to HTML, XPS, and PPTX.* + +--- + +## ขั้นตอนที่ 1 – สร้างเวิร์กบุ๊กและใช้ WRAPCOLS (ทำไมขั้นตอนนี้สำคัญสำหรับ embed fonts in html) + +ก่อนที่เราจะพูดถึงการฝังฟอนต์ เราต้องมีเวิร์กบุ๊กที่มีข้อมูลจริง ฟังก์ชัน `WRAPCOLS` เป็นวิธีที่สะดวกในการแยกคอลัมน์เดียวเป็นหลายคอลัมน์, ซึ่งมักทำให้ HTML สุดท้ายอ่านง่ายขึ้น + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**ทำไมต้องทำขั้นตอนนี้?** +การเรียก `WRAPCOLS` จะสร้างช่วงหลายคอลัมน์ที่ต่อมาจะปรากฏใน HTML เป็นตาราง. เมื่อเราฝังฟอนต์ใน HTML, การจัดรูปแบบของตารางจะอิงกับฟอนต์ที่ฝังไว้, ทำให้การแสดงผลสอดคล้องกันในทุกเบราว์เซอร์ + +--- + +## ขั้นตอนที่ 2 – บันทึกเวิร์กบุ๊กเป็น XPS พร้อมรักษา Emoji (convert excel to xps) + +หากคุณต้องการรูปแบบพร้อมพิมพ์, XPS เป็นตัวเลือกที่ดี. อย่างไรก็ตาม, เอกสารสมัยใหม่มักมี emoji หรือสัญลักษณ์ที่ใช้ variation selectors. การเปิด `EnableFontVariationSelectors` จะทำให้ตัวอักษรเหล่านั้นคงอยู่หลังการแปลง + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**ผลลัพธ์ที่ได้:** +ไฟล์ XPS ที่แสดง emoji ที่ฝังไว้ได้อย่างแม่นยำตามเวิร์กบุ๊กต้นฉบับ. สิ่งนี้ตอบสนองความต้องการ **convert excel to xps** และแสดงให้เห็นว่าการจัดการฟอนต์ไม่ได้จำกัดแค่ HTML เท่านั้น + +--- + +## ขั้นตอนที่ 3 – ส่งออกเป็น HTML พร้อมฝังฟอนต์ (how to embed fonts & embed fonts in html) + +ตอนนี้เรามาถึงหัวใจของบทแนะนำ: **how to embed fonts** เมื่อแปลง Excel เป็น HTML. Aspose.Cells ให้เราฝังฟอนต์โดยตรงลงในไฟล์ HTML ที่สร้างขึ้น, ไม่ต้องพึ่งไฟล์ฟอนต์ภายนอก + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**วิธีการทำงาน:** +`setEmbedFonts(true)` บอกเรนเดอร์ให้อ่านไฟล์ฟอนต์ที่ใช้ในเวิร์กบุ๊กและฝังเป็นกฎ `@font-face` ที่เข้ารหัสเป็น Base64 ภายในแท็ก ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +สังเกตกฎ `@font-face`—นี่คือคำตอบที่เป็นรูปธรรมสำหรับ **embed fonts in html**. + +--- + +## ขั้นตอนที่ 4 – ส่งออกเวิร์กบุ๊กที่มีวัตถุ OLE ไปเป็น PPTX (how to export ole) + +รายงานธุรกิจหลายแบบฝังเอกสาร Word, PDF, หรือเวิร์กบุ๊ก Excel อื่นเป็นวัตถุ OLE. เมื่อคุณส่งออกเวิร์กบุ๊กดังกล่าวไปเป็น PowerPoint, บ่อยครั้งที่ความสามารถในการแก้ไขวัตถุจะหายไป. Aspose.Cells รักษาความสามารถในการแก้ไขโดยอัตโนมัติ + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**ทำไมขั้นตอนนี้สำคัญ:** +หากคุณกำลังมองหา **how to export ole**, โค้ดส่วนนั้นแสดงการเรียก API ที่ตรงประเด็น. สไลด์ PowerPoint ที่ได้จะมีวัตถุ OLE เป็นคอมโพเนนต์ที่สามารถดับเบิล‑คลิกเพื่อแก้ไขได้—ไม่ต้องทำการประมวลผลเพิ่มเติม + +--- + +## ขั้นตอนที่ 5 – ใช้เทมเพลต Smart Marker (master‑detail) และสรุปการสาธิต + +Smart Markers ช่วยให้คุณผูกแหล่งข้อมูล (Map, JSON, DataTable) โดยตรงกับเทมเพลต Excel. ตัวอย่างย่อด้านล่างพิมพ์แถว master‑detail + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**สิ่งที่คุณเห็น:** +เวิร์กบุ๊กใหม่ (`smartMarkerResult.xlsx`) ที่ placeholder ของเทมเพลตถูกแทนที่ด้วยข้อมูล. ขั้นตอนนี้ไม่ได้เกี่ยวกับฟอนต์โดยตรง, แต่ทำให้บทแนะนำครบวงจรโดยแสดงกระบวนการรายงานทั่วไปที่มักมาก่อนการส่งออก **embed fonts in html** + +--- + +## ข้อผิดพลาดทั่วไป & เคล็ดลับมืออาชีพ (เพื่อให้การฝังฟอนต์สำเร็จ) + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| ฟอนต์หายไปในไฟล์ HTML | เวิร์กบุ๊กใช้ฟอนต์ระบบที่ไม่ได้ติดตั้งบนเซิร์ฟเวอร์ | ใช้ `Workbook.getSettings().setDefaultFont("Arial")` ก่อนโหลดข้อมูล, หรือฝังไฟล์ฟอนต์ที่ต้องการด้วยตนเอง | +| HTML มีขนาดใหญ่ | การฝังฟอนต์หลายตัวที่มีขนาดใหญ่ทำให้ไฟล์บวม | จำกัดการฝังเฉพาะฟอนต์ที่ใช้จริง: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)` | +| Emoji หายหลังแปลงเป็น XPS | Variation selectors ถูกตัดออกโดยค่าเริ่มต้น | เปิด `settings.setEnableFontVariationSelectors(true)` ตามที่แสดงในขั้นตอน 2 | +| วัตถุ OLE กลายเป็นภาพคงที่ใน PPTX | เวิร์กบุ๊กถูกบันทึกด้วย `setSuppressOLEObjects(true)` | ตรวจสอบให้แน่ใจว่า **ไม่** กดปิดการแสดง OLE objects เมื่อบันทึกเป็น PPTX | + +--- + +## การตรวจสอบผลลัพธ์ + +1. เปิด `embeddedFonts.html` ใน Chrome/Firefox. ตารางควรแสดงด้วยฟอนต์ที่ฝังไว้ (เช่น Arial) แม้ฟอนต์นั้นจะไม่ได้ติดตั้งบนเครื่อง +2. เปิด `withVariations.xps` ใน Windows XPS Viewer. Emoji เช่น 👍 ควรแสดงอย่างถูกต้อง +3. เปิด `oleEditable.pptx` ใน PowerPoint. ดับเบิล‑คลิกรูป OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/turkish/java/excel-import-export/_index.md b/cells/turkish/java/excel-import-export/_index.md index d8cfefb34d..ee526ebbcb 100644 --- a/cells/turkish/java/excel-import-export/_index.md +++ b/cells/turkish/java/excel-import-export/_index.md @@ -37,6 +37,8 @@ Aspose.Cells for Java kullanarak Excel veri dışa aktarma yöntemlerinin potans Java için Aspose.Cells kullanarak verileri CSV formatına nasıl aktaracağınızı öğrenin. Sorunsuz CSV aktarımı için kaynak kodlu adım adım kılavuz. ### [Excel'i PDF'e Aktarma](./exporting-excel-to-pdf/) Aspose.Cells for Java kullanarak Excel dosyalarını zahmetsizce PDF'ye nasıl aktaracağınızı öğrenin. Adım adım kılavuzumuz süreci basitleştirir. Bugün dönüştürmeye başlayın! +### [Çalışma Kitabından PDF Oluşturma – Tam Java Rehberi](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Aspose.Cells for Java ile bir çalışma kitabından PDF oluşturmayı adım adım öğrenin. Pratik örneklerle süreci kolaylaştırın. ### [Excel'i XML'e Aktar Java](./export-excel-to-xml-java/) Java'da Aspose.Cells for Java ile Excel'i XML'e nasıl aktaracağınızı öğrenin. Sorunsuz veri dönüşümü için kaynak kodlu adım adım kılavuz. ### [Excel'den Veri Aktarımı](./data-import-from-excel/) @@ -47,6 +49,8 @@ Aspose.Cells for Java kullanarak Excel verilerini JSON'a nasıl aktaracağınız Bu kapsamlı adım adım kılavuzla Java için Aspose.Cells'i kullanarak Excel içe aktarma veri doğrulamasını nasıl uygulayacağınızı öğrenin. Veri doğruluğunu sağlayın ve kullanıcı deneyimini geliştirin. ### [Excel'i HTML Java'ya Aktar](./export-excel-to-html-java/) Aspose.Cells for Java kullanarak Excel'i Java'da HTML'ye nasıl aktaracağınızı öğrenin. Excel dosyalarınızı zahmetsizce HTML'ye dönüştürmek için kaynak kodlu bu adım adım kılavuzu izleyin. +### [Java ile CSV'ye Aktarma – Önemli Basamakları Ayarlama ve Aralığı CSV'ye Aktarma](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Aspose.Cells for Java kullanarak CSV'ye önemli basamakları ayarlama ve belirli bir aralığı dışa aktarmayı öğrenin. Adım adım kılavuz. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/turkish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..e08eebc14a --- /dev/null +++ b/cells/turkish/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,301 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells for Java ile PDF oluşturma ve çalışma kitabını PDF olarak + kaydetme, Excel'i HTML’ye dışa aktarma ve genişletme işlevini kullanma. Adım adım + kod dahil. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: tr +og_description: Aspose.Cells for Java kullanarak bir çalışma kitabından PDF nasıl + oluşturulur. Çalışma kitabını PDF olarak kaydetmeyi, Excel'i HTML’ye dışa aktarmayı + ve EXPAND işlevini kullanmayı öğrenin. +og_title: Çalışma Kitabından PDF Oluşturma – Java Öğreticisi +tags: +- Aspose.Cells +- Java +- PDF generation +title: Bir Çalışma Kitabından PDF Oluşturma – Tam Java Rehberi +url: /tr/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Bir Çalışma Kitabından PDF Oluşturma – Tam Java Rehberi + +Hiç **PDF oluşturmayı** doğrudan bir Excel çalışma kitabından üçüncü‑taraf dönüştürücülerle uğraşmadan nasıl yapabileceğinizi merak ettiniz mi? Tek başınıza değilsiniz. Birçok geliştirici, hızlı bir PDF dışa aktarımı, HTML önizlemesi veya şık dizi formüllerine aynı anda ihtiyaç duyduklarında bir çıkmaza giriyor. + +Bu öğreticide, tam olarak bunu yapan tek bir, bağımsız Java programını adım adım inceleyeceğiz. **Çalışma kitabını PDF olarak kaydedecek**, **Excel'i HTML’ye dışa aktarırken dondurulmuş satırları koruyacak** ve bir çalışma sayfası içinde **EXPAND işlevini** nasıl kullanacağınızı göstereceğiz. Sonunda, herhangi bir Maven ya da Gradle projesine ekleyebileceğiniz çalıştırılabilir bir proje elde edeceksiniz. + +> **İpucu:** Aşağıdaki tüm kodlar Aspose.Cells 23.10 (veya daha yeni) sürümüyle çalışır. Daha eski bir sürüm kullanıyorsanız, bazı metot adları hafifçe farklı olabilir. + +--- + +## Önkoşullar + +- **Java 17** (veya herhangi bir LTS sürümü) yüklü ve yapılandırılmış. +- **Aspose.Cells for Java** kütüphanesi. `pom.xml` dosyanıza aşağıdaki Maven bağımlılığını ekleyin: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Tercih ettiğiniz bir IDE ya da metin editörü (IntelliJ IDEA, VS Code, Eclipse…). + +Harici API’ler, web servisleri yok—sadece saf Java ve Aspose.Cells SDK’sı. + +--- + +## Çözümün Genel Bakışı + +Uygulamayı **yedi mantıksal adıma** böleceğiz: + +1. Bir çalışma kitabı oluşturun ve **EXPAND** işlevini gösterin. +2. Yazı tipi varyasyon seçicilerini etkinleştirin ve **çalışma kitabını PDF olarak kaydedin**. +3. Aynı çalışma kitabını HTML’ye dışa aktarırken dondurulmuş satırları koruyun. +4. Koşullu metin eklemek için bir `IF`‑parametresi içeren Smart Marker kullanın. +5. Hiyerarşik veri için bir master‑detail Smart Marker uygulayın. +6. Base‑64‑kodlu görüntüler içeren bir Markdown dosyası yükleyin. +7. Hizalama ve kenarlıklar için GridJs seçeneklerini yapılandırın, ardından verileri ekleyin. + +Her adım, `main` metodunu düzenli tutmak ve **ne** yaptığımızı değil, **neden** yaptığımızı göstermek için kendi metodunda sarılmıştır. + +--- + +## Adım 1 – Bir Çalışma Kitabı Oluşturun ve EXPAND İşlevini Kullanın + +**EXPAND** işlevi, Office 365’te tanıtılan yeni bir dinamik‑dizi formülüdür. Hücreleri manuel olarak kopyalamadan bir aralığı daha büyük bir alana yaymanıza olanak tanır. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Neden önemli:** +- `EXPAND` sonucu boşluklarla otomatik doldurur; bu, **çalışma kitabını PDF olarak kaydettiğinizde** PDF’nin temiz, dikdörtgen bir tablo göstermesini sağlar. +- `calculateFormula()` çağrısı, dışa aktarmadan önce formül motorunun çalışmasını garantiler. + +--- + +## Adım 2 – Yazı Tipi Varyasyon Seçicilerini Etkinleştirin ve **Çalışma Kitabını PDF Olarak Kaydedin** + +Gelişmiş tipografi (ör. emoji veya CJK varyasyon seçicileri) desteklemeniz gerekiyorsa, bu özelliği **kaydetmeden önce** açmalısınız. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Ana nokta:** Burada temel anahtar kelime **how to create pdf** burada yanıtlanıyor—ayarları yaptıktan sonra `workbook.save(..., SaveFormat.PDF)` çağrısıyla. + +--- + +## Adım 3 – **Excel'i HTML’ye Dışa Aktarın** ve Dondurulmuş Satırları Koruyun + +Çoğu paydaş hızlı bir web önizlemesi ister. Aspose.Cells HTML’ye dışa aktarabilir ve `setPreserveFrozenRows(true)` ile Excel’deki kaydırma deneyimini aynı tutar. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Neden önemlidir:** Dondurulmuş satırlar bir kullanılabilirlik lüksüdür; bunlar olmadan, sayfa aşağı kaydırıldığında başlık satırları kaybolur. + +--- + +## Adım 4 – IF‑Parametresiyle Smart Marker + +Smart Marker’lar, döngü yazmadan verileri bir şablona birleştirmenizi sağlar. `if`‑parametresi, işaretçi içinde doğrudan koşullu mantık ekler. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +Çıktı PDF’si **“VIP Customer: Acme Corp”** olarak görünecek çünkü `IsVIP` `true`. Bayrağı `false` yaparsanız **“Regular Customer: Acme Corp”** alırsınız—ekstra kod gerekmez. + +--- + +## Adım 5 – Hiyerarşik Bir Aralık Kullanarak Master‑Detail Smart Marker + +Üst‑alt veri (ör. siparişler ve satır öğeleri) olduğunda, master‑detail işaretçi manuel satır eklemeden işinizi kolaylaştırır. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Ne kazanırsınız:** Motor, her sipariş için master satırlarını genişletir ve detay satırlarını otomatik olarak altına yerleştirir—faturalar veya satın alma raporları için mükemmeldir. + +--- + +## Adım 6 – Base‑64 Görüntüler İçeren Bir Markdown Belgesi Yükleyin + +Kaynak veriniz Markdown’da (dokümantasyon hatlarında yaygın) ise, Aspose.Cells bunu doğrudan bir çalışma kitabına işleyebilir. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Köşe durum notu:** Base‑64 dizesi hatalıysa, Aspose görüntüyü atlayıp belgenin geri kalanını işlemeye devam eder—çökmez. + +--- + +## Adım 7 – GridJs Seçeneklerini Yapılandırın ve Veri Ekleyin + +GridJs, Aspose’un HTML’ye render edebildiği hafif bir JavaScript ızgarasıdır. Sayıları hizalamak ve kenarlık eklemek okunabilirliği artırır. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Neden önemlidir:** Doğru hizalama ve kenarlıklar, oluşturulan HTML’nin cilalı bir elektronik tablo gibi görünmesini sağlar—panolar için faydalıdır. + +--- + +## Hepsini Bir Araya Getirmek – `main` Metodu + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/turkish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/turkish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..48b23dae2a --- /dev/null +++ b/cells/turkish/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-01 +description: Tek bir net rehberde, anlamlı basamakları ayarlayıp dışa aktarım aralığını + belirlerken Java çalışma kitabından CSV'yi nasıl dışa aktaracağınızı öğrenin. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: tr +og_description: Java'da CSV dışa aktarmayı, anlamlı basamakları ayarlamayı ve aralığı + CSV'ye dışa aktarmayı pratik kod ve ipuçlarıyla ustalaşın. +og_title: Java ile CSV Nasıl Dışa Aktarılır – Tam Adım Adım Kılavuz +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Java ile CSV Nasıl Dışa Aktarılır – Önemli Basamakları Belirle ve Aralığı CSV'ye + Aktar +url: /tr/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java ile CSV Dışa Aktarma – Önemli Basamakları Ayarlama ve Aralığı CSV'ye Aktarma + +Hiç Java çalışma kitabından sayısal hassasiyeti kaybetmeden **csv nasıl dışa aktarılır** diye merak ettiniz mi? Belki hızlı bir `toString()` denediniz ve yuvarlama hatalarıyla dolu bir karmaşa ortaya çıktı. Bu, özellikle finansal veriler veya bilimsel sonuçlar için **önemli basamakları ayarlamanız** gerektiğinde yaygın bir sorundur. + +Bu öğreticide, **csv nasıl dışa aktarılır**, **önemli basamakları nasıl ayarlarsınız** ve verilerinizi düzenli tutarken **aralığı csv'ye nasıl dışa aktarırsınız** gösteren eksiksiz, çalıştırmaya hazır bir örnek göreceksiniz. Her satırı adım adım inceleyecek, API çağrılarının *neden* yapıldığını açıklayacak ve yaygın tuzaklardan kaçınmanız için ipuçları vereceğiz. Takip etmeniz gereken ekstra belgeler yok—bugün kopyalayıp yapıştırabileceğiniz bağımsız bir çözüm. + +## Öğrenecekleriniz + +- `setNumberSignificantDigits` ile bir çalışma kitabı oluşturma ve sayısal hassasiyeti yapılandırma. +- Belirli bir hücre aralığını güzel biçimlendirilmiş bir CSV dizesi olarak dışa aktarma. +- `DateTimeFormatInfo` kullanarak Japonya dönemi tarihlerini ayrıştırma. +- Dinamik‑dizi sonuçlarının güncel kalması için formülleri yeniden hesaplama. +- Bir pivot tabloyu PNG görüntüsü olarak render etme. +- Smart Marker kullanarak yorum ekleme ve sonunda çalışma kitabını kaydetme. + +Tüm bunlar, yazının yazıldığı sırada en yeni sürüm olan Aspose.Cells for Java kütüphanesi 23.12 ile yapılmaktadır. JAR dosyasını sınıf yolunuza eklediyseniz, hemen başlayabilirsiniz. + +--- + +## Adım 1: Bir Çalışma Kitabı Oluşturma ve **Önemli Basamakları Ayarlama** + +Herhangi bir şeyi dışa aktarmadan önce bir çalışma kitabı nesnesine ihtiyacımız var. Birçok geliştiricinin gözden kaçırdığı ilk şey sayısal hassasiyettir. Varsayılan olarak Aspose.Cells tam çift hassasiyetini (double precision) kullanır; bu da CSV'de uzun, yönetilemez dizelgelere yol açabilir. Önemli basamak sayısını ayarlamak, çıktıyı kısaltırken en önemli rakamları korur. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Neden önemli?** +`12345.6789` içeren bir hücreyi basamak sınırlaması olmadan dışa aktarırsanız, CSV tam değeri gösterir ve raporları kirletir. `setNumberSignificantDigits(5)` ile aynı hücre `12346` olur; bu genellikle iş kullanıcılarının beklediği sonuçtur. + +> **Pro ipucu:** Sütun bazında farklı hassasiyetler gerekiyorsa, global ayar yerine özel bir `Style` uygulayabilirsiniz. + +--- + +## Adım 2: **Aralığı CSV'ye Aktarma** – Biçimlendirme Önemlidir + +Çalışma kitabı hazır olduğuna göre, dikdörtgen bir veri bloğunu alıp CSV dizesine dönüştürelim. Ayrıca her sayının iki ondalık basamak (`0.00`) ile hizalanmasını sağlayacağız. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +`exportDataTable` çağrısı işi halleder. `exportAsString` ayarını yaptığımız için metod bir `String` döndürür; bu dizeyi yazdırabilir, dosyaya kaydedebilir veya HTTP üzerinden gönderebilirsiniz. **Aralığı csv'ye aktarma** adımı, daha önce tanımladığımız global `setNumberSignificantDigits` ayarını da dikkate alır; böylece sayılar hem beş önemli basamağa yuvarlanır *hem* iki ondalık basamakla gösterilir. + +**Beklenen çıktı (kısaltılmış):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Sık sorulan soru:** *Farklı bir ayırıcı, örneğin noktalı virgül istersem ne yapmalıyım?* +> Dışa aktarmadan önce `exportOptions.setSeparator(";")` çağrısını ekleyin. + +--- + +## Adım 3: Japonya Dönemi Tarihini Ayrıştırma (Ekstra Kullanım) + +CSV ile doğrudan ilgili olmasa da, birçok Excel sayfası yerel tarih formatları içerir. `"R3/04/01"` gibi bir Japonya dönemi dizesini standart bir `DateTime` nesnesine nasıl dönüştüreceğinizi gösteriyoruz. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Çıktı: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Neden ekledik?** +CSV dışa aktarımınız, ISO‑8601 tarihleri bekleyen alt sistemlere veri sağlıyorsa, önce yerel formatları normalleştirmeniz gerekir. Bu kod parçacığı *nasıl* ve *neden* yapılacağını tek bir yerde gösterir. + +--- + +## Adım 4: Formülleri Yeniden Hesaplama – Dinamik‑Dizi Sonuçlarını Güncel Tutma + +Çalışma kitabınızda formüller varsa (ör. `=SUM(A1:A10)`), ayarları değiştirdikten sonra otomatik olarak güncellenmezler. `calculateFormula` çağrısı tam bir yeniden hesaplama yapar ve dışa aktarılan CSV'nin en son değerleri yansıtmasını sağlar. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Dikkat:** Büyük çalışma kitapları yeniden hesaplama sırasında belirgin bir süre alabilir. Performans‑kritik senaryolar için kapsamı sınırlamak amacıyla `calculateFormula(FormulaCalculationOptions)` kullanmayı düşünün. + +--- + +## Adım 5: İlk Pivot Tablosunu PNG Görüntüsü Olarak Render Etme + +Bazen CSV'nin yanında bir pivot tablonun görsel bir anlık görüntüsüne de ihtiyaç duyarsınız. Aşağıdaki kod, ilk çalışma sayfasındaki ilk pivot tabloyu PNG dosyasına render eder. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**İpucu:** Çalışma kitabınızda hâlâ bir pivot yoksa, programatik olarak bir tane oluşturabilirsiniz—hızlı bir örnek için Aspose.Cells belgelerine bakın. + +--- + +## Adım 6: Smart Marker Kullanarak Yorum Yazma ve Çalışma Kitabını Kaydetme + +Smart Marker, basit yer tutucularla hücrelere dinamik içerik eklemenizi sağlar. Burada, belirli bir hücreye “Reviewed by QA” gibi bir yorum yazıp ardından çalışma kitabını kaydediyoruz. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +`${Comment}` yer tutucusu, sayfadaki herhangi bir hücreye (ör. `A1`) konulabilir. `apply` çalıştırıldığında, yer tutucu sağlanan değerle değiştirilir. + +**Sonuç:** `output/commented.xlsx` dosyasında yorumun bulunduğu bir çalışma kitabı, ayrıca daha önce oluşturulan `pivot.png` ve konsola yazdırılan CSV dizesi yer alır. + +--- + +## Tam Çalışan Örnek + +Hepsini bir araya getirdiğimizde, derleyip çalıştırabileceğiniz tam program aşağıdadır: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Beklenen Konsol Çıktısı + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Ayrıca diskte `output/pivot.png` (pivot varsa) ve `output/commented.xlsx` dosyalarını bulacaksınız. + +--- + +## Sık Sorulan Sorular & Kenar Durumları + +- **Doğrudan fiziksel bir CSV dosyasına dışa aktarabilir miyim?** + Evet. `exportAsString` bloğunu `dataRange.exportDataTable("output/data.csv", exportOptions);` ile değiştirin. + +- **Sayfam farklı bir sayı yerel ayarı (locale) kullanıyorsa ne yapmalıyım?** + Dışa aktarmadan önce `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` çağrısını ekleyin; bu ayar + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/turkish/java/excel-pivot-tables/_index.md b/cells/turkish/java/excel-pivot-tables/_index.md index 84fd5aac39..96e7d325fb 100644 --- a/cells/turkish/java/excel-pivot-tables/_index.md +++ b/cells/turkish/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Aspose.Cells for Java kullanarak Pivot Tablolarda hesaplanan alanların nasıl o Aspose.Cells for Java'da Pivot Table verilerinin nasıl yenileneceğini öğrenin. Verilerinizi zahmetsizce güncel tutun. ### [Pivot Tablo Stillerini Özelleştirme](./customizing-pivot-table-styles/) Aspose.Cells for Java API'de pivot tablo stillerini nasıl özelleştireceğinizi öğrenin. Görsel olarak çekici pivot tabloları kolayca oluşturun. +### [Java’da Pivot Tablosunu Kopyala – Koruyun, PPTX’e Aktarın](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Aspose.Cells for Java kullanarak pivot tablosunu kopyalayın, koruyun ve PPTX formatında dışa aktarın. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/turkish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..69aa685280 --- /dev/null +++ b/cells/turkish/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Java’da pivot tablosunu koruyarak kopyalama, ardından Excel’i PPTX’e + dışa aktarma, Excel Otomatik Filtreyi devre dışı bırakma ve JSON dizileri için Akıllı + İşaretleyici kullanma – tam adım adım rehber. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: tr +og_description: Java'da pivot tabloyu kopyala, pivot tanımını koru, PPTX'e dışa aktar, + AutoFilter'ı devre dışı bırak ve Smart Marker'ı kullan – geliştiriciler için tam + rehber. +og_title: Java’da Pivot Tablosunu Kopyala – Koruyun, PPTX’e Aktarın +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Java’da Pivot Tablosunu Kopyala – Koruyun, PPTX’e Aktarın +url: /tr/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java’da Pivot Tablosunu Kopyala – Koruyun, PPTX’e Dışa Aktarın + +Hiç bir çalışma kitabından diğerine **pivot tabloyu kopyalamak** zorunda kaldınız mı ve alttaki pivot tanımını kaybetmeden? Bu konuda yalnız değilsiniz. Gerçek dünyadaki birçok projede verileri taşımanız gerekir ve en son istediğiniz, çalışma zamanında hata veren kırık bir pivot olur. + +Bu öğreticide, sadece **pivot tabloyu kopyalamak** değil, aynı zamanda kopyalama sırasında **pivot tabloyu korumak**, **Excel’i PPTX’e dışa aktarmak**, **Excel AutoFilter’ı devre dışı bırakmak** ve **smart marker** kullanarak bir JSON dizisini tek bir hücreye yerleştirmek için eksiksiz bir çözüm üzerinden geçeceğiz. Sonunda, dört senaryoyu da kapsayan tek bir çalıştırılabilir Java programına sahip olacaksınız. + +## Önkoşullar + +- Java 8 ve üzeri (kod Java 11 ile de çalışır) +- Aspose.Cells for Java kütüphanesi (versiyon 23.9 veya üzeri) – Maven Central’dan edinebilirsiniz +- Pivot tablolar, tablolar ve metin kutuları gibi Excel kavramlarına temel aşinalık + +Eğer Aspose.Cells JAR dosyanız yoksa, `pom.xml` dosyanıza şunu ekleyin: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Şimdi, başlayalım. + +## Adım 1: Pivot Tablosunu Kopyala – Pivot Tanımını Korumak + +Bir pivot tablosunu barındıran hücre aralığını sadece kopyaladığınızda, pivot meta verileri genellikle geride kalır. Aspose.Cells, `copyRange` metodunu bir `CopyOptions` örneğiyle kullanarak tanımı bozulmadan tutmamıza olanak tanır. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Neden bu çalışır:** `CopyOptions`, Aspose.Cells’e pivot önbelleği ve alan ayarları dahil her şeyi taşımayı söyler. Bu olmadan, sadece düz değerler elde eder ve pivotu yenileme yeteneğini kaybedersiniz. + +**Köşe durum:** Kaynak pivotunuz sabit kodlanmış `A1:G20` aralığından daha genişse, aralığı buna göre ayarlayın veya dinamik olarak almak için `sourceSheet.getPivotTables().get(0).getDataRange()` kullanın. + +![Pivot tablo kopyalama örneği](image.png "Java’da pivot tablo kopyalama") + +*Görsel alt metni: Java’da pivot tablo diagramı* + +## Adım 2: Düzenlenebilir Metin Kutulu Çalışma Sayfasını PPTX’e Dışa Aktar + +Çoğu zaman bir Excel sayfasını PowerPoint slaytına dönüştürmeniz gerekir—örneğin sunulması gereken haftalık panolar. Aspose.Cells, metin kutuları gibi şekilleri koruyarak bir çalışma sayfasını doğrudan PPTX dosyası olarak kaydedebilir. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Ne oluyor:** `SaveFormat.PPTX` ile `save` yöntemi, tüm sayfayı, içinde bulunan düzenlenebilir TextBox dahil, bir PowerPoint slaytına dönüştürür. PPTX’i PowerPoint’te açtığınızda kutu içindeki metin düzenlenebilir kalır. + +**İpucu:** Birden fazla sayfanız varsa ve sadece belirli birini istiyorsanız, kaydetmeden önce diğerleri için `wb.getWorksheets().removeAt(index)` metodunu çağırın. + +## Adım 3: Bir Tablodan Excel AutoFilter’ı Devre Dışı Bırak + +AutoFilter son kullanıcılar için kullanışlıdır, ancak bazen programatik olarak kapatmanız gerekir—belki verileri dışa aktarmadan önce ya da temiz bir rapor oluştururken. İşte bir Excel tablosunda **excel autofilter’ı devre dışı bırakma** yöntemi. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Bunun neden gerekli olabileceği:** AutoFilter’ı desteklemeyen formatlara (CSV veya PDF gibi) dışa aktarmak, rastgele filtre simgelerinin görünmesine neden olabilir. Devre dışı bırakmak temiz bir çıktı sağlar. + +**Yaygın tuzak:** Sayfada tablo yoksa, `getTables().get(0)` bir `IndexOutOfBoundsException` fırlatır. Üretim kodunda her zaman önce `sheet.getTables().size()` kontrol edin. + +## Adım 4: Smart Marker Kullan – JSON Dizisini Tek Hücre Değeri Olarak Ekle + +Smart Marker, Aspose’un şablon motorudur. Kullanışlı bir yöntem, tüm bir JSON dizisini tek bir hücre değeri olarak ele almaktır; bu, günlükleme veya yapılandırılmış veriyi aşağı akışa geçirmek için mükemmeldir. Bunu başarmak için **smart marker** kullanalım. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Nasıl çalışır:** Çalışma kitabındaki `${json}` işareti, `ArrayAsSingle` ayarını yaptığımız için tüm JSON dizesiyle değiştirilir. Bu seçenek olmadan, Aspose her dizi öğesini ayrı satırlara genişletmeye çalışır. + +**Varyasyon:** Diziyi satırlara bölmeniz gerekiyorsa, sadece `ArrayAsSingle` seçeneğini kaldırın ve Smart Marker’ın otomatik genişletmesine izin verin. + +## Tam Çalışan Örnek – Tüm Adımlar Birleştirildi + +Aşağıda, ele aldığımız tüm işlemleri bir araya getiren tek bir Java sınıfı bulunmaktadır. Bunu normal bir `main` metodu olarak çalıştırın; sadece dosya yollarını ortamınıza göre ayarlayın. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/turkish/java/getting-started/_index.md b/cells/turkish/java/getting-started/_index.md index 312c38df61..7e566745e0 100644 --- a/cells/turkish/java/getting-started/_index.md +++ b/cells/turkish/java/getting-started/_index.md @@ -38,6 +38,9 @@ Aspose.Words Java için bir kod eğitimi ### [Aspose.Cells Java Lisans Kurulumu ve Doğrulaması: Tam Kılavuz](./aspose-cells-java-license-setup-guide/) Kapsamlı kılavuzumuzla Aspose.Cells Java lisansınızı kurma ve doğrulama konusunda uzmanlaşın. Gelişmiş özelliklere zahmetsizce tam erişim sağlayın. +### [Lisanslı Çalışma Kitabı Oluşturma – Tam Aspose.Cells Java Kılavuzu](./create-licensed-workbook-full-aspose-cells-java-guide/) +Lisanslı bir çalışma kitabı oluşturmayı ve tam Aspose.Cells Java özelliklerini kullanmayı adım adım öğrenin. + ### [Java için Aspose.Cells: Excel Çalışma Kitaplarını Verimli Şekilde Nasıl Oluşturur ve Biçimlendiririm](./aspose-cells-java-workbook-creation-guide/) Java'da Aspose.Cells ile Excel çalışma kitabı oluşturma ve biçimlendirmeyi nasıl otomatikleştireceğinizi öğrenin. Bu kılavuz kurulum, çalışma kitabı düzenleme ve hücre biçimlendirme tekniklerini kapsar. diff --git a/cells/turkish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/turkish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..3e6b273237 --- /dev/null +++ b/cells/turkish/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Aspose.Cells Java ile lisanslı çalışma kitabını hızlıca oluşturun. Aspose'u + nasıl lisanslayacağınızı, Aspose lisansını Java’da nasıl ayarlayacağınızı ve Aspose + ile Excel’i nasıl okuyacağınızı tek bir öğreticide öğrenin. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: tr +og_description: Aspose.Cells Java kullanarak lisanslı bir çalışma kitabı oluşturun. + Bu kılavuz, Aspose'u nasıl lisanslayacağınızı, Aspose lisansını Java'ya nasıl ayarlayacağınızı + ve Aspose ile Excel'i nasıl okuyacağınızı gösterir. +og_title: Lisanslı Çalışma Kitabı Oluştur – Aspose.Cells Java Öğreticisi +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Lisanslı Çalışma Kitabı Oluştur – Aspose.Cells Java Tam Kılavuzu +url: /tr/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Lisanslı Çalışma Kitabı Oluşturma – Tam Aspose.Cells Java Rehberi + +Lisans hatalarıyla karşılaşmadan **lisanslı çalışma kitabı oluşturma** nasıl yapılır hiç merak ettiniz mi? Tek başınıza değilsiniz—birçok geliştirici Aspose.Cells ile ilk kez çalıştıklarında bu duvara çarpar. İyi haber? Çözüm basit ve bu rehber sizi adım adım yönlendirecek. + +Sadece birkaç dakika içinde **Aspose nasıl lisanslanır**, tam olarak **Aspose lisansını Java’da ayarlama** ve **Aspose ile Excel okuma** konularını öğrenecek, raporlama ya da veri taşıma gibi gerçek dünya görevleri için hazır olacaksınız. Belirsiz referanslar yok, sadece bugün kopyalayıp yapıştırabileceğiniz eksiksiz, çalıştırılabilir bir örnek. + +--- + +## Gereksinimler + +- Java 17 veya daha yeni (en son stabil sürüm en iyisidir) +- Aspose.Cells for Java 23.9 (veya herhangi bir yeni sürüm) +- Aspose.Cells lisans dosyanız (`Aspose.Cells.Java.lic`) +- Rahat olduğunuz bir IDE veya derleme aracı (Maven, Gradle veya düz `javac`) + +Eğer bunlardan biri size yabancı geliyorsa endişelenmeyin—her bir madde aşağıdaki adımlarda ele alınmıştır. + +--- + +## Adım 1: Aspose.Cells Bağımlılığını Ekleyin + +Lisanslı çalışma kitabı **oluşturabilmek** için kütüphane sınıf yolunuzda (classpath) olmalıdır. Maven ile şöyle görünür: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Gradle için: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Pro ipucu:** Düz bir `javac` derlemesi kullanıyorsanız, JAR dosyasını bir `libs/` klasörüne atın ve `-cp` bayrağına ekleyin. + +--- + +## Adım 2: **Aspose Nasıl Lisanslanır** – Lisans Dosyasını Yükleme + +Herhangi bir Aspose API'sini lisans olmadan çağırdığınız anda, oluşturulan Excel dosyasında bir filigran görürsünüz. Bunu önlemek için programınızın başında **Aspose lisansını Java’da ayarlamanız** gerekir. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Neden önemli:** `License` nesnesi Aspose'a değerlendirme modunu atlamasını, filigranları kaldırmasını ve tam API erişimini açmasını söyler. Yol yanlışsa bir istisna fırlatılır—böylece anında fark edersiniz. + +--- + +## Adım 3: **Lisanslı Çalışma Kitabı Oluştur** – Bir Excel Dosyası Oluşturma + +Lisans uygulandıktan sonra, güvenle **lisanslı çalışma kitabı oluşturma** nesneleri oluşturabilirsiniz. Aşağıda, daha sonra **Aspose ile Excel okuma** işlemini de gösteren minimal ama eksiksiz bir örnek bulunuyor. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Bunun yaptığı:** + +1. **Adım 2**'deki yardımcı programı **Aspose lisansını Java’da ayarlamak** için çağırır. +2. Yeni bir `Workbook` örneği oluşturur – **lisanslı çalışma kitabı oluşturma** işleminin çekirdeği. +3. Küçük bir tablo yazar, XLSX olarak kaydeder ve ardından hemen geri okuyarak **Aspose ile Excel okuma**'nın filigransız çalıştığını kanıtlar. + +Programı çalıştırdığınızda şu çıktı verir: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Eğer oluşturulan dosyayı açarsanız, Aspose filigranı olmayan temiz bir elektronik tablo göreceksiniz—lisansın aktif olduğunun kanıtı. + +--- + +## Adım 4: Yaygın Tuzaklar ve Kenar Durumları + +| Sorun | Neden Olur | Çözüm | +|-------|------------|-------| +| **LicenseNotFoundException** | Yol yanlış veya dosya eksik. | Mutlak bir yol kullanın veya dosyayı kaynaklardan (`getClass().getResourceAsStream`) yükleyin. | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | Aspose JAR sınıf yolunda (classpath) bulunmuyor. | Maven/Gradle bağımlılığını doğrulayın veya JAR'ı manuel olarak ekleyin. | +| **Saving fails on Windows** | Hedef klasör mevcut değil. | `output/` dizininin oluşturulduğundan emin olun (`new File("output").mkdirs();`). | +| **Reading older .xls files** | Varsayılan `SaveFormat` eski formatı desteklemeyebilir. | Kaydederken `SaveFormat.XLS` kullanın veya Aspose'un yüklemede otomatik algılamasına izin verin. | + +> **Dikkat edin:** Sunucuya dağıtım yapıyorsanız, lisans dosyasının web‑app kökünün dışında olması, yanlışlıkla ifşa edilmesini önler. + +--- + +## Adım 5: Lisansı Programatik Olarak Doğrulama (İsteğe Bağlı) + +Bazen ağır işlemler yapmadan önce lisansın doğru yüklendiğini iki kez kontrol etmek istersiniz. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +`LicenseChecker.isLicensed("...")` metodunu çağırabilir ve `false` dönerse işlemi iptal edebilirsiniz. Bu, özellikle CI/CD boru hatlarında ekstra bir güvenlik katmanı ekler. + +--- + +## Görsel Genel Bakış + +![Lisans uygulamadan çalışma kitabı oluşturma ve okuma akışını gösteren diyagram](create-licensed-workbook-diagram.png "lisanslı çalışma kitabı oluşturma") + +*Resim alt metni:* **lisanslı çalışma kitabı diyagramı** – Aspose lisansını uygulama, çalışma kitabı oluşturma ve Excel okuma adımlarını gösterir. + +--- + +## Sonuç + +Artık Aspose.Cells for Java kullanarak **lisanslı çalışma kitabı oluşturma** için eksiksiz, uçtan uca bir çözümünüz var. **Aspose nasıl lisanslanır** konusunu ele aldık, tam **Aspose lisansını Java’da ayarlama** kodunu gösterdik ve **Aspose ile Excel okuma**'yı hızlıca göstererek her şeyin çalıştığını doğruladık. + +Sonraki adımda şunları keşfetmek isteyebilirsiniz: + +- Hücreleri biçimlendirme (yazı tipleri, renkler) – profesyonel raporlar için harika. +- CSV veya PDF'ye dışa aktarma – Aspose birçok formatı kutudan çıkar çıkmaz destekler. +- Büyük veri setleriyle çalışma – şablonlama için `WorkbookDesigner` kullanın. + +Denemekten çekinmeyin, eğer bir sorunla karşılaşırsanız aşağıya yorum bırakın. Kodlamanın tadını çıkarın! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/turkish/java/ole-objects-embedded-content/_index.md b/cells/turkish/java/ole-objects-embedded-content/_index.md index a7ce6df19b..72849cef13 100644 --- a/cells/turkish/java/ole-objects-embedded-content/_index.md +++ b/cells/turkish/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Aspose.Cells for Java kullanarak Excel dosyalarındaki gömülü PowerPoint nesn ### [Aspose.Cells Java ile Excel'den ActiveX Denetimlerini Kaldırın](./remove-activex-controls-excel-aspose-cells-java/) Aspose.Words Java için bir kod eğitimi - +### [Yazı Tiplerini Gömme – HTML, XPS ve OLE Dışa Aktarım İçin Tam Kılavuz](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +HTML, XPS ve OLE dışa aktarma sırasında yazı tiplerini nasıl gömeceğinizi adım adım gösteren kapsamlı bir rehber. ## Ek Kaynaklar diff --git a/cells/turkish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/turkish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..39aaffdeca --- /dev/null +++ b/cells/turkish/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-01 +description: HTML ve diğer formatlarda yazı tiplerini nasıl gömeceğinizi öğrenin. + HTML'de yazı tipi gömme, Excel'i HTML'ye dönüştürme, OLE'yi dışa aktarma ve Excel'i + XPS'ye dönüştürme konularını kapsayan adım adım öğretici. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: tr +og_description: HTML, XPS ve OLE dışa aktarımlarında yazı tiplerini nasıl gömülür. + Tam iş akışını öğrenin, çalıştırılabilir Java kodunu görün ve Excel dönüşümleri + için HTML'de yazı tiplerini gömme konusunda uzmanlaşın. +og_title: Yazı Tiplerini Gömme – Tam Java Öğreticisi +tags: +- Aspose.Cells +- Java +- Document Export +title: Yazı Tiplerini Gömme – HTML, XPS ve OLE Dışa Aktarım İçin Tam Kılavuz +url: /tr/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Yazı Tiplerini Gömme – HTML, XPS ve OLE Dışa Aktarma İçin Tam Kılavuz + +Hiç Excel çalışma kitabını bir web sayfasına ya da yazdırılabilir bir belgeye dönüştürürken **yazı tiplerini nasıl gömeceğinizi** merak ettiniz mi? Yalnız değilsiniz. Birçok geliştirici, çıktının kendi makinesinde güzel görünürken başka birinde eksik yazı tipleri nedeniyle bozulmasıyla karşılaşır. + +Bu öğreticide Aspose.Cells for Java kullanarak gerçek bir senaryoyu adım adım inceleyeceğiz: HTML'de yazı tiplerini gömecek, XPS'e dönüştürürken emoji varyasyon seçicilerini koruyacak ve PPTX'e dışa aktarırken bir OLE nesnesinin düzenlenebilirliğini bile tutacağız. Sonunda “yazı tiplerini nasıl gömeceğim” sorusuna yanıt veren, aynı zamanda **embed fonts in html**, **convert excel to html**, **how to export ole**, ve **convert excel to xps** konularına da değinen sağlam bir kopyala‑yapıştır çözümüne sahip olacaksınız. + +## Ön Koşullar + +- Java 17 (veya herhangi bir güncel JDK) +- Aspose.Cells for Java 25.x veya üzeri +- Bir geliştirme IDE'si (IntelliJ IDEA, Eclipse veya VS Code) +- Excel veri yapılarıyla temel aşinalık + +Harici hizmetlere gerek yok—her şey yerel olarak çalışır. + +## Çözümün Genel Görünümü + +1. **Bir çalışma kitabı oluşturun** ve `WRAPCOLS` işlevini kullanarak dikey bir aralığı üç sütunlu bir düzene dönüştürün. +2. **Çalışma kitabını XPS olarak kaydedin** ve yazı tipi varyasyon seçicilerini etkinleştirerek emoji'lerin bozulmadan kalmasını sağlayın. +3. **HTML'ye dışa aktarın** gömülü yazı tipleriyle, sayfanın her yerde aynı görünmesini garantileyin. +4. **OLE nesnesi içeren bir çalışma kitabını PPTX'e dışa aktarın**, düzenlenebilirliği koruyarak. +5. **Smart Marker şablonu uygulayın**; bu, master‑detail veri bağlamasını gösterir. + +Her adım kendi H2 bölümünde izole edilmiştir, bu da kılavuzu hem arama motorları hem de AI asistanları için hızlıca göz atmayı kolaylaştırır. + +![Yazı tiplerini gömme illüstrasyonu](image.png "yazı tiplerini gömme") + +*Görsel alt metni: Excel'den HTML, XPS ve PPTX'e iş akışını gösteren yazı tiplerini gömme diyagramı.* + +--- + +## Adım 1 – Bir Çalışma Kitabı Oluşturun ve WRAPCOLS Kullanarak (embed fonts in html için Bunun Önemi) + +Yazı tiplerini gömmekten önce, içinde veri bulunan bir çalışma kitabına ihtiyacımız var. `WRAPCOLS` işlevi, tek bir sütunu birden fazla sütuna bölmenin pratik bir yoludur ve bu genellikle son HTML'nin daha okunabilir olmasını sağlar. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Neden bu adım?** +`WRAPCOLS` çağrısı, daha sonra HTML'de bir tablo olarak görülen çok sütunlu bir aralık oluşturur. Daha sonra **embed fonts in html** yaptığımızda, tablonun stilini gömdüğümüz yazı tipleri belirler ve tarayıcılar arasında tutarlı bir render sağlanır. + +--- + +## Adım 2 – Çalışma Kitabını Emoji'leri Koruyarak XPS Olarak Kaydedin (convert excel to xps) + +Baskıya hazır bir format gerekiyorsa, XPS sağlam bir tercihtir. Ancak, modern belgeler genellikle varyasyon seçicileri kullanan emoji veya semboller içerir. `EnableFontVariationSelectors` özelliğini açmak, bu karakterlerin dönüşüm sırasında korunmasını sağlar. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Ne elde edersiniz:** +Kaynak çalışma kitabındaki gömülü emoji'leri tam olarak aynı şekilde gösteren bir XPS dosyası. Bu, **convert excel to xps** gereksinimini karşılar ve yazı tipi işlemenin yalnızca HTML ile sınırlı olmadığını gösterir. + +--- + +## Adım 3 – Gömülü Yazı Tipleriyle HTML'ye Dışa Aktarın (how to embed fonts & embed fonts in html) + +Şimdi öğreticinin özüne ulaşıyoruz: Excel'i HTML'ye dönüştürürken **how to embed fonts**. Aspose.Cells, oluşturulan HTML dosyasına doğrudan yazı tiplerini gömmemizi sağlar ve harici font dosyalarına ihtiyaç kalmaz. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Nasıl çalışır:** +`setEmbedFonts(true)` renderlayıcıya, çalışma kitabında kullanılan font dosyalarını okuyup bunları ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +`@font-face` kuralına dikkat edin—bu, **embed fonts in html** sorusunun somut yanıtıdır. + +--- + +## Adım 4 – OLE Nesnesi İçeren Bir Çalışma Kitabını PPTX'e Dışa Aktarın (how to export ole) + +Birçok iş raporu, Word belgelerini, PDF'leri veya diğer Excel sayfalarını OLE nesneleri olarak gömer. Böyle bir çalışma kitabını PowerPoint'e dışa aktardığınızda, genellikle nesneyi düzenleme yeteneğini kaybedersiniz. Aspose.Cells, düzenlenebilirliği kutudan çıkar çıkmaz korur. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Neden önemli:** +**how to export ole** arıyorsanız, bu snippet tam API çağrısını gösterir. Ortaya çıkan PowerPoint slaytı, OLE nesnesini çift tıklayarak düzenlenebilen canlı bir bileşen olarak içerir—ekstra bir işlem gerektirmez. + +--- + +## Adım 5 – Smart Marker Şablonu Uygulayın (master‑detail) ve Demo'yu Tamamlayın + +Smart Marker'lar, bir veri kaynağını (Map, JSON, DataTable) doğrudan bir Excel şablonuna bağlamanızı sağlar. İşte master‑detail satırlarını yazdıran minimal bir örnek. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Ne görüyorsunuz:** +Şablon yer tutucularının veriyle değiştirildiği yeni bir çalışma kitabı (`smartMarkerResult.xlsx`). Bu adım doğrudan fontlarla ilgili değil, ancak genellikle **embed fonts in html** dışa aktarımından önce gelen tipik bir raporlama iş akışını göstererek öğreticiyi tamamlar. + +--- + +## Yaygın Tuzaklar ve Uzman İpuçları (Başarılı Yazı Tipi Gömmeyi Sağlamak) + +| Sorun | Neden Oluşur | Çözüm | +|-------|----------------|-----| +| HTML dosyasında fontlar eksik | Çalışma kitabı, sunucuda yüklü olmayan bir sistem fontu kullanıyor. | Veri yüklemeden önce `Workbook.getSettings().setDefaultFont("Arial")` kullanın veya gerekli font dosyalarını manuel olarak gömün. | +| Çıktı HTML'si çok büyük | Birçok büyük fontun gömülmesi dosya boyutunu şişirir. | Sadece gerçekten kullandığınız fontları gömmekle sınırlayın: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji, XPS dönüşümünden sonra kaybolur | Varyasyon seçicileri varsayılan olarak kaldırılır. | Adım 2'de gösterildiği gibi `settings.setEnableFontVariationSelectors(true)` etkinleştirin. | +| OLE nesnesi PPTX'te statik bir görüntü olur | Kaynak çalışma kitabı `setSuppressOLEObjects(true)` ile kaydedildi. | PPTX kaydederken OLE nesnelerini **bastırmadığınızdan** emin olun. | + +## Sonuçları Doğrulama + +1. `embeddedFonts.html` dosyasını Chrome/Firefox'ta açın. Tablo, o font makinede yüklü olmasa bile gömülü font (ör. Arial) kullanılarak görüntülenmelidir. +2. `withVariations.xps` dosyasını Windows XPS Viewer'da açın. 👍 gibi emoji'ler doğru şekilde render edilmelidir. +3. `oleEditable.pptx` dosyasını PowerPoint'te açın. OLE şekline çift tıklayın; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/vietnamese/java/excel-import-export/_index.md b/cells/vietnamese/java/excel-import-export/_index.md index 7e571584a6..e9888e61ac 100644 --- a/cells/vietnamese/java/excel-import-export/_index.md +++ b/cells/vietnamese/java/excel-import-export/_index.md @@ -47,6 +47,10 @@ Tìm hiểu cách xuất dữ liệu Excel sang JSON bằng Aspose.Cells for Jav Tìm hiểu cách triển khai xác thực dữ liệu nhập Excel bằng Aspose.Cells cho Java với hướng dẫn từng bước toàn diện này. Đảm bảo độ chính xác của dữ liệu và nâng cao trải nghiệm người dùng. ### [Xuất Excel sang HTML Java](./export-excel-to-html-java/) Tìm hiểu cách xuất Excel sang HTML trong Java bằng Aspose.Cells for Java. Thực hiện theo hướng dẫn từng bước này với mã nguồn để chuyển đổi liền mạch các tệp Excel của bạn sang HTML một cách dễ dàng. +### [Cách xuất CSV với Java – Đặt chữ số có ý nghĩa và xuất phạm vi sang CSV](./how-to-export-csv-with-java-set-significant-digits-export-ra/) +Hướng dẫn chi tiết cách xuất dữ liệu sang CSV trong Java, thiết lập chữ số có nghĩa và chỉ định phạm vi xuất. +### [Cách tạo PDF từ Workbook – Hướng dẫn Java đầy đủ](./how-to-create-pdf-from-a-workbook-complete-java-guide/) +Tìm hiểu cách tạo PDF từ Workbook bằng Aspose.Cells for Java. Hướng dẫn chi tiết với mã nguồn để chuyển đổi nhanh chóng và chính xác. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md b/cells/vietnamese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md new file mode 100644 index 0000000000..44e7a4bcb4 --- /dev/null +++ b/cells/vietnamese/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/_index.md @@ -0,0 +1,299 @@ +--- +category: general +date: 2026-03-01 +description: Cách tạo PDF và lưu workbook dưới dạng PDF, xuất Excel sang HTML, và + sử dụng hàm expand với Aspose.Cells cho Java. Bao gồm mã từng bước. +draft: false +keywords: +- how to create pdf +- save workbook as pdf +- export excel to html +- use expand function +language: vi +og_description: Cách tạo PDF từ một workbook bằng Aspose.Cells cho Java. Tìm hiểu + cách lưu workbook dưới dạng PDF, xuất Excel sang HTML và sử dụng hàm EXPAND. +og_title: Cách tạo PDF từ Workbook – Hướng dẫn Java +tags: +- Aspose.Cells +- Java +- PDF generation +title: Cách tạo PDF từ Workbook – Hướng dẫn Java toàn diện +url: /vi/java/excel-import-export/how-to-create-pdf-from-a-workbook-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Tạo PDF từ Workbook – Hướng Dẫn Java Toàn Diện + +Bạn đã bao giờ tự hỏi **cách tạo PDF** trực tiếp từ một workbook Excel mà không cần dùng các công cụ chuyển đổi bên thứ ba chưa? Bạn không phải là người duy nhất. Nhiều nhà phát triển gặp khó khăn khi họ cần xuất PDF nhanh, xem trước HTML, hoặc các công thức mảng phức tạp—tất cả trong một lần. + +Trong tutorial này chúng ta sẽ đi qua một chương trình Java độc lập duy nhất thực hiện đúng như vậy. Chúng ta sẽ **lưu workbook dưới dạng PDF**, cho bạn thấy cách **xuất Excel sang HTML** trong khi giữ các hàng cố định, và minh họa **cách sử dụng hàm expand** trong một worksheet. Khi kết thúc, bạn sẽ có một dự án có thể chạy được và có thể đưa vào bất kỳ build Maven hay Gradle nào. + +> **Pro tip:** Tất cả mã dưới đây hoạt động với Aspose.Cells 23.10 (hoặc mới hơn). Nếu bạn đang dùng phiên bản cũ hơn, một số tên phương thức có thể hơi khác. + +--- + +## Yêu Cầu Trước + +- **Java 17** (hoặc bất kỳ phiên bản LTS nào) đã được cài đặt và cấu hình. +- Thư viện **Aspose.Cells for Java**. Thêm phụ thuộc Maven sau vào file `pom.xml` của bạn: + +```xml + + com.aspose + aspose-cells + 23.10 + jdk17 + +``` + +- Một IDE hoặc trình soạn thảo văn bản mà bạn thích (IntelliJ IDEA, VS Code, Eclipse…). + +Không có API bên ngoài, không có dịch vụ web—chỉ Java thuần và SDK Aspose.Cells. + +--- + +## Tổng Quan Về Giải Pháp + +Chúng ta sẽ chia việc triển khai thành **bảy bước logic**: + +1. Tạo một workbook và minh họa hàm **EXPAND**. +2. Bật tính năng chọn biến thể phông chữ và **lưu workbook dưới dạng PDF**. +3. Xuất cùng một workbook sang HTML trong khi giữ nguyên các hàng cố định. +4. Sử dụng Smart Marker với tham số `IF` để chèn văn bản có điều kiện. +5. Áp dụng Smart Marker master‑detail cho dữ liệu phân cấp. +6. Tải một file Markdown chứa các hình ảnh được mã hoá Base‑64. +7. Cấu hình các tùy chọn GridJs cho căn chỉnh và viền, sau đó chèn dữ liệu. + +Mỗi bước được đóng gói trong một phương thức riêng để giữ cho phương thức `main` gọn gàng và để minh họa **tại sao** chúng ta làm như vậy, không chỉ **cái gì** chúng ta gõ. + +--- + +## Bước 1 – Tạo Workbook và Sử Dụng Hàm EXPAND + +Hàm **EXPAND** là một công thức mảng động mới được giới thiệu trong Office 365. Nó cho phép bạn “tràn” một phạm vi vào một khu vực lớn hơn mà không cần sao chép ô thủ công. + +```java +import com.aspose.cells.*; + +public class WorkbookDemo { + + private static void createWorkbookWithExpand() throws Exception { + // Initialize a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // A1 uses EXPAND to turn a 1×3 array into a 5×2 block + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + + // B1 demonstrates a classic trigonometric function (cotangent) + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + + // Force calculation so we can read the results immediately + workbook.calculateFormula(); + + // Print the top‑left value to the console – should be 1 + System.out.println("A1 value after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + } +``` + +**Tại sao điều này quan trọng:** +- `EXPAND` tự động bổ sung các ô trống vào kết quả, rất phù hợp khi bạn sau này **lưu workbook dưới dạng PDF**—PDF sẽ hiển thị một bảng hình chữ nhật sạch sẽ. +- Gọi `calculateFormula()` đảm bảo công cụ tính công thức chạy trước khi chúng ta xuất bất kỳ thứ gì. + +--- + +## Bước 2 – Bật Chọn Biến Thể Phông Chữ và **Lưu Workbook dưới dạng PDF** + +Nếu bạn cần hỗ trợ kiểu chữ nâng cao (ví dụ: emoji hoặc các selector biến thể CJK), bạn phải bật tính năng này **trước** khi lưu. + +```java + private static void saveAsPdf(Workbook workbook) throws Exception { + // Enable support for variation selectors (useful for emojis, etc.) + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); + + // Define the output path – adjust to your environment + String pdfPath = "output/vsPdf.pdf"; + + // Save the workbook as a PDF file + workbook.save(pdfPath, SaveFormat.PDF); + System.out.println("PDF saved to: " + pdfPath); + } +``` + +**Điểm then chốt:** Từ khóa chính **how to create pdf** được trả lời ở đây—bằng cách gọi `workbook.save(..., SaveFormat.PDF)` sau khi đã cấu hình các thiết lập. + +--- + +## Bước 3 – **Xuất Excel sang HTML** Khi Giữ Các Hàng Cố Định + +Thường thì các bên liên quan yêu cầu một bản xem trước web nhanh. Aspose.Cells có thể xuất sang HTML, và với `setPreserveFrozenRows(true)` chúng ta giữ được trải nghiệm cuộn giống như trong Excel. + +```java + private static void exportToHtml(Workbook workbook) throws Exception { + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setPreserveFrozenRows(true); // keep frozen panes + + String htmlPath = "output/frozenRows.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML exported to: " + htmlPath); + } +``` + +**Tại sao bạn quan tâm:** Các hàng cố định là một tính năng tiện ích; nếu không có chúng, các hàng tiêu đề sẽ biến mất khi người dùng cuộn xuống trang. + +--- + +## Bước 4 – Smart Marker với Tham Số IF + +Smart Markers cho phép bạn hợp nhất dữ liệu vào mẫu mà không cần viết vòng lặp. Tham số `if` thêm logic điều kiện trực tiếp trong marker. + +```java + private static void applyConditionalSmartMarker() throws Exception { + String template = "${if(@IsVIP, 'VIP Customer', 'Regular Customer')}: ${CustomerName}"; + Map data = new HashMap<>(); + data.put("IsVIP", true); + data.put("CustomerName", "Acme Corp"); + + // Create a fresh workbook to host the result + Workbook markerWorkbook = new Workbook(); + SmartMarkerProcessor processor = new SmartMarkerProcessor(markerWorkbook); + processor.apply(template, data); + + // Save to see the result + markerWorkbook.save("output/conditionalMarker.pdf", SaveFormat.PDF); + } +``` + +File PDF đầu ra sẽ hiển thị **“VIP Customer: Acme Corp”** vì `IsVIP` là `true`. Thay đổi cờ thành `false` và bạn sẽ nhận được **“Regular Customer: Acme Corp”**—không cần viết mã thêm. + +--- + +## Bước 5 – Master‑Detail Smart Marker Sử Dụng Dải Dữ Liệu Phân Cấp + +Khi bạn có dữ liệu cha‑con (ví dụ: đơn hàng và các mục hàng), một master‑detail marker giúp bạn tránh việc chèn hàng thủ công. + +```java + private static void applyMasterDetailSmartMarker() throws Exception { + // Simulated hierarchical data + Map hierarchicalData = new HashMap<>(); + List> orders = new ArrayList<>(); + + Map order1 = new HashMap<>(); + order1.put("OrderID", 1001); + order1.put("Date", "2024‑12‑01"); + List> details1 = new ArrayList<>(); + details1.add(Map.of("Product", "Widget A", "Qty", 5)); + details1.add(Map.of("Product", "Widget B", "Qty", 2)); + order1.put("Detail", details1); + orders.add(order1); + + hierarchicalData.put("Orders", orders); + + String masterDetailTemplate = + "${Orders.Master:OrderID,Date}\n" + + "${Orders.Detail:Product,Qty}"; + + Workbook mdWorkbook = new Workbook(); + SmartMarkerProcessor mdProcessor = new SmartMarkerProcessor(mdWorkbook); + mdProcessor.apply(masterDetailTemplate, hierarchicalData); + + mdWorkbook.save("output/masterDetail.pdf", SaveFormat.PDF); + } +``` + +**Bạn sẽ nhận được gì:** Engine sẽ mở rộng các hàng master cho mỗi đơn hàng và tự động đặt các hàng detail dưới chúng—rất thích hợp cho hoá đơn hoặc báo cáo mua hàng. + +--- + +## Bước 6 – Tải Tài Liệu Markdown với Hình Ảnh Base‑64 Nhúng + +Nếu dữ liệu nguồn của bạn ở dạng Markdown (phổ biến trong quy trình tài liệu), Aspose.Cells có thể render trực tiếp vào workbook. + +```java + private static void loadMarkdownWithBase64() throws Exception { + MarkdownLoadOptions mdOptions = new MarkdownLoadOptions(); + mdOptions.setEnableBase64Images(true); // decode inline images + + // Assume doc.md lives in the project root + Workbook mdWorkbook = new Workbook("input/doc.md", mdOptions); + mdWorkbook.save("output/markdownExport.pdf", SaveFormat.PDF); + System.out.println("Markdown loaded and saved as PDF."); + } +``` + +**Lưu ý trường hợp đặc biệt:** Nếu chuỗi Base‑64 bị sai định dạng, Aspose sẽ bỏ qua hình ảnh nhưng vẫn tiếp tục xử lý phần còn lại của tài liệu—không gây crash. + +--- + +## Bước 7 – Cấu Hình Các Tùy Chọn GridJs và Chèn Dữ Liệu + +GridJs là một lưới JavaScript nhẹ mà Aspose có thể render thành HTML. Căn chỉnh số và áp dụng viền cải thiện khả năng đọc. + +```java + private static void configureGridJs() throws Exception { + GridJsOptions gridOptions = new GridJsOptions(); + gridOptions.setNumberFormatAlignment(Alignment.Center); // center numbers + gridOptions.setNumberFormatBorder(BorderLineStyle.Thin); // thin border + + GridJsEngine gridEngine = new GridJsEngine(gridOptions); + gridEngine.insertRows(0, 10); // create 10 empty rows + gridEngine.setCellValue(0, 0, "123"); // first cell gets a value + + // Export the GridJs view to HTML for quick inspection + String htmlPath = "output/gridJs.html"; + gridEngine.save(htmlPath); + System.out.println("GridJs HTML saved to: " + htmlPath); + } +``` + +**Tại sao chúng ta quan tâm:** Căn chỉnh đúng và viền làm cho HTML được tạo ra trông giống như một bảng tính được tinh chỉnh—rất hữu ích cho các dashboard. + +--- + +## Tổng Hợp Tất Cả – Phương Thức `main` + +```java + public static void main(String[] args) { + try { + // Step 1 – create workbook with EXPAND + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + sheet.getCells().get("A1").setFormula("=EXPAND({1,2,3}, 5, 2)"); + sheet.getCells().get("B1").setFormula("=COT(PI()/4)"); + workbook.calculateFormula(); + System.out.println("A1 after EXPAND: " + sheet.getCells().get("A1").getStringValue()); + + // Step 2 – save as PDF + saveAsPdf(workbook); + + // Step 3 – export to HTML + exportToHtml(workbook); + + // Step 4 – conditional Smart Marker + applyConditionalSmartMarker(); + + // Step 5 – master‑detail Smart Marker + applyMasterDetailSmartMarker(); + + // Step 6 – load Markdown with Base‑64 images + loadMarkdownWithBase64(); + + // Step 7 – GridJs configuration + configureGridJs(); + + System.out.println("All tasks completed successfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/vietnamese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md b/cells/vietnamese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md new file mode 100644 index 0000000000..eb67897797 --- /dev/null +++ b/cells/vietnamese/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/_index.md @@ -0,0 +1,267 @@ +--- +category: general +date: 2026-03-01 +description: Tìm hiểu cách xuất csv từ một workbook Java đồng thời thiết lập chữ số + có ý nghĩa và phạm vi xuất sang csv trong một hướng dẫn duy nhất, rõ ràng. +draft: false +keywords: +- how to export csv +- set significant digits +- export range to csv +- Java workbook export +- CSV formatting Java +language: vi +og_description: Nắm vững cách xuất CSV trong Java, thiết lập chữ số có nghĩa và xuất + phạm vi ra CSV với mã thực tế và các mẹo hữu ích. +og_title: Cách xuất CSV bằng Java – Hướng dẫn chi tiết từng bước +tags: +- Java +- Aspose.Cells +- CSV +- Data Export +title: Cách xuất CSV bằng Java – Đặt số chữ số có nghĩa & Xuất phạm vi sang CSV +url: /vi/java/excel-import-export/how-to-export-csv-with-java-set-significant-digits-export-ra/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách xuất CSV bằng Java – Đặt chữ số có nghĩa & Xuất phạm vi sang CSV + +Bạn đã bao giờ tự hỏi **cách xuất csv** từ một workbook Java mà không mất độ chính xác số học chưa? Có thể bạn đã thử nhanh `toString()` và gặp rắc rối với lỗi làm tròn. Đó là một vấn đề phổ biến, đặc biệt khi bạn cần **đặt chữ số có nghĩa** cho dữ liệu tài chính hoặc kết quả khoa học. + +Trong tutorial này bạn sẽ thấy một ví dụ hoàn chỉnh, sẵn sàng chạy, cho thấy **cách xuất csv**, cách **đặt chữ số có nghĩa**, và thậm chí cách **xuất phạm vi sang csv** trong khi giữ dữ liệu gọn gàng. Chúng tôi sẽ đi qua từng dòng, giải thích *tại sao* phía sau các lời gọi API, và đưa ra các mẹo để tránh những bẫy thường gặp. Không cần tài liệu bổ sung—chỉ một giải pháp tự chứa mà bạn có thể sao chép‑dán ngay hôm nay. + +## Những gì bạn sẽ học + +- Tạo một workbook và cấu hình độ chính xác số học bằng `setNumberSignificantDigits`. +- Xuất một phạm vi ô cụ thể dưới dạng chuỗi CSV được định dạng đẹp. +- Phân tích ngày theo thời đại Nhật Bản bằng `DateTimeFormatInfo`. +- Tính lại công thức để kết quả mảng động luôn cập nhật. +- Kết xuất một bảng pivot thành ảnh PNG. +- Sử dụng Smart Marker để chèn bình luận và cuối cùng lưu workbook. + +Tất cả những điều này được thực hiện bằng thư viện Aspose.Cells for Java, phiên bản 23.12 (mới nhất tại thời điểm viết). Nếu bạn đã có JAR trong classpath, bạn đã sẵn sàng. + +--- + +## Bước 1: Tạo một Workbook và **Đặt chữ số có nghĩa** + +Trước khi chúng ta có thể xuất bất kỳ dữ liệu nào, chúng ta cần một đối tượng workbook. Điều đầu tiên mà nhiều nhà phát triển thường bỏ qua là độ chính xác số học. Theo mặc định Aspose.Cells sử dụng độ chính xác double đầy đủ, điều này có thể dẫn đến các chuỗi dài, khó xử lý trong CSV. Đặt số chữ số có nghĩa sẽ cắt ngắn đầu ra trong khi vẫn giữ lại các con số quan trọng nhất. + +```java +import com.aspose.cells.*; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + + // Step 1 – initialise workbook and limit numeric values to 5 significant digits + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + // This is the key call that **set significant digits** for all numeric cells + settings.setNumberSignificantDigits(5); +``` + +**Tại sao điều này lại quan trọng?** +Nếu bạn xuất một ô chứa `12345.6789` mà không giới hạn chữ số, CSV sẽ hiển thị giá trị đầy đủ, làm rối mắt báo cáo. Với `setNumberSignificantDigits(5)`, cùng một ô sẽ trở thành `12346`, thường là những gì người dùng doanh nghiệp mong đợi. + +> **Mẹo chuyên nghiệp:** Nếu bạn cần độ chính xác khác nhau cho từng cột, bạn có thể áp dụng một `Style` tùy chỉnh thay vì cài đặt toàn cục. + +--- + +## Bước 2: **Xuất phạm vi sang CSV** – Định dạng quan trọng + +Bây giờ workbook đã sẵn sàng, hãy lấy một khối dữ liệu hình chữ nhật và chuyển nó thành chuỗi CSV. Chúng ta cũng sẽ áp dụng định dạng hai chữ số thập phân (`0.00`) để mọi số đều căn chỉnh đẹp mắt. + +```java + // Step 2 – define export options and pull the range B2:D10 as CSV + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); // we want a string, not a file yet + exportOptions.setNumberFormat("0.00"); // enforce two decimal places + + // Create a dummy range with some sample data for illustration + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // ... populate more rows as needed ... + + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); +``` + +Lời gọi `exportDataTable` thực hiện phần việc nặng. Vì chúng ta đã đặt `exportAsString`, phương thức trả về một `String` mà chúng ta có thể in ra, ghi vào file, hoặc gửi qua HTTP. Bước **export range to csv** cũng tuân theo cài đặt toàn cục `setNumberSignificantDigits` mà chúng ta đã định nghĩa trước, vì vậy các số vừa được làm tròn tới năm chữ số có nghĩa *và* hiển thị với hai chữ số thập phân. + +**Kết quả mong đợi (được cắt ngắn):** + +``` +=== CSV Output === +123.46,78.90,0.12 +... +``` + +> **Câu hỏi thường gặp:** *Nếu tôi cần một dấu phân cách khác, chẳng hạn như dấu chấm phẩy?* +> Chỉ cần gọi `exportOptions.setSeparator(";")` trước khi xuất. + +--- + +## Bước 3: Phân tích ngày theo thời đại Nhật Bản (Tiện ích Bonus) + +Mặc dù không liên quan trực tiếp đến CSV, nhiều bảng Excel chứa ngày định dạng theo địa phương. Dưới đây là cách bạn có thể chuyển một chuỗi thời đại Nhật Bản như `"R3/04/01"` thành một đối tượng `DateTime` chuẩn. + +```java + // Step 3 – parse Japanese era date (Reiwa 3) + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); +``` + +Kết quả: + +``` +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +**Tại sao lại đưa mục này vào?** +Nếu việc xuất CSV của bạn cung cấp dữ liệu cho các hệ thống hạ nguồn yêu cầu ngày ở định dạng ISO‑8601, bạn sẽ cần chuẩn hoá bất kỳ định dạng địa phương nào trước. Đoạn mã này cho thấy *cách* và *tại sao* trong một nơi duy nhất. + +--- + +## Bước 4: Tính lại công thức – Giữ kết quả mảng động luôn mới + +Nếu workbook của bạn chứa công thức (ví dụ, `=SUM(A1:A10)`), chúng sẽ không tự động cập nhật sau khi chúng ta thay đổi cài đặt. Gọi `calculateFormula` buộc thực hiện tính toán lại toàn bộ, đảm bảo CSV xuất ra phản ánh các giá trị mới nhất. + +```java + // Step 4 – recalculate all formulas + workbook.calculateFormula(); +``` + +> **Cảnh báo:** Các workbook lớn có thể mất thời gian đáng kể để tính lại. Đối với các kịch bản yêu cầu hiệu năng cao, hãy xem xét `calculateFormula(FormulaCalculationOptions)` để giới hạn phạm vi tính toán. + +--- + +## Bước 5: Kết xuất Pivot Table đầu tiên thành ảnh PNG + +Đôi khi bạn cần một ảnh chụp nhanh của pivot table cùng với CSV. Đoạn mã dưới đây kết xuất pivot table đầu tiên trên worksheet đầu tiên thành một file PNG. + +```java + // Step 5 – render pivot table as PNG + PivotTable pivot = sheet.getPivotTables().get(0); // assumes a pivot exists + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + // The range that the pivot occupies is turned into an image + pivot.getRange().toImage("output/pivot.png", imgOptions); +``` + +**Mẹo:** Nếu workbook chưa có pivot, bạn có thể tạo một pivot một cách lập trình—xem tài liệu Aspose.Cells để có ví dụ nhanh. + +--- + +## Bước 6: Sử dụng Smart Marker để ghi chú và lưu Workbook + +Smart Marker cho phép bạn chèn nội dung động vào các ô bằng các placeholder đơn giản. Ở đây chúng ta ghi một bình luận như “Reviewed by QA” vào một ô được chỉ định và sau đó lưu workbook. + +```java + // Step 6 – apply Smart Marker comment + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", java.util.Collections.singletonMap("Comment", "Reviewed by QA")); + + // Finally, save the workbook with the comment embedded + workbook.save("output/commented.xlsx"); + } +} +``` + +Placeholder `${Comment}` có thể được đặt ở bất kỳ vị trí nào trong sheet (ví dụ, ô `A1`). Khi `apply` chạy, placeholder sẽ được thay thế bằng giá trị đã cung cấp. + +**Kết quả:** Bạn sẽ tìm thấy file `output/commented.xlsx` chứa bình luận, cùng với `pivot.png` đã tạo trước đó và chuỗi CSV được in ra console. + +--- + +## Ví dụ đầy đủ hoạt động + +Kết hợp tất cả lại, đây là chương trình hoàn chỉnh mà bạn có thể biên dịch và chạy: + +```java +import com.aspose.cells.*; +import java.util.Collections; +import java.util.Locale; + +public class CsvExportDemo { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Workbook & Significant Digits ----------- + Workbook workbook = new Workbook(); + WorkbookSettings settings = workbook.getSettings(); + settings.setNumberSignificantDigits(5); // **set significant digits** + + // ----------- Step 2: Populate Sample Data & Export CSV ---------- + Worksheet sheet = workbook.getWorksheets().get(0); + Cells cells = sheet.getCells(); + cells.get("B2").putValue(123.456); + cells.get("C2").putValue(78.9); + cells.get("D2").putValue(0.12345); + // (Add more rows if you like) + + ExportTableOptions exportOptions = new ExportTableOptions(); + exportOptions.setExportAsString(true); + exportOptions.setNumberFormat("0.00"); + Range dataRange = cells.createRange("B2:D10"); + String csvData = dataRange.exportDataTable(exportOptions).toString(); + + System.out.println("=== CSV Output ==="); + System.out.println(csvData); + + // ----------- Step 3: Japanese Era Date ---------- + DateTime japaneseDate = DateTime.parse("R3/04/01", new DateTimeFormatInfo(Locale.JAPAN)); + System.out.println("Parsed Japanese date: " + japaneseDate); + + // ----------- Step 4: Recalculate Formulas ---------- + workbook.calculateFormula(); + + // ----------- Step 5: Render Pivot Table ---------- + if (!sheet.getPivotTables().isEmpty()) { + PivotTable pivot = sheet.getPivotTables().get(0); + ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); + imgOptions.setImageFormat(ImageFormat.Png); + pivot.getRange().toImage("output/pivot.png", imgOptions); + } + + // ----------- Step 6: Smart Marker Comment ---------- + SmartMarkerProcessor smartMarker = new SmartMarkerProcessor(workbook); + smartMarker.apply("${Comment}", Collections.singletonMap("Comment", "Reviewed by QA")); + workbook.save("output/commented.xlsx"); + } +} +``` + +### Kết quả mong đợi trên Console + +``` +=== CSV Output === +123.46,78.90,0.12 +... +Parsed Japanese date: 2021-04-01T00:00:00 +``` + +Bạn cũng sẽ tìm thấy `output/pivot.png` (nếu có pivot) và `output/commented.xlsx` trên đĩa. + +--- + +## Câu hỏi thường gặp & Trường hợp đặc biệt + +- **Tôi có thể xuất trực tiếp ra file CSV vật lý không?** + Có. Thay thế khối `exportAsString` bằng `dataRange.exportDataTable("output/data.csv", exportOptions);`. + +- **Nếu sheet của tôi sử dụng một locale khác cho các số thì sao?** + Đặt `exportOptions.setCultureInfo(new CultureInfo("fr-FR"))` trước khi xuất; điều này sẽ hoán đổi + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/vietnamese/java/excel-pivot-tables/_index.md b/cells/vietnamese/java/excel-pivot-tables/_index.md index a0890a41a6..52f3e77822 100644 --- a/cells/vietnamese/java/excel-pivot-tables/_index.md +++ b/cells/vietnamese/java/excel-pivot-tables/_index.md @@ -42,6 +42,8 @@ Tìm hiểu cách tạo các trường tính toán trong Pivot Table bằng Aspo Tìm hiểu cách làm mới dữ liệu Pivot Table trong Aspose.Cells for Java. Giữ cho dữ liệu của bạn được cập nhật dễ dàng. ### [Tùy chỉnh kiểu bảng Pivot](./customizing-pivot-table-styles/) Tìm hiểu cách tùy chỉnh kiểu bảng trục trong Aspose.Cells cho Java API. Tạo các bảng trục hấp dẫn về mặt hình ảnh một cách dễ dàng. +### [Sao chép Bảng Pivot trong Java – Bảo tồn, Xuất ra PPTX](./copy-pivot-table-in-java-preserve-it-export-to-pptx/) +Hướng dẫn sao chép Bảng Pivot trong Java, giữ nguyên dữ liệu và xuất ra file PPTX. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md b/cells/vietnamese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md new file mode 100644 index 0000000000..bf9e15f92e --- /dev/null +++ b/cells/vietnamese/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-01 +description: Sao chép bảng pivot trong Java đồng thời giữ nguyên pivot, sau đó xuất + Excel sang PPTX, tắt AutoFilter của Excel và sử dụng Smart Marker cho các mảng JSON + – hướng dẫn chi tiết từng bước. +draft: false +keywords: +- copy pivot table +- preserve pivot table +- use smart marker +- disable excel autofilter +- export excel to pptx +language: vi +og_description: Sao chép bảng pivot trong Java, giữ nguyên định nghĩa pivot, xuất + ra PPTX, tắt AutoFilter và sử dụng Smart Marker – hướng dẫn đầy đủ cho nhà phát + triển. +og_title: Sao chép Pivot Table trong Java – Bảo tồn nó, Xuất ra PPTX +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Sao chép Pivot Table trong Java – Bảo tồn, Xuất ra PPTX +url: /vi/java/excel-pivot-tables/copy-pivot-table-in-java-preserve-it-export-to-pptx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Sao chép Pivot Table trong Java – Bảo tồn, Xuất ra PPTX + +Bạn đã bao giờ cần **copy pivot table** từ một workbook sang workbook khác mà không mất định nghĩa pivot bên dưới chưa? Bạn không phải là người duy nhất bối rối về vấn đề này. Trong nhiều dự án thực tế, bạn sẽ phải di chuyển dữ liệu, và điều cuối cùng bạn muốn là một pivot bị hỏng gây lỗi khi chạy. + +Trong hướng dẫn này, chúng ta sẽ đi qua một giải pháp hoàn chỉnh không chỉ **copy pivot table** mà còn chỉ cho bạn cách **preserve pivot table** khi sao chép, **export Excel to PPTX**, **disable Excel AutoFilter**, và **use smart marker** để chèn một mảng JSON vào một ô duy nhất. Khi kết thúc, bạn sẽ có một chương trình Java duy nhất, có thể chạy được, bao gồm cả bốn kịch bản. + +## Yêu cầu trước + +- Java 8 hoặc mới hơn (mã vẫn hoạt động với Java 11) +- Thư viện Aspose.Cells for Java (phiên bản 23.9 trở lên) – bạn có thể tải từ Maven Central +- Kiến thức cơ bản về các khái niệm Excel như pivot tables, tables và text boxes + +Nếu bạn thiếu file JAR của Aspose.Cells, hãy thêm đoạn này vào `pom.xml` của bạn: + +```xml + + com.aspose + aspose-cells + 23.9 + +``` + +Bây giờ, chúng ta cùng bắt đầu. + +## Bước 1: Sao chép Pivot Table – Bảo tồn Định nghĩa Pivot + +Khi bạn chỉ sao chép phạm vi ô chứa pivot table, siêu dữ liệu pivot thường bị bỏ lại. Aspose.Cells cung cấp cho chúng ta một cách gọn gàng để giữ nguyên định nghĩa bằng cách sử dụng `copyRange` cùng một đối tượng `CopyOptions`. + +```java +import com.aspose.cells.*; + +public class PivotCopyDemo { + + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source workbook that contains the pivot table + Workbook sourceWorkbook = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet sourceSheet = sourceWorkbook.getWorksheets().get(0); + + // 2️⃣ Define the range that includes the pivot (A1:G20 is just an example) + Range pivotRange = sourceSheet.getCells().createRange("A1:G20"); + + // 3️⃣ Prepare the destination workbook + Workbook destWorkbook = new Workbook(); + Worksheet destSheet = destWorkbook.getWorksheets().get(0); + + // 4️⃣ Copy the range – the pivot definition travels with it + destSheet.getCells().copyRange(pivotRange, + new CellArea(0, 0, 19, 6), // destination area (rows 0‑19, cols 0‑6) + new CopyOptions()); + + // 5️⃣ Save the result + destWorkbook.save("YOUR_DIRECTORY/dest.xlsx"); + } +} +``` + +**Tại sao cách này hoạt động:** `CopyOptions` chỉ cho Aspose.Cells sao chép mọi thứ, bao gồm pivot cache và cài đặt trường. Nếu không có nó, bạn sẽ chỉ nhận được giá trị thuần và mất khả năng làm mới pivot. + +**Trường hợp đặc biệt:** Nếu pivot nguồn của bạn mở rộng hơn phạm vi cứng `A1:G20`, hãy điều chỉnh phạm vi cho phù hợp hoặc sử dụng `sourceSheet.getPivotTables().get(0).getDataRange()` để lấy động. + +![Ví dụ sao chép pivot table](image.png "Sao chép pivot table trong Java") + +*Văn bản thay thế hình ảnh: sơ đồ sao chép pivot table trong Java* + +## Bước 2: Xuất Worksheet có TextBox có thể chỉnh sửa ra PPTX + +Thường bạn cần chuyển một sheet Excel thành một slide PowerPoint—như các bảng điều khiển hàng tuần cần trình bày. Aspose.Cells có thể trực tiếp lưu một worksheet dưới dạng file PPTX đồng thời bảo tồn các hình dạng như text boxes. + +```java +import com.aspose.cells.*; + +public class ExportToPptxDemo { + + public static void main(String[] args) throws Exception { + // Load workbook that contains a TextBox shape + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Export the first worksheet to PPTX + wb.save("YOUR_DIRECTORY/output.pptx", SaveFormat.PPTX); + + System.out.println("Worksheet exported to PPTX successfully."); + } +} +``` + +**Điều gì đang xảy ra:** Phương thức `save` với `SaveFormat.PPTX` chuyển đổi toàn bộ sheet, bao gồm bất kỳ TextBox có thể chỉnh sửa nào, thành một slide PowerPoint. Văn bản bên trong hộp vẫn có thể chỉnh sửa khi bạn mở PPTX trong PowerPoint. + +**Mẹo:** Nếu bạn có nhiều sheet và chỉ muốn một sheet cụ thể, hãy gọi `wb.getWorksheets().removeAt(index)` cho các sheet còn lại trước khi lưu. + +## Bước 3: Vô hiệu hoá Excel AutoFilter từ một Table + +AutoFilter hữu ích cho người dùng cuối, nhưng đôi khi bạn cần tắt nó bằng chương trình—có thể trước khi xuất dữ liệu hoặc khi tạo báo cáo sạch. Đây là cách **disable excel autofilter** trên một Table trong Excel. + +```java +import com.aspose.cells.*; + +public class DisableAutoFilterDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + Worksheet sheet = wb.getWorksheets().get(0); + + // Assume the first table in the sheet is the target + Table table = sheet.getTables().get(0); + + // Turn off the AutoFilter arrows + table.setShowAutoFilter(false); + + // Save the modified workbook + wb.save("YOUR_DIRECTORY/noFilter.xlsx"); + System.out.println("AutoFilter disabled and workbook saved."); + } +} +``` + +**Lý do bạn có thể cần điều này:** Khi xuất sang các định dạng không hỗ trợ AutoFilter (như CSV hoặc PDF) có thể xuất hiện các biểu tượng lọc lạ. Việc tắt nó đảm bảo đầu ra sạch sẽ. + +**Cạm bẫy thường gặp:** Nếu sheet không có table, `getTables().get(0)` sẽ ném `IndexOutOfBoundsException`. Luôn kiểm tra `sheet.getTables().size()` trước trong mã production. + +## Bước 4: Sử dụng Smart Marker – Chèn một Mảng JSON làm Giá trị Ô Đơn + +Smart Marker là công cụ tạo mẫu của Aspose. Một mẹo hữu ích là coi toàn bộ mảng JSON như một giá trị ô duy nhất, rất phù hợp cho việc ghi log hoặc truyền dữ liệu có cấu trúc xuống phía dưới. Hãy **use smart marker** để thực hiện điều này. + +```java +import com.aspose.cells.*; + +public class SmartMarkerDemo { + + public static void main(String[] args) throws Exception { + Workbook wb = new Workbook("YOUR_DIRECTORY/textbox.xlsx"); + + // Initialise the SmartMarker processor with the workbook + SmartMarkerProcessor processor = new SmartMarkerProcessor(wb); + + // JSON array we want to embed + String jsonArray = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Anna\",\"Age\":28}]"; + + // Configure the processor to treat arrays as a single cell + processor.setOptions(SmartMarkerOptions.ArrayAsSingle); + + // Apply the marker – assume cell A1 contains the marker ${json} + processor.apply(jsonArray); + + // Save the result + wb.save("YOUR_DIRECTORY/smartMarkerResult.xlsx"); + System.out.println("JSON array inserted via Smart Marker."); + } +} +``` + +**Cách hoạt động:** Marker `${json}` trong workbook sẽ được thay thế bằng toàn bộ chuỗi JSON vì chúng ta đã đặt `ArrayAsSingle`. Nếu không có tùy chọn này, Aspose sẽ cố gắng mở rộng mỗi phần tử mảng thành các hàng riêng biệt. + +**Biến thể:** Nếu bạn muốn mảng được chia thành nhiều hàng, chỉ cần bỏ qua `ArrayAsSingle` và để Smart Marker tự động mở rộng. + +## Ví dụ Hoạt động Đầy đủ – Kết hợp Tất cả Các Bước + +Dưới đây là một lớp Java duy nhất kết hợp mọi thao tác chúng ta đã đề cập. Chạy nó như một phương thức `main` thông thường; chỉ cần điều chỉnh các đường dẫn file cho phù hợp với môi trường của bạn. + +```java +import com.aspose.cells.*; + +public class CompleteExcelAutomation { + + public static void main(String[] args) throws Exception { + // ----------- Step 1: Copy Pivot Table ----------- + Workbook srcWb = new Workbook("YOUR_DIRECTORY/src.xlsx"); + Worksheet srcSheet = srcWb.getWorksheets + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/vietnamese/java/getting-started/_index.md b/cells/vietnamese/java/getting-started/_index.md index 595764bee3..a8f3030d13 100644 --- a/cells/vietnamese/java/getting-started/_index.md +++ b/cells/vietnamese/java/getting-started/_index.md @@ -71,7 +71,8 @@ Tìm hiểu cách mở và xử lý hiệu quả các tệp SpreadsheetML trong ### [Cách lấy phiên bản Aspose.Cells trong Java: Hướng dẫn từng bước](./retrieve-aspose-cells-version-java-guide/) Tìm hiểu cách kiểm tra phiên bản Aspose.Cells trong các dự án Java của bạn với hướng dẫn toàn diện này. Đảm bảo khả năng tương thích và tận dụng các tính năng mới một cách hiệu quả. - +### [Tạo sổ làm việc có giấy phép – Hướng dẫn đầy đủ Aspose.Cells cho Java](./create-licensed-workbook-full-aspose-cells-java-guide/) +Hướng dẫn chi tiết cách tạo sổ làm việc có giấy phép bằng Aspose.Cells cho Java, bao gồm cài đặt giấy phép và lưu tệp. ## Tài nguyên bổ sung diff --git a/cells/vietnamese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md b/cells/vietnamese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md new file mode 100644 index 0000000000..626a927d09 --- /dev/null +++ b/cells/vietnamese/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Tạo nhanh workbook có bản quyền với Aspose.Cells Java. Tìm hiểu cách + cấp phép Aspose, thiết lập giấy phép Aspose cho Java và đọc Excel bằng Aspose trong + một hướng dẫn. +draft: false +keywords: +- create licensed workbook +- how to license aspose +- set aspose license java +- read excel with aspose +language: vi +og_description: Tạo workbook có giấy phép sử dụng Aspose.Cells Java. Hướng dẫn này + chỉ cách cấp giấy phép cho Aspose, thiết lập giấy phép Aspose cho Java và đọc file + Excel bằng Aspose. +og_title: Tạo Sổ làm việc có giấy phép – Hướng dẫn Aspose.Cells Java +tags: +- Aspose.Cells +- Java +- Excel Automation +title: Tạo Workbook có giấy phép – Hướng dẫn đầy đủ Aspose.Cells Java +url: /vi/java/getting-started/create-licensed-workbook-full-aspose-cells-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Workbook có Giấy phép – Hướng dẫn đầy đủ Aspose.Cells Java + +Bạn đã bao giờ tự hỏi **cách tạo workbook có giấy phép** mà không gặp lỗi cấp phép chưa? Bạn không phải là người duy nhất—nhiều nhà phát triển gặp phải vấn đề này khi mới bắt đầu dùng Aspose.Cells. Tin tốt là gì? Giải pháp rất đơn giản, và hướng dẫn này sẽ đưa bạn qua từng bước một. + +Chỉ trong vài phút, bạn sẽ biết **cách cấp phép cho Aspose**, cách **đặt giấy phép Aspose cho Java** một cách chính xác, và sẽ sẵn sàng **đọc Excel với Aspose** cho các tác vụ thực tế như báo cáo hay di chuyển dữ liệu. Không có những tham chiếu mơ hồ, chỉ có một ví dụ hoàn chỉnh, có thể chạy ngay mà bạn có thể sao chép‑dán ngay hôm nay. + +--- + +## Những gì bạn cần + +- Java 17 hoặc mới hơn (phiên bản ổn định mới nhất hoạt động tốt nhất) +- Aspose.Cells for Java 23.9 (hoặc bất kỳ phiên bản gần đây nào) +- Tệp giấy phép Aspose.Cells của bạn (`Aspose.Cells.Java.lic`) +- Một IDE hoặc công cụ xây dựng mà bạn quen thuộc (Maven, Gradle, hoặc `javac` thuần) + +Nếu có bất kỳ mục nào bạn chưa quen, đừng lo—mỗi mục sẽ được giải thích trong các bước dưới đây. + +--- + +## Bước 1: Thêm phụ thuộc Aspose.Cells + +Trước khi bạn có thể **tạo workbook có giấy phép**, thư viện phải có trong classpath của bạn. Với Maven, nó trông như sau: + +```xml + + + com.aspose + aspose-cells + 23.9 + jdk17 + +``` + +Đối với Gradle: + +```groovy +implementation 'com.aspose:aspose-cells:23.9:jdk17' +``` + +> **Mẹo chuyên nghiệp:** Nếu bạn dùng biên dịch `javac` thuần, chỉ cần đặt JAR vào thư mục `libs/` và thêm vào cờ `-cp`. + +--- + +## Bước 2: **Cách cấp phép cho Aspose** – Tải tệp giấy phép + +Ngay khi bạn gọi bất kỳ API nào của Aspose mà chưa có giấy phép, bạn sẽ thấy một watermark trong tệp Excel được tạo ra. Để tránh điều đó, bạn cần **đặt giấy phép Aspose cho Java** ngay từ đầu chương trình. + +```java +import com.aspose.cells.License; + +public class AsposeLicenseUtil { + /** + * Loads the Aspose.Cells license from the given path. + * + * @param licensePath absolute or relative path to Aspose.Cells.Java.lic + * @throws Exception if the license file cannot be found or loaded + */ + public static void applyLicense(String licensePath) throws Exception { + License license = new License(); // Step 1: create License object + license.setLicense(licensePath); // Step 2: apply the license file + // After this call the library is fully licensed + } +} +``` + +> **Tại sao điều này quan trọng:** Đối tượng `License` thông báo cho Aspose bỏ chế độ đánh giá, loại bỏ watermark và mở khóa toàn bộ API. Nếu đường dẫn sai, một ngoại lệ sẽ được ném—do đó bạn sẽ biết ngay lập tức. + +--- + +## Bước 3: **Tạo Workbook có Giấy phép** – Xây dựng tệp Excel + +Bây giờ giấy phép đã được áp dụng, bạn có thể an toàn **tạo workbook có giấy phép**. Dưới đây là một ví dụ tối thiểu nhưng đầy đủ, đồng thời minh họa **đọc Excel với Aspose** sau này. + +```java +import com.aspose.cells.*; + +public class CreateLicensedWorkbook { + public static void main(String[] args) { + try { + // 1️⃣ Apply the license – replace with your actual license location + AsposeLicenseUtil.applyLicense("C:/licenses/Aspose.Cells.Java.lic"); + + // 2️⃣ Create a new workbook – this is the licensed workbook we wanted + Workbook workbook = new Workbook(); // empty workbook + Worksheet sheet = workbook.getWorksheets().get(0); // default first sheet + sheet.setName("Demo"); + + // 3️⃣ Populate some data + Cells cells = sheet.getCells(); + cells.get("A1").putValue("Product"); + cells.get("B1").putValue("Quantity"); + cells.get("A2").putValue("Apples"); + cells.get("B2").putValue(120); + cells.get("A3").putValue("Oranges"); + cells.get("B3").putValue(85); + + // 4️⃣ Save the workbook to disk + String outPath = "output/CreatedLicensedWorkbook.xlsx"; + workbook.save(outPath, SaveFormat.XLSX); + System.out.println("Workbook saved to " + outPath); + + // 5️⃣ OPTIONAL: Read the same workbook back (demonstrates read excel with aspose) + Workbook readBack = new Workbook(outPath); + Worksheet readSheet = readBack.getWorksheets().get(0); + System.out.println("First cell value: " + readSheet.getCells().get("A1").getStringValue()); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} +``` + +**Công việc của đoạn mã này:** + +1. Gọi tiện ích từ **Bước 2** để **đặt giấy phép Aspose cho Java**. +2. Tạo một đối tượng `Workbook` mới – trung tâm của thao tác **tạo workbook có giấy phép**. +3. Ghi một bảng nhỏ, lưu dưới dạng XLSX, và ngay lập tức đọc lại để chứng minh **đọc Excel với Aspose** hoạt động mà không có watermark. + +Chạy chương trình sẽ in ra: + +``` +Workbook saved to output/CreatedLicensedWorkbook.xlsx +First cell value: Product +``` + +Nếu bạn mở tệp vừa tạo, sẽ thấy một bảng tính sạch sẽ, không có watermark của Aspose—đây là bằng chứng giấy phép đã hoạt động. + +--- + +## Bước 4: Những lỗi thường gặp & Trường hợp đặc biệt + +| Vấn đề | Nguyên nhân | Cách khắc phục | +|-------|-------------|----------------| +| **LicenseNotFoundException** | Đường dẫn sai hoặc tệp không tồn tại. | Sử dụng đường dẫn tuyệt đối hoặc tải tệp từ resources (`getClass().getResourceAsStream`). | +| **`java.lang.NoClassDefFoundError: com/aspose/cells/License`** | JAR Aspose chưa có trong classpath. | Kiểm tra lại phụ thuộc Maven/Gradle hoặc thêm JAR thủ công. | +| **Lưu thất bại trên Windows** | Thư mục đích không tồn tại. | Đảm bảo thư mục `output/` được tạo (`new File("output").mkdirs();`). | +| **Đọc các tệp .xls cũ** | `SaveFormat` mặc định có thể không hỗ trợ định dạng cũ. | Dùng `SaveFormat.XLS` khi lưu, hoặc để Aspose tự động phát hiện khi tải. | + +> **Lưu ý:** Nếu bạn triển khai lên máy chủ, tệp giấy phép nên đặt ngoài thư mục gốc của web‑app để tránh lộ ra ngoài. + +--- + +## Bước 5: Xác minh giấy phép bằng chương trình (Tùy chọn) + +Đôi khi bạn muốn kiểm tra lại rằng giấy phép đã được tải đúng trước khi thực hiện các thao tác nặng. + +```java +import com.aspose.cells.License; +import com.aspose.cells.LicenseInfo; + +public class LicenseChecker { + public static boolean isLicensed(String licensePath) { + try { + License license = new License(); + license.setLicense(licensePath); + LicenseInfo info = license.getLicenseInfo(); + return info != null && info.getLicenseType() == LicenseInfo.LicenseType.Licensed; + } catch (Exception ex) { + return false; + } + } +} +``` + +Bạn có thể gọi `LicenseChecker.isLicensed("...")` và dừng lại nếu nó trả về `false`. Điều này tạo thêm một lớp bảo vệ, đặc biệt hữu ích trong các pipeline CI/CD. + +--- + +## Tổng quan trực quan + +![Diagram showing the flow from applying license to creating and reading a workbook](create-licensed-workbook-diagram.png "create licensed workbook") + +*Văn bản thay thế ảnh:* **create licensed workbook diagram** – mô tả các bước áp dụng giấy phép Aspose, tạo workbook và đọc Excel. + +--- + +## Kết luận + +Bây giờ bạn đã có một giải pháp hoàn chỉnh, từ đầu đến cuối để **tạo workbook có giấy phép** bằng Aspose.Cells cho Java. Chúng tôi đã trình bày **cách cấp phép cho Aspose**, minh họa đoạn mã **đặt giấy phép Aspose cho Java** chính xác, và cho bạn một cái nhìn nhanh về **đọc Excel với Aspose** để xác nhận mọi thứ hoạt động. + +Tiếp theo, bạn có thể khám phá: + +- Định dạng ô (phông chữ, màu sắc) – rất hữu ích cho các báo cáo chuyên nghiệp. +- Xuất ra CSV hoặc PDF – Aspose hỗ trợ nhiều định dạng ngay trong hộp. +- Xử lý tập dữ liệu lớn – dùng `WorkbookDesigner` để tạo mẫu. + +Hãy thoải mái thử nghiệm, và nếu gặp bất kỳ khó khăn nào, hãy để lại bình luận bên dưới. Chúc bạn lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/vietnamese/java/ole-objects-embedded-content/_index.md b/cells/vietnamese/java/ole-objects-embedded-content/_index.md index 19355ad351..15dfab26d3 100644 --- a/cells/vietnamese/java/ole-objects-embedded-content/_index.md +++ b/cells/vietnamese/java/ole-objects-embedded-content/_index.md @@ -47,7 +47,8 @@ Tìm hiểu cách trích xuất GUID hiệu quả từ các đối tượng Powe ### [Xóa các điều khiển ActiveX khỏi Excel bằng Aspose.Cells Java](./remove-activex-controls-excel-aspose-cells-java/) Hướng dẫn mã cho Aspose.Words Java - +### [Cách Nhúng Phông chữ – Hướng dẫn đầy đủ cho xuất HTML, XPS và OLE](./how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/) +Tìm hiểu cách nhúng phông chữ vào tài liệu khi xuất sang HTML, XPS và OLE bằng Aspose.Cells for Java. ## Tài nguyên bổ sung diff --git a/cells/vietnamese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md b/cells/vietnamese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md new file mode 100644 index 0000000000..8c82ddecc0 --- /dev/null +++ b/cells/vietnamese/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-01 +description: Học cách nhúng phông chữ trong HTML và các định dạng khác. Hướng dẫn + từng bước bao gồm nhúng phông chữ trong HTML, chuyển đổi Excel sang HTML, cách xuất + OLE và chuyển đổi Excel sang XPS. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- how to export ole +- convert excel to xps +language: vi +og_description: Cách nhúng phông chữ trong xuất HTML, XPS và OLE. Tìm hiểu quy trình + đầy đủ, xem mã Java có thể chạy, và thành thạo việc nhúng phông chữ trong HTML cho + chuyển đổi Excel. +og_title: Cách Nhúng Phông Chữ – Hướng Dẫn Java Đầy Đủ +tags: +- Aspose.Cells +- Java +- Document Export +title: Cách Nhúng Phông Chữ – Hướng Dẫn Toàn Diện cho Xuất HTML, XPS và OLE +url: /vi/java/ole-objects-embedded-content/how-to-embed-fonts-complete-guide-for-html-xps-and-ole-expor/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Nhúng Phông Chữ – Hướng Dẫn Toàn Diện cho HTML, XPS và Xuất OLE + +Bạn đã bao giờ tự hỏi **cách nhúng phông chữ** khi chuyển một workbook Excel thành trang web hoặc tài liệu có thể in không? Bạn không phải là người duy nhất. Nhiều nhà phát triển gặp khó khăn khi kết quả trông ổn trên máy của họ nhưng lại bị lỗi trên máy khác vì thiếu phông chữ cần thiết. + +Trong hướng dẫn này, chúng ta sẽ đi qua một kịch bản thực tế sử dụng Aspose.Cells for Java: chúng ta sẽ nhúng phông chữ trong HTML, giữ nguyên các bộ chọn biến thể emoji khi chuyển sang XPS, và thậm chí giữ cho một đối tượng OLE có thể chỉnh sửa khi xuất ra PPTX. Khi kết thúc, bạn sẽ có một giải pháp vững chắc, có thể sao chép và dán, trả lời câu hỏi “cách nhúng phông chữ” và cũng đề cập đến **embed fonts in html**, **convert excel to html**, **how to export ole**, và **convert excel to xps**. + +## Yêu Cầu Trước + +- Java 17 (hoặc bất kỳ JDK mới nào) +- Aspose.Cells for Java 25.x hoặc mới hơn +- Một IDE phát triển (IntelliJ IDEA, Eclipse, hoặc VS Code) +- Kiến thức cơ bản về cấu trúc dữ liệu Excel + +Không cần dịch vụ bên ngoài—mọi thứ chạy trên máy cục bộ. + +## Tổng Quan Giải Pháp + +1. **Tạo một workbook** và sử dụng hàm `WRAPCOLS` để chuyển đổi một dải dọc thành bố cục ba cột. +2. **Lưu workbook dưới dạng XPS** đồng thời bật các bộ chọn biến thể phông chữ để emoji giữ nguyên. +3. **Xuất ra HTML** với phông chữ được nhúng, đảm bảo trang hiển thị giống nhau ở mọi nơi. +4. **Xuất một workbook chứa đối tượng OLE sang PPTX**, giữ khả năng chỉnh sửa. +5. **Áp dụng mẫu Smart Marker** thể hiện việc ràng buộc dữ liệu master‑detail. + +Mỗi bước được tách riêng trong một mục H2, giúp hướng dẫn dễ dàng lướt qua cho cả công cụ tìm kiếm và trợ lý AI. + +![Minh hoạ cách nhúng phông chữ](image.png "cách nhúng phông chữ") + +*Văn bản thay thế hình ảnh: sơ đồ cách nhúng phông chữ mô tả quy trình từ Excel sang HTML, XPS và PPTX.* + +--- + +## Bước 1 – Tạo Workbook và Sử Dụng WRAPCOLS (Tại Sao Điều Này Quan Trọng cho embed fonts in html) + +Trước khi chúng ta có thể nói về việc nhúng phông chữ, chúng ta cần một workbook thực sự chứa dữ liệu. Hàm `WRAPCOLS` là cách tiện lợi để chia một cột thành nhiều cột, thường làm cho HTML cuối cùng dễ đọc hơn. + +```java +import com.aspose.cells.*; + +public class EmbedFontsDemo { + public static void main(String[] args) throws Exception { + // Initialize a new workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.getWorksheets().get(0); + + // Populate A2:A10 with sample data + for (int i = 2; i <= 10; i++) { + sheet.getCells().get("A" + i).putValue("Item " + (i - 1)); + } + + // Use WRAPCOLS to create a 3‑column block starting at A1 + Cell resultCell = sheet.getCells().get("A1"); + resultCell.setFormula("=WRAPCOLS(A2:A10,3)"); + workbook.calculateFormula(); + + System.out.println("WRAPCOLS result: " + resultCell.getStringValue()); + // ----------------------------------------------------------------- + // The rest of the steps are demonstrated after this point. + // ----------------------------------------------------------------- +``` + +**Tại sao bước này?** +Lệnh `WRAPCOLS` tạo ra một dải đa cột mà sau này xuất hiện trong HTML dưới dạng bảng. Khi chúng ta sau này **embed fonts in html**, kiểu dáng của bảng sẽ dựa vào các phông chữ chúng ta nhúng, đảm bảo việc hiển thị nhất quán trên các trình duyệt. + +## Bước 2 – Lưu Workbook dưới dạng XPS Trong Khi Bảo Vệ Emoji (convert excel to xps) + +Nếu bạn cần một định dạng sẵn sàng để in, XPS là lựa chọn ổn định. Tuy nhiên, các tài liệu hiện đại thường chứa emoji hoặc ký hiệu sử dụng bộ chọn biến thể. Bật `EnableFontVariationSelectors` đảm bảo các ký tự này tồn tại qua quá trình chuyển đổi. + +```java + // -------------------------------------------------------------- + // Step 2: Save as XPS with font variation selectors enabled + // -------------------------------------------------------------- + WorkbookSettings settings = workbook.getSettings(); + settings.setEnableFontVariationSelectors(true); // crucial for emoji + + String xpsPath = "output/withVariations.xps"; + workbook.save(xpsPath, SaveFormat.XPS); + System.out.println("Workbook saved as XPS at: " + xpsPath); +``` + +**Bạn nhận được:** +Một tệp XPS hiển thị bất kỳ emoji nào được nhúng chính xác như trong workbook nguồn. Điều này đáp ứng yêu cầu **convert excel to xps** và chứng minh việc xử lý phông chữ không chỉ giới hạn trong HTML. + +## Bước 3 – Xuất ra HTML với Phông Chữ Được Nhúng (how to embed fonts & embed fonts in html) + +Bây giờ chúng ta đến phần cốt lõi của hướng dẫn: **cách nhúng phông chữ** khi chuyển Excel sang HTML. Aspose.Cells cho phép chúng ta nhúng phông chữ trực tiếp vào tệp HTML được tạo, loại bỏ nhu cầu sử dụng các tệp phông chữ bên ngoài. + +```java + // -------------------------------------------------------------- + // Step 3: Export to HTML with embedded fonts + // -------------------------------------------------------------- + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + htmlOptions.setEmbedFonts(true); // this is the key line for embed fonts in html + htmlOptions.setExportImagesAsBase64(true); // optional, keeps all assets in one file + + String htmlPath = "output/embeddedFonts.html"; + workbook.save(htmlPath, htmlOptions); + System.out.println("HTML with embedded fonts saved at: " + htmlPath); +``` + +**Cách hoạt động:** +`setEmbedFonts(true)` chỉ cho trình render đọc các tệp phông chữ được sử dụng trong workbook và nhúng chúng dưới dạng quy tắc `@font-face` được mã hoá Base64 trong thẻ ` + + + + +
Item 1Item 4Item 7
Item 2Item 5Item 8
Item 3Item 6Item 9
+``` + +Lưu ý quy tắc `@font-face`—đây là câu trả lời cụ thể cho **embed fonts in html**. + +## Bước 4 – Xuất Workbook Chứa Đối Tượng OLE sang PPTX (how to export ole) + +Nhiều báo cáo kinh doanh nhúng tài liệu Word, PDF hoặc các sheet Excel khác dưới dạng đối tượng OLE. Khi bạn xuất một workbook như vậy sang PowerPoint, thường mất khả năng chỉnh sửa đối tượng. Aspose.Cells giữ nguyên khả năng chỉnh sửa ngay từ đầu. + +```java + // -------------------------------------------------------------- + // Step 4: Export a workbook with an OLE object to PPTX + // -------------------------------------------------------------- + // Load a workbook that already contains an OLE object. + Workbook oleWorkbook = new Workbook("input/oleObject.xlsx"); + + String pptxPath = "output/oleEditable.pptx"; + oleWorkbook.save(pptxPath, SaveFormat.PPTX); + System.out.println("PPTX with editable OLE object saved at: " + pptxPath); +``` + +**Tại sao điều này quan trọng:** +Nếu bạn đang tìm **how to export ole**, đoạn mã này hiển thị lệnh API chính xác. Slide PowerPoint tạo ra chứa đối tượng OLE dưới dạng thành phần sống, nhấp đúp để chỉnh sửa—không cần xử lý hậu kỳ thêm. + +## Bước 5 – Áp Dụng Mẫu Smart Marker (master‑detail) và Hoàn Thành Demo + +Smart Markers cho phép bạn ràng buộc nguồn dữ liệu (Map, JSON, DataTable) trực tiếp vào mẫu Excel. Dưới đây là một ví dụ tối thiểu in các hàng master‑detail. + +```java + // -------------------------------------------------------------- + // Step 5: Apply Smart Marker template (master‑detail) + // -------------------------------------------------------------- + String smartMarkerTemplate = "${Orders.Master:OrderID,Customer}\n${Orders.Detail:Product,Qty,Price}"; + // Simulated data source + java.util.Map dataSource = new java.util.HashMap<>(); + java.util.List> master = new java.util.ArrayList<>(); + java.util.Map masterRow = new java.util.HashMap<>(); + masterRow.put("OrderID", 1001); + masterRow.put("Customer", "Acme Corp"); + master.add(masterRow); + dataSource.put("Orders.Master", master); + + java.util.List> detail = new java.util.ArrayList<>(); + java.util.Map detailRow = new java.util.HashMap<>(); + detailRow.put("Product", "Widget"); + detailRow.put("Qty", 5); + detailRow.put("Price", 9.99); + detail.add(detailRow); + dataSource.put("Orders.Detail", detail); + + SmartMarkerProcessor processor = new SmartMarkerProcessor(new Workbook()); + processor.apply(smartMarkerTemplate, dataSource); + processor.getWorkbook().save("output/smartMarkerResult.xlsx"); + System.out.println("Smart Marker workbook saved."); + } +} +``` + +**Bạn sẽ thấy:** +Một workbook mới (`smartMarkerResult.xlsx`) trong đó các placeholder trong mẫu được thay thế bằng dữ liệu. Bước này không trực tiếp liên quan đến phông chữ, nhưng nó hoàn thiện hướng dẫn bằng cách hiển thị quy trình báo cáo thường đi trước khi xuất **embed fonts in html**. + +## Những Cạm Bẫy Thường Gặp & Mẹo Chuyên Gia (Đảm Bảo Nhúng Phông Chữ Thành Công) + +| Vấn đề | Tại sao xảy ra | Cách khắc phục | +|-------|----------------|----------------| +| Phông chữ bị thiếu trong tệp HTML | Workbook sử dụng phông chữ hệ thống không được cài đặt trên máy chủ. | Sử dụng `Workbook.getSettings().setDefaultFont("Arial")` trước khi tải dữ liệu, hoặc nhúng các tệp phông chữ cần thiết theo cách thủ công. | +| HTML đầu ra quá lớn | Nhúng nhiều phông chữ lớn làm tăng kích thước tệp. | Giới hạn việc nhúng chỉ các phông chữ thực sự sử dụng: `htmlOptions.setFontEmbeddingMode(HtmlFontEmbeddingMode.EmbedSubset)`. | +| Emoji biến mất sau khi chuyển đổi sang XPS | Các bộ chọn biến thể bị loại bỏ theo mặc định. | Bật `settings.setEnableFontVariationSelectors(true)` như đã trình bày ở Bước 2. | +| Đối tượng OLE trở thành hình ảnh tĩnh trong PPTX | Workbook nguồn được lưu với `setSuppressOLEObjects(true)`. | Đảm bảo **không** suppress OLE objects khi lưu sang PPTX. | + +## Xác Minh Kết Quả + +1. Mở `embeddedFonts.html` trong Chrome/Firefox. Bảng nên hiển thị bằng phông chữ đã nhúng (ví dụ, Arial) ngay cả khi phông chữ đó không được cài đặt trên máy. +2. Mở `withVariations.xps` trong Windows XPS Viewer. Emoji như 👍 nên hiển thị đúng. +3. Mở `oleEditable.pptx` trong PowerPoint. Nhấp đúp vào hình dạng OLE; + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file