一、通过文件流的形式。首先FileInputStream读取Excel,然后FileOutputStream写出来,例如:(下面的代码没有实现,存在缺陷)
JFileChooser chooser = new JFileChooser();
//要想添加默认的文件名,需将setSelectedFile()这个方法放到打开对话框之前
String defaultFileName = "a.csv";
chooser.setSelectedFile(new File(defaultFileName));
chooser.showSaveDialog(this);
FileInputStream fis = null;
FileOutputStream fos = null;
String sourcefileUrl = "ini/template1/customers.csv";
// String outUrl = chooser.getSelectedFile().getPath();
String outUrl = chooser.getCurrentDirectory().getPath();
System.out.println("outUrl:"+outUrl);
File sourceFile = new File(sourcefileUrl);
System.out.println("sourceFile:"+sourceFile);
File targetFile = new File(outUrl);
System.out.println("targetFile:"+targetFile);
fis = new FileInputStream(sourceFile);
System.out.println("fis:"+fis);
byte[] b = new byte[(int) sourceFile.length()];
int len = fis.read(b);
System.out.println("len:"+len);
while(len>0){
fos = new FileOutputStream(targetFile);
System.out.println("len:"+len);
System.out.println("os:"+fos);
fos.write(b, 0, len);
fos.flush();
}
// fos.close();
fis.close();
contentFileNameText.setText("模板下载成功...");
二、新创建一个Excel表格,加上头标题,表面看起来实现了下载的功能,实际是新创建的Excel。
//下载Excel模板,可以通过新创建的模板来实现下载
JFileChooser chooser = new JFileChooser();
String defaultFileName = "customers.csv";
chooser.setSelectedFile(new File(defaultFileName));
chooser.showSaveDialog(this);
File file = chooser.getSelectedFile();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("第一页");
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue(" ");
cell = row.createCell((short) 1);
cell.setCellValue(" ");
cell = row.createCell((short) 2);
cell.setCellValue(" ");
cell = row.createCell((short) 3);
.
.
.
// ByteArrayOutp;utStream baos = new ByteArrayOutputStream();
FileOutputStream fos = new FileOutputStream(file);
try{
// FileOutputStream fos = new FileOutputStream(file);
workbook.write(fos);
}catch(Exception ex){
ExceptionHandler.handle(ex);
}