AI-Assisted Development
AI-friendly API
Axyra’s APIs are designed and refined for clarity, making them easier for AI coding agents to understand and use. For example, a method named get can be misleading if it also modifies data. We test how coding agents interpret and use our APIs, then refine them to reduce such ambiguity. The Axyra Agent Skill complements this API design with guidance grounded in official documentation and verified examples.
Axyra Agent Skill
Use the Axyra Sheets skill with an AI coding assistant to build Java spreadsheet workflows or migrate existing spreadsheet code. Grounded in Axyra documentation, verified examples, and guidance for avoiding common mistakes, the skill helps the assistant generate code that fits the Axyra API and your project.
AI assistance is a development workflow, not a separate Axyra API. The generated
application uses the same io.keikai.axyra.sheets.* classes as manually written
code.
The skill covers Excel import and export, template reports, formulas, charts,
pivots, PDF and image rendering, streaming exports, licensing issues, and
migration from Aspose.Cells, Apache POI, or another spreadsheet library. It was
verified against Axyra Sheets 1.0.0-Beta-Eval.
Get the Axyra Sheets skill
Choose the installation method that fits your coding assistant:
For Codex, install the axyra-sheets folder in ~/.codex/skills/ (or your
configured $CODEX_HOME/skills/ directory), then start a new session. For
Claude Code, install it in ~/.claude/skills/ or your project’s
.claude/skills/ directory. Other assistants may use a different skill
directory; follow their installation documentation. You can also inspect the
skill source on GitHub.
The skill guides your coding assistant; it does not install the Axyra library. Your application still needs Java 17 or later and the Axyra Sheets dependency. See Installation.
Start with a focused prompt
Copy this prompt into your coding assistant and change the workbook task. Include the Axyra version used by your project and attach relevant source files or sample inputs when you have them.
Use the Axyra Sheets skill to create a Java 17 Maven application using Axyra Sheets
(io.keikai:axyra-sheets:1.0.0-Beta-Eval).
Generate an XLSX sales report with columns Region, Q1, Q2, and Total.
Add three data rows, calculate Total with formulas, style the header,
freeze the first row, and save the result as sales-report.xlsx.
Compile and run the application, reopen sales-report.xlsx, and verify the totals
and number formats. Tell me where the output is saved and report anything you
could not verify.
If your assistant uses a shorthand for invoking an installed skill, use
$axyra-sheets in Codex or /axyra-sheets in Claude Code. If your coding assistant does not support installed skills, extract the downloaded folder into your workspace and ask the assistant to read axyra-sheets/SKILL.md before starting your task.
Build and verify
Treat generated code as a draft until it compiles and its output has been inspected. Ask the assistant to:
- Build the project and run the generated code.
- Reopen the output and check important values, formulas, and formats.
- Inspect the final workbook, PDF, or image for layout and rendering issues.
- Report the commands it ran and any checks it could not complete.
Without a license key, Axyra runs in Evaluation Mode and adds evaluation marks to saved and rendered output. For production license configuration and evaluation limits, see Licensing and Evaluation.
Tips for working with AI
- Provide your Axyra dependency version.
- Describe the input and expected output clearly.
- Ask the assistant to build and run the code.
- Check the generated workbook, PDF, or image.
Prompt examples
The following examples show what to ask your coding assistant, the results to expect, and what to check in the generated output. Adapt the prompts to your own files and requirements.
Create a report from CSV
Prompt
Use the Axyra Sheets skill. Read sales.csv (Date, Region, Product, Qty, UnitPrice)
and create sales.xlsx with an Amount formula on each row, a grand total, bold
headers, currency formatting, and a frozen header row. Build and run the code.
Expected result: A runnable project and sales.xlsx containing typed dates
and numbers, stored formulas, formatting, and a frozen header row.
What to verify: Reopen the file and check the row count, formula results, grand total, number formats, and visible layout.
Update a workbook without losing formatting
Prompt
Use the Axyra Sheets skill. Apply the prices in price-updates.csv to the matching
SKUs in price-list.xlsx and save price-list-updated.xlsx. Preserve existing
styles, comments, hyperlinks, formulas, and workbook structure. Build and run the
code, then compare the input and output.
Expected result: Only the matching price values change; the workbook’s other content and features remain intact.
What to verify: Check the number of updated SKUs, compare the new values with the CSV, and confirm that styles, comments, links, formulas, and sheet names were preserved.
Improve the performance of a large export
Include realistic row counts, memory constraints, and whether the job mostly reads or writes.
Prompt
Use the Axyra Sheets skill. Profile this 100,000-row export on a representative
sample, remove avoidable per-cell work, and keep values, formulas, formats, and
the command line unchanged. Report the measurements, implementation changes, and
any trade-offs. Build and run the optimized version and compare its output with
the original.
Expected result: A measured optimization appropriate to the workflow, such as bulk range operations or a streaming export, with its limitations explained.
What to verify: Compare before-and-after measurements and confirm that the optimized output still meets the same checks as the original.
Migrate an existing spreadsheet workflow
Give the assistant the code that produces the current workbook. For example, this Apache POI export creates a text identifier, a date, an amount, a formula, two number formats, a bold header, and a frozen row:
Starting Apache POI code
Path output = Path.of("poi-sales.xlsx");
try (XSSFWorkbook wb = new XSSFWorkbook()) {
Sheet sheet = wb.createSheet("Sales");
Row header = sheet.createRow(0);
String[] labels = {"Order ID", "Date", "Amount", "With Tax"};
for (int c = 0; c < labels.length; c++) {
header.createCell(c).setCellValue(labels[c]);
}
CellStyle headerStyle = wb.createCellStyle();
Font headerFont = wb.createFont();
headerFont.setBold(true);
headerStyle.setFont(headerFont);
for (Cell cell : header) cell.setCellStyle(headerStyle);
Row row = sheet.createRow(1);
row.createCell(0).setCellValue("00042");
row.createCell(1).setCellValue(Date.valueOf("2026-10-27"));
row.createCell(2).setCellValue(1250.0);
row.createCell(3).setCellFormula("C2*1.2");
DataFormat formats = wb.createDataFormat();
CellStyle dateStyle = wb.createCellStyle();
dateStyle.setDataFormat(formats.getFormat("yyyy-mm-dd"));
row.getCell(1).setCellStyle(dateStyle);
CellStyle moneyStyle = wb.createCellStyle();
moneyStyle.setDataFormat(formats.getFormat("#,##0.00"));
row.getCell(2).setCellStyle(moneyStyle);
row.getCell(3).setCellStyle(moneyStyle);
sheet.createFreezePane(0, 1);
wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
try (OutputStream out = Files.newOutputStream(output)) {
wb.write(out);
}
}
Prompt
Use the Axyra Sheets skill to migrate the Apache POI code above to Axyra Sheets
1.0.0-Beta-Eval. Preserve the Sales sheet name, the text value "00042",
the date, formula, number formats, bold header, and frozen row. Build and run both
versions, reopen both files, compare their values, types, formulas, formats, and
sheet structure, and report every difference. Remove POI only after confirming
that no source file still uses it.
Expected result: A runnable Axyra implementation with an operation mapping and comparison report. The migrated core should look like this:
Path output = Path.of("axyra-sales.xlsx");
try (Workbook wb = Workbook.create()) {
Sheet sheet = wb.createSheet("Sales");
sheet.range("A1:D1").setValues(new CellValue[][] { {
CellValue.text("Order ID"), CellValue.text("Date"),
CellValue.text("Amount"), CellValue.text("With Tax")
} });
sheet.range("A1:D1").setStyle(CellStyle.builder().bold().build());
sheet.cell(1, 0).setValue(CellValue.text("00042"));
sheet.cell(1, 1).setDate(LocalDate.of(2026, 10, 27));
sheet.cell(1, 2).setValue(CellValue.number(1250.0));
sheet.cell(1, 3).setFormula("C2*1.2");
sheet.cell(1, 1).setStyle(CellStyle.builder()
.numberFormat("yyyy-mm-dd").build());
sheet.range("C2:D2").setStyle(CellStyle.builder()
.numberFormat("#,##0.00").build());
sheet.freezePanes(1, 0);
wb.save(output);
}
What to verify: Reopen both workbooks and compare the Sales sheet name,
cell types and values in A1:D2, formula text and cached result in D2, bold
header, date and money formats, frozen pane, default font, and default row
height. If POI cannot run, use its saved workbook as the baseline and say that
execution equivalence was not verified.
Next steps
Continue from a working example
Start with the runnable examples or the manual Quick Start, then add one capability at a time:
- Read and write an existing file
- Render PDF and images
- Fill an Excel template with Template Markers
- Stream a large export
- Configure licensing and Evaluation Mode
The skill can also help diagnose dependency, native-library loading, platform, and licensing problems. For deployment issues, provide the build file, deployment configuration, target operating system and architecture, and the complete error log so the assistant can reproduce the smallest failing case.
Build an enterprise reporting workflow
Explore our financial workflow, data cleansing and reporting examples to see how Axyra fits into a larger application. Try the live demos, then use the corresponding GitHub projects as a starting point for your own workflow.
Give your coding assistant the example code, describe your input data and reporting requirements, and ask it to adapt the workflow to your application.