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