java保存数据到文件-java保存内容到文件
发布时间:2023-06-07 10:10 浏览次数:次 作者:佚名
目录
基于servlet、jsp、mysql的Javaweb导入导出数据格式为excel文件的项目 1.创建数据库表
首先,我们需要创建一个用于存储 Excel 数据的数据库表。在该表中,我们可以为每个字段设置一个对应的列名,在导入和导出数据时使用这些列名来操作数据。
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`age` int(11) NOT NULL,
`sex` varchar(10) NOT NULL,
`address` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
);
2.编写导入数据的 Servlet
我们编写一个 Servlet 类来实现从 Excel 文件中读取数据并将其保存到数据库中。具体操作步骤如下:
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ImportExcelServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取上传的 Excel 文件
String filePath = "D:/data.xls";
File file = new File(filePath);
// 读取 Excel 文件中的数据
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
int rows = sheet.getRows();
for (int i = 1; i < rows; i++) {
Cell[] cells = sheet.getRow(i);
String name = cells[0].getContents();
int age = Integer.parseInt(cells[1].getContents());
String sex = cells[2].getContents();
String address = cells[3].getContents();
// 将数据插入到数据库中
DBUtil.executeUpdate("INSERT INTO student(name,age,sex,address) VALUES(?,?,?,?)", name, age, sex, address);
}
workbook.close();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("数据导入成功!");
}
}
在该类中,我们先获取上传的 Excel 文件。然后,使用 jxl 库来读取 Excel 文件中的数据,并将其插入到数据库中。
3.编写导出数据的 Servlet
我们编写一个 Servlet 类来实现从数据库读取数据并将其导出为 Excel 文件。具体操作步骤如下:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExportExcelServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 从数据库中读取数据
String sql = "SELECT * FROM student";
List students = StudentDAO.getStudentList(sql);
// 导出数据到 Excel 文件
String fileName = "D:/data.xls";
WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));
WritableSheet sheet = workbook.createSheet("sheet1", 0);
sheet.addCell(new Label(0, 0, "姓名"));
sheet.addCell(new Label(1, 0, "年龄"));
sheet.addCell(new Label(2, 0, "性别"));
sheet.addCell(new Label(3, 0, "地址"));
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
sheet.addCell(new Label(0, i + 1, student.getName()));
sheet.addCell(new Label(1, i + 1, String.valueOf(student.getAge())));
sheet.addCell(new Label(2, i + 1, student.getSex()));
sheet.addCell(new Label(3, i + 1, student.getAddress()));
}
workbook.write();
workbook.close();
// 下载导出的 Excel 文件
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=data.xls");
response.sendRedirect(request.getContextPath() + "/index.jsp");
}
}
在该类中,我们先从数据库中读取数据。然后java保存数据到文件java保存数据到文件,使用 jxl 库将数据导出到 Excel 文件中。最后,我们设置响应内容类型和头信息,并将 Excel 文件作为附件下载
4.编写前端页面
我们编写一个 JSP 页面来实现数据导入和导出操作。具体操作步骤如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
导入导出 Excel 数据
导入导出 Excel 数据
导出数据