package hz;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class Make{
// public static void main(String []args){
//String path= request.getRealPath("/") +"/download/info.xls";
// Make mk = new Make();
// mk.abc(path);
/// }
public void abc(String path){
HSSFWorkbook wb = new HSSFWorkbook(); // 建立新HSSFWorkbook对象
HSSFSheet sheet = wb.createSheet();
// wb.setSheetName(0, "", HSSFWorkbook.ENCODING_UTF_16);
sheet.setDefaultColumnWidth((short) 15);
//HashMap hm = new HashMap();
//String cj02005 = (String)hm.get("CJ02005");
//System.out.println(cj02005);
// 样式2 宋体 写正文时用
HSSFFont font2 = wb.createFont();
font2.setColor(HSSFFont.COLOR_NORMAL);
font2.setFontName("宋体");
font2.setFontHeightInPoints((short) 12);
HSSFCellStyle normal = wb.createCellStyle();
normal.setFont(font2);
normal.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 水平居中
normal.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP); // 垂直居中
normal.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));
HSSFRow row = null;
HSSFCell cell = null;
HSSFCell csCell = null;
// 行
int i = 0;
row = sheet.createRow((short) i);
cell = row.createCell((short) (0)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("姓名"); // 设置中西文结合字符串
row = sheet.createRow((short) i);
cell = row.createCell((short) (1)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("性别"); // 设置中西文结合字符串
row = sheet.createRow((short) i);
cell = row.createCell((short) (2)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("民族"); // 设置中西文结合字符串
row = sheet.createRow((short) i);
cell = row.createCell((short) (3)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("卡号"); // 设置中西文结合字符串
row = sheet.createRow((short) i);
cell = row.createCell((short) (4)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("身份证号"); // 设置中西文结合字符串
row = sheet.createRow((short) i);
cell = row.createCell((short) (5)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("银行行号"); // 设置中西文结合字符串
row = sheet.createRow((short) i);
cell = row.createCell((short) (6)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue("银行卡号"); // 设置中西文结合字符串
String sql = "SELECT CJ02005,CJ02006,CJ02007,CJ02029,CJ02004,CJ02027,CJ02028 FROM T_CJ02";
ResultSet rs = this.sel(sql);
try {
while(rs.next()){
row = sheet.createRow((short) i + 1);
cell = row.createCell((short) (0)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02005")); // 设置中西文结合字符串
System.out.println(rs.getString("CJ02005"));
cell = row.createCell((short) (1)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02006")); // 设置中西文结合字符串
cell = row.createCell((short) (2)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02007")); // 设置中西文结合字符串
cell = row.createCell((short) (3)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02029")); // 设置中西文结合字符串
cell = row.createCell((short) (4)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02004")); // 设置中西文结合字符串
cell = row.createCell((short) (5)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02027")); // 设置中西文结合字符串
cell = row.createCell((short) (6)); // 建立新cell
cell.setCellStyle(normal);
cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 设置cell编码解决中文高位字节截断
cell.setCellValue(rs.getString("CJ02028")); // 设置中西文结合字符串
i++;
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
FileOutputStream fileOut = new FileOutputStream(path);
wb.write(fileOut);
fileOut.close();
System.out.println("====动态模板文件excel文件生成成功:========" + path);
} catch (Exception e1) {
e1.printStackTrace();
}
}
public ResultSet sel(String sql){
Connection con = null;
ResultSet rs = null;
//String sql = "SELECT CJ02005,CJ02006,CJ02007,CJ02029,CJ02004,CJ02027,CJ02028 FROM T_CJ02";
try{
con = DataConnection.getConnection();
Statement stt = con.createStatement();
rs = stt.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
}
return rs;
}
}
<body><br>
<%
String path= request.getRealPath("/") +"download/info.xls";
Make mk = new Make();
mk.abc(path);
%>
</body>
分享到:
相关推荐
在Java中,我们可以使用POI API来读取模板文件,然后在模板的基础上填充自定义数据,生成新的Excel文件。 1. **安装和引入POI库** 在Java项目中使用POI,你需要将`poi-ooxml`相关的JAR文件添加到项目的类路径中。...
本项目完整带全部jar包,可直接运行,包含echarts表格绘制,图片上传,base64图片解析,图片写入到excel,导出excel表格,文件下载,使用的是入门级别的技术servlet,博客...
Excel上传通常涉及到以下步骤: - **文件上传接收**:首先,你需要在服务器端设置一个接口,通过HTTP请求接收用户上传的Excel文件。这可以通过Servlet或Spring MVC等框架实现。 - **解析文件**:接收到文件后,使用...
这三个链接可能分别对应于查看Excel数据、上传新的Excel文件以及下载服务器上的Excel文件。此外,“最最重要的是里面的类可以复用”,意味着代码设计考虑了可重用性,开发者可以根据这个示例轻松地将相关功能融入到...
这两个方法主要用于从数据源中导出数据到Excel文件,并将生成的Excel文件上传到FTP服务器。 首先,`askForExportAndUploadMaterialReceive()`方法是整个流程的入口,它调用了`askForExportMaterialReceive()`来处理...
下载Excel文件通常涉及将服务器上的文件以HTTP响应的形式发送到客户端。在Java中,我们可以使用Servlet API来实现这一功能。在提供的代码示例中,`downLoadExcelModel` 方法首先获取到文件的服务器路径,并通过`...
这个方法同样记录了操作开始的时间,并创建了与导出文件相同名字的变量,用于构建远程服务器上的文件名。然而,在给定的代码片段中,`path` 变量的后续部分(即FTP服务器的路径)并未完全给出,因此完整的FTP上传...
下载则是相反的过程,服务器根据请求生成Excel文件(可能是新生成的,也可能是从数据库中提取的),然后将其作为响应发送回客户端,用户可以保存到本地。 在实际开发中,为了实现这些功能,我们需要掌握以下几个...
下载Excel文件通常涉及服务器端生成Excel文件或者提供已有的Excel文件链接。在客户端,我们可以创建一个隐藏的`<a>`标签,然后触发点击事件来下载: ```javascript function downloadExcel(url) { var aLink = ...
在IT行业中,Excel上传并解析Java对象是一项常见的数据处理任务,尤其在数据分析、报表生成以及数据导入导出等场景中尤为常见。这个过程涉及到的主要技术包括文件上传、Excel读取、数据转换以及Java对象映射。下面将...
在C#编程环境中,导入Excel并读取其中的图片上传是一项常见的任务,特别是在处理数据导入、数据分析或报表生成等场景。下面将详细讲解如何利用C#实现这一功能,包括使用.NET框架提供的组件以及第三方库。 首先,...
总结来说,ABAP中使用上传到服务器的Excel模板处理打印程序主要包括模板的上传、服务器上模板的检查与下载,以及数据的填充和报表生成。通过这些步骤,你可以创建一个灵活且可定制的报表生成系统,满足不同用户的...
3. **文件存储**:文件会被临时存储在服务器上,通常是在一个配置好的临时目录中,例如`java.io.tmpdir`。 4. **验证与处理**:使用Apache POI读取Excel内容,进行数据验证和业务处理。例如,`WorkbookFactory....
- **生成Excel**:根据需要,我们可以动态生成Excel文件,比如根据数据库查询结果创建报表。 - **设置响应头**:在Servlet中,设置HTTP响应头,包括`Content-Type`(通常为`application/vnd.ms-excel`或`...
5. **下载Excel文件**:当Excel文件准备完毕后,你可以将其保存到服务器的一个临时文件,并提供一个HTTP链接供用户下载。使用`Response`对象设置响应头,比如`Content-Disposition`设置为`attachment; filename=...
标题“excel通过jsp上传到数据库”明确指出,目标是将Excel文件中的数据导入到Oracle数据库中。描述进一步说明了具体的目标数据库表。这通常发生在需要批量更新或初始化数据库表的情况下,比如产品目录的更新、销售...
本项目以"jsp实现excel上传至数据库,以及从数据库导出excel"为主题,提供了一种实用的方法,适合初学者学习。下面将详细解释这个过程涉及的关键技术点。 1. JSP(JavaServer Pages):JSP是一种动态网页技术,允许...
jsp页面可以批量上传多个excel文件,后台解析入库。并将信息展现在jsp页面表格里,勾选多个数据,可以导出excel文件。很方便,很实用!(每一行数据,就相当于表格里的某张表的一条信息,后期只要改下表结构,数据库...
总的来说,ASP.NET实现Excel上传涉及前端文件选择,后端文件接收、处理、数据读取,以及可能的数据存储操作。这个过程需要对ASP.NET Web开发、文件操作、Excel处理库和数据库交互有深入理解。通过合理的代码组织和...
以上就是JavaWeb中处理Excel上传下载的基本流程。在这个过程中,Eclipse作为开发环境,可以帮助我们编写和调试代码;MySQL作为数据库,用于存储上传的数据。在实际项目中,还需要考虑异常处理、安全性(防止文件注入...