java aspose.words implémente Word pour générer le formulaire et le télécharger sur le site

1. Maven ajoute la dépendance aspose.words

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.2</version>
</dependency>

Deuxièmement, le formulaire de fond est généré et transmis au local

1. Écrivez js au premier plan pour qu'il puisse passer au contrôleur

location.href="/wordExport/exportScoreList?username=sa&readFlag=1"

2. Créer une classe de contrôleur et une méthode de traitement

@RequestMapping("/wordExport")
@RestController
public class WordExportController{
    @Autowired
    private TestRecordService testRecordService;
    
    @GetMapping("/exportScoreList")
    public void exportScoreList(HttpServletResponse response,String username,
                                String testType,String testName,String readFlag){
        username=username==null?"":username;
        testType=testType==null?"":testType;
        testName=testName==null?"":testName;
        readFlag=readFlag==null?"":readFlag;

        List<TestRecordExt> testRecordExtList=testRecordService.getTestRecordExtList("",username,readFlag,testName,testType);
        try {
            String fileName="考试成绩单"+ DateUtil.getCurrentTimeByDay()+".doc";
            response.setHeader("content-type", "application/octet-stream");
            response.setContentType("application/octet-stream;charset=UTF-8");
            response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"),"ISO-8859-1"));
            OutputStream outputStream=response.getOutputStream();
            Document document=new Document();
            DocumentBuilder builder = new DocumentBuilder(document);
            //单元格水平居中对齐
            builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
            //段落居中对齐
            builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
            builder.writeln("考试成绩单");
            //段落左对齐
            builder.getParagraphFormat().setAlignment(ParagraphAlignment.LEFT);
            String pickname="";
            if(testRecordExtList!=null&&testRecordExtList.size()>0){
                pickname=testRecordExtList.get(0).getPickname();
            }
            builder.writeln("姓名:"+pickname);
            builder.startTable();
            //表头
            builder.insertCell();
            builder.write("序号");
            builder.insertCell();
            builder.write("考试");
            builder.insertCell();
            builder.write("考试时长");
            builder.insertCell();
            builder.write("成绩");
            builder.insertCell();
            builder.write("排名");
            builder.insertCell();
            builder.write("考试类型");
            builder.endRow();
            //表格内容
            for(int i=0;i<testRecordExtList.size();i++){
                TestRecordExt testRecordExt=testRecordExtList.get(i);
                builder.insertCell();
                builder.write((i+1)+"");
                builder.insertCell();
                builder.write(testRecordExt.getTestName());
                builder.insertCell();
                int testRecordLength=testRecordExt.getTestRecordLength();
                String testLengthStr="";
                int testHour=testRecordLength/3600;
                if(testHour>0){
                    testLengthStr+=testHour+" 小时";
                }
                int testMinutes=testRecordLength%3600/60;
                if(testMinutes>0){
                    testLengthStr+=testMinutes+" 分钟";
                }
                int testSecond=testRecordLength%60;
                if(testSecond>0){
                    testLengthStr+=testSecond+" 秒";
                }
                builder.write(testLengthStr);
                builder.insertCell();
                builder.write(testRecordExt.getTestScore()+"分");
                builder.insertCell();
                builder.write(testRecordExt.getRankNo()+"");
                builder.insertCell();
                builder.write(testRecordExt.getTestTypeName());
                builder.endRow();
            }
            builder.endTable();
            document.save(outputStream, SaveFormat.DOC);
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        }
}

Rendus finaux

3. Problèmes rencontrés

1. Maven a ajouté la dépendance aspose.words et il y avait une situation où le paquet jar ne pouvait pas être téléchargé

Veuillez vous référer au blog suivant

maven ne peut pas télécharger la solution aspose

2. Lorsque le fichier est téléchargé sur le local, le chinois dans le nom de fichier ne peut pas être affiché

Fichier de téléchargement Java, le nom du fichier ne peut pas être affiché en chinois

3. Il y a des filigranes dans le document Word et il y a trois filigranes

4. Après la dépendance Maven plus aspose.words, Spring Boot prend 10 minutes pour démarrer.

Quiconque a résolu les deux problèmes ci-dessus, assurez-vous de me le dire

Si vous êtes intéressé à utiliser le composant poi pour générer Word et le télécharger sur le site, vous pouvez aller sur un autre de mes blogs

Java poi réalise Word pour générer un formulaire et le télécharger en local

Publié 34 articles originaux · reçu 1 · vues 1946

Je suppose que tu aimes

Origine blog.csdn.net/qq_38974638/article/details/104790242
conseillé
Classement