Skip to content

AI Excel Generation

The AI Excel module of NiteMoon AI Platform uses natural language-driven intelligent report generation, allowing users to quickly create professional Excel reports through a conversational interface.

Key Features

  • LLM-powered generation: Understand requirements and generate reports through large language models
  • Conversational interface: Natural language interaction without learning complex formulas
  • Template management: Support for saving and reusing report templates
  • Multi-format export: Support for Excel, CSV, PDF, and other formats

Workflow

mermaid
graph LR
    A[User Input] --> B[Intent Understanding]
    B --> C[Data Extraction]
    C --> D[Template Generation]
    D --> E[Excel Generation]
    E --> F[File Download]

Use Cases

Financial Reports

User: Help me generate a financial report for this month, including revenue, expenses, and profit
AI: Sure, I will generate a financial report for you including:
- Revenue details
- Expense details
- Profit summary

Data Analysis

User: Analyze this sales data and generate a monthly trend chart
AI: I will analyze the sales data and generate:
- Monthly sales trend chart
- Product sales distribution
- Year-over-year growth rate

Business Statistics

User: Compile this month's order data, categorized by region
AI: I will generate order statistics categorized by region:
- Order count by region
- Order amount by region
- Regional proportion analysis

Template Management

Template Definition

java
@Entity
public class ExcelTemplate {
    @Id
    private Long id;
    private String name;           // Template name
    private String description;    // Template description
    private String category;       // Category
    private String prompt;         // Generation prompt
    private String structure;      // Table structure
    private Map<String, Object> config;  // Configuration
}

Built-in Templates

Template NamePurposeDescription
Financial ReportFinancial AnalysisRevenue, expense, and profit statistics
Sales ReportSales AnalysisSales trends, product analysis
Inventory ReportInventory ManagementInventory statistics, alert reminders
Personnel ReportHuman ResourcesPersonnel statistics, attendance analysis
Project ReportProject ManagementProgress tracking, cost analysis

Code Examples

Excel Generation Service

java
@Service
public class AiExcelService {
    
    public ExcelFile generate(String userRequest) {
        // 1. Understand user intent
        ExcelIntent intent = llmService.parseIntent(userRequest);
        
        // 2. Extract data requirements
        DataRequirement requirement = llmService.extractRequirement(intent);
        
        // 3. Query data
        Map<String, Object> data = dataService.query(requirement);
        
        // 4. Generate Excel structure
        ExcelStructure structure = llmService.generateStructure(intent, data);
        
        // 5. Generate Excel file
        return excelGenerator.generate(structure, data);
    }
}

Conversational Generation

java
@Service
public class ExcelChatService {
    
    public ExcelChatResponse chat(String sessionId, String message) {
        // Get conversation history
        List<ChatMessage> history = chatHistoryService.getHistory(sessionId);
        
        // Generate response
        String response = llmService.chat(history, message);
        
        // Check if Excel generation is needed
        if (isExcelRequest(response)) {
            ExcelFile file = aiExcelService.generate(response);
            return ExcelChatResponse.builder()
                .message("Excel has been generated")
                .file(file)
                .build();
        }
        
        return ExcelChatResponse.builder()
            .message(response)
            .build();
    }
}

Template Service

java
@Service
public class ExcelTemplateService {
    
    public ExcelTemplate create(String name, String prompt, String structure) {
        ExcelTemplate template = new ExcelTemplate();
        template.setName(name);
        template.setPrompt(prompt);
        template.setStructure(structure);
        return templateRepository.save(template);
    }
    
    public ExcelFile generateFromTemplate(Long templateId, Map<String, Object> data) {
        ExcelTemplate template = templateRepository.findById(templateId);
        return excelGenerator.generate(template.getStructure(), data);
    }
}

Excel Generator

Generator Interface

java
public interface ExcelGenerator {
    
    // Generate Excel file
    ExcelFile generate(ExcelStructure structure, Map<String, Object> data);
    
    // Generate Excel file (with template)
    ExcelFile generate(String templatePath, Map<String, Object> data);
    
    // Export as CSV
    byte[] exportCsv(ExcelFile excelFile);
    
    // Export as PDF
    byte[] exportPdf(ExcelFile excelFile);
}

Apache POI Implementation

java
@Service
public class PoiExcelGenerator implements ExcelGenerator {
    
    @Override
    public ExcelFile generate(ExcelStructure structure, Map<String, Object> data) {
        Workbook workbook = new XSSFWorkbook();
        
        // Create header row
        Sheet sheet = workbook.createSheet(structure.getSheetName());
        Row headerRow = sheet.createRow(0);
        List<String> headers = structure.getHeaders();
        for (int i = 0; i < headers.size(); i++) {
            headerRow.createCell(i).setCellValue(headers.get(i));
        }
        
        // Fill data
        List<Map<String, Object>> rows = (List<Map<String, Object>>) data.get("rows");
        for (int i = 0; i < rows.size(); i++) {
            Row dataRow = sheet.createRow(i + 1);
            Map<String, Object> row = rows.get(i);
            for (int j = 0; j < headers.size(); j++) {
                dataRow.createCell(j).setCellValue(
                    String.valueOf(row.get(headers.get(j)))
                );
            }
        }
        
        // Convert to file
        return convertToFile(workbook);
    }
}

Best Practices

  1. Clarify requirements: Describe report requirements in as much detail as possible
  2. Use templates: Reuse templates for frequently used reports
  3. Data validation: Check data accuracy after generation
  4. Format optimization: Adjust column widths, styles, and other formatting to make reports more polished
  5. Regular updates: Update templates as business needs change

Copyright © 2023-2026 nitemoon.cn All Rights Reserved