|
@@ -1,5 +1,6 @@
|
|
|
package com.zskk.control;
|
|
|
|
|
|
+import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
@@ -8,6 +9,8 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
+import com.alibaba.excel.util.ListUtils;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -19,6 +22,7 @@ import com.jfinal.plugin.activerecord.Record;
|
|
|
import com.jfinal.plugin.activerecord.dialect.SqlServerDialect;
|
|
|
import com.jfinal.plugin.druid.DruidPlugin;
|
|
|
import com.zskk.service.DataService;
|
|
|
+import com.zskk.service.DemoData;
|
|
|
import com.zskk.service.ServiceFactory;
|
|
|
import com.zskk.service.ThreadPoolService;
|
|
|
|
|
@@ -137,6 +141,59 @@ public class ViewController extends Controller {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public void xzexcel() {
|
|
|
+ String fileName ="/home/pi/Desktop/xlsx/hisdata" + ".xlsx";
|
|
|
+ File file = new File(fileName);
|
|
|
+
|
|
|
+ // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
|
|
|
+ File tempFile = new File("/home/pi/Desktop/xlsx/temp.xlsx");
|
|
|
+ List<DemoData> list = data(this.getPara("time1"), this.getPara("time2"));
|
|
|
+ if (file.exists()){
|
|
|
+ // 第二次按照原有格式,不需要表头,追加写入
|
|
|
+ EasyExcel.write(file, DemoData.class).needHead(false).
|
|
|
+ withTemplate(file).file(tempFile).sheet().doWrite(list);
|
|
|
+ }else {
|
|
|
+ // 第一次写入需要表头
|
|
|
+ EasyExcel.write(file,DemoData.class).sheet().doWrite(list);
|
|
|
+ }
|
|
|
+
|
|
|
+// try (ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build()) {
|
|
|
+// // 这里注意 如果同一个sheet只要创建一次
|
|
|
+// WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
|
|
|
+// // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来
|
|
|
+// for (int i = 0; i < 5; i++) {
|
|
|
+// // 分页去数据库查询数据 这里可以去数据库查询每一页的数据
|
|
|
+// List<DemoData> data = data();
|
|
|
+// excelWriter.write(data, writeSheet);
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ if (tempFile.exists()){
|
|
|
+ file.delete();
|
|
|
+ tempFile.renameTo(file);
|
|
|
+ }
|
|
|
+ renderJson(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<DemoData> data(String time1,String time2) {
|
|
|
+ List<DemoData> list = ListUtils.newArrayList();
|
|
|
+ List<Record> lists = Db.use("connected").find("select * from v_Yyx where examdatetime>? and examdatetime<?",
|
|
|
+ time1, time2);
|
|
|
+ for (Record record : lists) {
|
|
|
+ DemoData data = new DemoData();
|
|
|
+ data.setExamdatetime(record.getStr("examdatetime"));
|
|
|
+ data.setAccnum(record.getStr("accnum"));
|
|
|
+ data.setAge(record.getStr("age"));
|
|
|
+ data.setName(record.getStr("name"));
|
|
|
+ data.setPatientid(record.getStr("patientid"));
|
|
|
+ data.setProject(record.getStr("project"));
|
|
|
+ data.setSex(record.getStr("sex"));
|
|
|
+ list.add(data);
|
|
|
+
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
public void testConn() {
|
|
|
try {
|
|
|
DruidPlugin druidPluginConnected = createConnectedDruidPlugin();
|