combate Java do sistema governanta de faturamento (6) - importação e exportação funções para conseguir

Esta cláusula Overview

Esta seção permitirá que os usuários a registros de exportação de receitas e despesas para a tabela excel, você também pode importar de dona de casa para excel no sistema de contabilidade.

 

exportação

registros de usuário de exportação para a tabela excel, não precisa implementar funções de interface de exportação, é um evento disparado por um item de menu, de modo que o código da lógica função de exportação escrito em exportMenuItemEvent () método pode ser.

    /**
     * “导出”菜单项的事件监听器
     *
     * @param actionEvent 事件
     */
    @FXML
    public void exportMenuItemEvent(ActionEvent actionEvent) {
        String exportPath = null;
        //实例化文件选择器
        FileChooser fileChooser = new FileChooser();
        //打开保存文件选择框
        fileChooser.setInitialFileName("Excel");
        File result = fileChooser.showSaveDialog(null);
        if(result!=null){
            exportPath = result.getAbsolutePath();
            //excel表格表头
            String[] title = {"序号", "类型", "金额", "分类", "备注", "日期"};
            // 获取当前用户的支出记录
            List<Record> recordList = recordDao.selectByUserId(Session.getUser().getUserId());
            // 将支出记录转换成二维数组
            String[][] tableData = new String[recordList.size()][6];
            int j = 0;
            for (Record record : recordList) {
                tableData[j][0] = String.valueOf(record.getRecordId());
                tableData[j][1] = record.getRecordType();
                tableData[j][2] = Float.toString(record.getRecordMoney());
                tableData[j][3] = record.getRecordClassification();
                tableData[j][4] = record.getRecordMemo();
                tableData[j][5] = record.getRecordDate();
                j++;
            }
            //导出路径
            String exportExcelFilePath = SimpleTools.exportExcel(title, tableData, exportPath);
            if (new File(exportExcelFilePath).exists()) {
                SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "导出excel成功!");
            } else {
                SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "导出excel失败!");
            }
        }
    }

Obtido pela seleção de arquivos FileChooser você deseja salvar o caminho do arquivo e método para obter todas as receitas e despesas registradas pelo usuário RecordDao selectByUserId classe (), então chamada classe exportExcel SimpleTools () escreve método para excel em. Uma vez que os três parâmetros exportExcel método primeiro argumento é o cabeçalho de dados é uma matriz unidimensional, o segundo parâmetro refere-se à tabela de conteúdos, uma matriz bi-dimensional, é necessária para converter o seu conteúdo num selectByUserId matriz bi-dimensional para se obter utilizar; terceiro parâmetro refere-se caminho de exportação de arquivo excel.

Execute o programa funciona, teste e exportação:

Abrir arquivo excel para exibir os registros exportados.

img

 

função de importação

recurso de importação também é tratado por um evento acionado por item de menu introduzido em importMenuItemEvent MainPageController.java irá alterar o código com o seguinte método:

    /**
     * “导入”菜单项的事件监听器
     *
     * @param actionEvent 事件
     */
    @FXML
    public void importMenuItemEvent(ActionEvent actionEvent) {
        //实例化文件选择器
        FileChooser fileChooser = new FileChooser();
        //设置默认文件过滤器
        fileChooser.setSelectedExtensionFilter(new FileChooser.ExtensionFilter("excel(*.xls)", "xls", "xlsx"));
        //打开文件选择框,并得到选中的文件
        File result = fileChooser.showOpenDialog(null);
        if(result!=null){
            // 获取绝对路径
            String importPath = result.getAbsolutePath();
            try {
                //读取excel表内容(不包括表头)
                String[][] content = SimpleTools.readExcelContentArray(new FileInputStream(importPath));
                boolean isSuccess = false;
                for (int i = 0; i < content.length; i++) {
                    Record record = new Record();
                    record.setUserId(Session.getUser().getUserId());
                    record.setRecordType(content[i][1]);
                    record.setRecordMoney(Float.parseFloat(content[i][2]));
                    record.setRecordClassification(content[i][3]);
                    record.setRecordMemo(content[i][4]);
                    record.setRecordDate(content[i][5]);
                    //添加数据到数据库
                    isSuccess = recordDao.addRecord(record);
                }
                // 判断是否导入成功
                if (isSuccess) {
                    SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "导入excel数据成功");
                    // 刷新界面显示的数据
                    initialize();
                } else {
                    SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "导入excel数据失败");
                }
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
        }
    }

controle do uso FileChooser para abrir Explorer para selecionar o arquivo que deseja importar excel e ler seu caminho absoluto, e depois chamar classe readExcelContentArray método () SimpleTools para ler o conteúdo da folha de excel, mas não ler o conteúdo do cabeçalho, a leitura dos resultados é uma matriz bi-dimensional, que percorre o pacote e inserido na ficha tabela classe ficha na base de dados, o número de linhas para indicar o número de registos, depois da função de inicialização chamada introduzido com sucesso de inicialização () de actualização dos dados do ecrã.

Execute o, função de teste do programa:

Para importar os dados de teste do Excel:

Importar dicas de sucesso:

caixa vermelha que é registrado como segue dados importados:

Gravação de dados sobre as funções de importação e exportação estão relacionados com o uso do pacote poi, conforme definido no métodos SimpleTools na classe, se estiver interessado em como conseguir específico, pode visualizar o código específico do método de chamada. Se você estiver interessado em ler e escrever, então você pode se destacar por conta própria para encontrar informações para os seus próprios métodos de uso de encapsulamento na Internet.

 

 

número de micro-canal público pesquisável [ Java exemplo de programa ] ou digitalizar o número de código Fanger Wei para obter mais atenção do público.

Nota: Responder para [o fundo número público 20200319 ] pode obter o código fonte deste capítulo.

Publicado 500 artigos originais · Louvor obteve 77 · vista 160 000 +

Acho que você gosta

Origin blog.csdn.net/cnds123321/article/details/104275273
Recomendado
Clasificación