📄 writetoexcel.java
字号:
package shyhao.publicsources;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class WriteToExcel {
private static File file;
private static int recentPage = 0;
private static int recentRow = 0;
private static HSSFWorkbook wb;
private static HSSFSheet sheet;
private static HSSFRow row;
private static SimpleDateFormat dateFormator = new SimpleDateFormat("MM-dd HH:mm");
private static void init() throws IOException {
file = new File("ceshizhuanyong.xls");
if(!file.exists()) {
file.createNewFile();
System.out.println(file.getAbsolutePath());
} else {
file.delete();
file.createNewFile();
System.out.println("delete");
}
recentPage = 0;
wb = new HSSFWorkbook();
if(recentPage == 0) {
generatePage();
}
}
public synchronized static void write(HashMap<Date, MonitorData> data) throws IOException {
if(file == null || wb == null || sheet == null) {
init();
}
OutputStream out = new FileOutputStream(file);
Iterator<Entry<Date, MonitorData>> iterator = data.entrySet().iterator();
while(iterator.hasNext()) {
Entry<Date, MonitorData> entry = iterator.next();
if(recentRow > 65535) {
generatePage();
}
row = sheet.createRow(recentRow);
System.out.println("generate:"+recentRow);
recentRow++;
row.createCell((short)0).setCellValue(new HSSFRichTextString(DateFormat.formatDate(entry.getKey())));
row.createCell((short)1).setCellValue(new HSSFRichTextString(String.valueOf(entry.getValue().getCpuRate())));
row.createCell((short)2).setCellValue(new HSSFRichTextString(String.valueOf(entry.getValue().getRamRate())));
row.createCell((short)3).setCellValue(new HSSFRichTextString(String.valueOf((int)(entry.getValue().getNetPackets()))));
}
wb.write(out);
if(out != null) {
out.close();
}
}
private static void generatePage() {
recentRow = 0;
sheet = wb.createSheet(generatePageName(new Date()));
HSSFRow titleRow = sheet.createRow(recentRow);
titleRow.createCell((short)0).setCellValue(new HSSFRichTextString("Time"));
titleRow.createCell((short)1).setCellValue(new HSSFRichTextString("CPU(%)"));
titleRow.createCell((short)2).setCellValue(new HSSFRichTextString("RAM(%)"));
titleRow.createCell((short)3).setCellValue(new HSSFRichTextString("Net Packets"));
recentRow++;
recentPage++;
}
private static String generatePageName(Date date) {
String returnStr = dateFormator.format(date);
date = null;
return returnStr;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
HashMap<Date, MonitorData> map = new HashMap<Date, MonitorData>();
map.put(new Date(), new MonitorData(1.1, 2.2, 3.3));
map.put(new Date(), new MonitorData(11.1, 22.2, 33.3));
map.put(new Date(), new MonitorData(111.1, 222.2, 333.3));
map.put(new Date(), new MonitorData(1111.1, 2222.2, 3333.3));
System.out.println(map.size());
write(map);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -