package newexam;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class AccessExcelFile {
// 题库文件
static String fileName = "d:/tiku/汇总.mdb";
// 题库数量
static int NUM = 1;
// 指定输出目录,并在其下建立ExcelOperation子文件夹
static File outDir = new File("d:/cf");
static File absoluteDir = new File(outDir, "/ExcelOperation");
static Connection con = null;
// 类静态方法,完成对数据库连接等初始化工作
static {
if (!absoluteDir.exists()) {
System.out.println("正在创建文件夹");
absoluteDir.mkdirs();
}
}
/**
* 从数据库中读取Excel文件(10个),放入指定的文件夹中,文件名在数据库中已经指定
*/
public static void getExcelFile() throws Exception {
DAOAccess dao = new DAOAccess(fileName);
con = dao.getConnection();
Statement stat = con.createStatement();
// 题库中有10套题
for (int m = 1; m <= NUM; m++) {
// 每套题中有一个ExcelFile表,里面有一个ExcelFile文件
String sql = "select * from ExcelFile" + m;
ResultSet res = stat.executeQuery(sql);
while (res.next()) {
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(absoluteDir,
res.getString(2))));
InputStream in = res.getBinaryStream(3);
int ch;
while ((ch = in.read()) != -1) {
out.write(ch);
}
in.close();
out.close();
}
}
stat.close();
dao.close();
System.out.println("Excel操作文件创建成功,请检查文件正确性。");
}
/**
* 从指定的数据库读取Excel操作题干,共十套题,放入ExcelOperation.txt中
*/
public static void getExcelOperation() throws Exception {
DAOAccess dao = new DAOAccess(fileName);
con = dao.getConnection();
Statement stat = con.createStatement();
BufferedWriter out = new BufferedWriter(new FileWriter(new File(
absoluteDir, "ExcelOperation.txt")));
out.write("Excel操作");
out.newLine();
for (int m = 1; m <= NUM; m++) {
String sql = "select * from ExcelOperation" + m;
ResultSet res = stat.executeQuery(sql);
int i = 1;
while (res.next()) {
// 在每套题前加上操作的源文件名
if (i == 1) {
out.write("***文件名:" + res.getString(3).substring(7) + "***");
out.newLine();
}
out.write("" + i + "." + res.getString(2));
out.newLine();
i++;
}
out.newLine();
out.newLine();
}
stat.close();
out.close();
dao.close();
System.out.println("Excel题干文件创建成功,请检查文件正确性。");
}
public static void main(String[] args) throws Exception {
getExcelFile();
getExcelOperation();
}
}