work

 

package cn.gut.toiawasethema.servlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import cn.gut.toiawasethema.Utils.DBConn;
import cn.gut.toiawasethema.dao.FilePathDAO;
import cn.gut.toiawasethema.dao.csvReadToDBDao;
import cn.gut.toiawasethema.javabean.Textarea;

@SuppressWarnings("serial")
public class CRTDBSERVLET extends HttpServlet {

    private int ERRORpage = 0;
    private int FieldId = 0;
    private String FieldNUM = "";
    private int FieldCount = 0;
    private File isDir;
    private String SqlTemp = new String("");
    private String zhidingPath;
    private String readPath;
    private Textarea textarea;

    private csvReadToDBDao csvdao;
    private String SQLinsert;
    private String SQLSet;
    private String SQLdata;
    private String SQLupdate;
    private String SQLquery;
    private String yyStringType[] = new String[40];
    private String riString[] = new String[40];
    private String yyString[] = new String[40];
    private StringBuffer filename;
    private String SQLqueryCount;

    public void csvReadToDBSQL(String SqlTemp) {

        SQLinsert = "INSERT INTO rx_toiawase_kanri(" + SqlTemp + ") VALUE(";
        SQLupdate = "UPDATE rx_toiawase_kanri SET ";
        SQLquery = "SELECT kanri_no FROM rx_toiawase_kanri WHERE kanri_no=";
        SQLqueryCount = "SELECT kanri_no FROM rx_toiawase_kanri";
    }

    @SuppressWarnings({ "rawtypes", "unchecked", "unused" })
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        String PriKey = "";
        int DateType = 0;
        int IntType = 0;
        int InsertID = 0;
        String[] SqlTempType = null;

        csvdao = new csvReadToDBDao();
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        // database fields type
        yyStringType[0] = "";
        yyStringType[1] = "";
        yyStringType[2] = "";
        yyStringType[3] = "";
        yyStringType[4] = "";
        yyStringType[5] = "";
        yyStringType[6] = "date";
        yyStringType[7] = "";
        yyStringType[8] = "blob";
        yyStringType[9] = "date";
        yyStringType[10] = "date";
        yyStringType[11] = "";
        yyStringType[12] = "blob";
        yyStringType[13] = "blob";
        yyStringType[14] = "";
        yyStringType[15] = "date";
        yyStringType[16] = "";
        yyStringType[17] = "";
        yyStringType[18] = "";
        yyStringType[19] = "blob";
        yyStringType[20] = "blob";
        yyStringType[21] = "blob";
        yyStringType[22] = "blob";
        yyStringType[23] = "blob";
        yyStringType[24] = "";
        yyStringType[25] = "";
        yyStringType[26] = "";
        yyStringType[27] = "int";
        yyStringType[28] = "blob";
        yyStringType[29] = "blob";
        yyStringType[30] = "";
        yyStringType[31] = "";
        yyStringType[32] = "";
        yyStringType[33] = "";
        yyStringType[34] = "";
        yyStringType[35] = "";
        yyStringType[36] = "date";
        yyStringType[37] = "";
        yyStringType[38] = "date";
        yyStringType[39] = "";

        // 字段保存
        riString[0] = "管理No";
        riString[1] = "参照管理No";
        riString[2] = "環境";
        riString[3] = "会社";
        riString[4] = "ユーザー";
        riString[5] = "問合せ分類";
        riString[6] = "問合せ日";
        riString[7] = "問合せ者";
        riString[8] = "問合せ内容";
        riString[9] = "回答期限";
        riString[10] = "回答日";
        riString[11] = "回答者";
        riString[12] = "回答内容";
        riString[13] = "RX対応内容";
        riString[14] = "ステータス";
        riString[15] = "本番リリース予定日";
        riString[16] = "対客ステータス";
        riString[17] = "Alcyone番号";
        riString[18] = "類似調査担当";
        riString[19] = "類似調査結果";
        riString[20] = "他社影響有無";
        riString[21] = "備考1";
        riString[22] = "備考2";
        riString[23] = "備考3";
        riString[24] = "調査担当";
        riString[25] = "UAT障害";
        riString[26] = "問合せ作業除外ステータス";
        riString[27] = "データ補正要否";
        riString[28] = "データ補正確認者";
        riString[29] = "調査結果ファイル";
        riString[30] = "問合せ者分類";
        riString[31] = "テーマ調整No";
        riString[32] = "開発テーマNo";
        riString[33] = "同件障害No";
        riString[34] = "関連障害No";
        riString[35] = "完了日";
        riString[36] = "登录日期";
        riString[37] = "登录者";
        riString[38] = "更新日期";
        riString[39] = "更新者";

        // 数据库字段名
        yyString[0] = "kanri_no";
        yyString[1] = "sansyou_kanri_no";
        yyString[2] = "kankyou";
        yyString[3] = "kaisya";
        yyString[4] = "user";
        yyString[5] = "toiawase_group";
        yyString[6] = "toiawase_date";
        yyString[7] = "toiawase_man";
        yyString[8] = "toiawase_content";// blob
        yyString[9] = "kaitou_limit";
        yyString[10] = "kaitou_date";
        yyString[11] = "kaitou_man";
        yyString[12] = "kaitou_content";// blob
        yyString[13] = "Rxtaiou_content";// blob
        yyString[14] = "status";
        yyString[15] = "honban_release_date";
        yyString[16] = "taikyaku_status";
        yyString[17] = "Alcyone_no";
        yyString[18] = "ruiji_tyosa_man";
        yyString[19] = "ruiji_tyosa_result";// blob
        yyString[20] = "tasya_eikyou";// blob
        yyString[21] = "biko1";// blob
        yyString[22] = "biko2";// blob
        yyString[23] = "biko3";// blob
        yyString[24] = "tyosa_man";
        yyString[25] = "UATsyougai";
        yyString[26] = "toiawase_igai_status";
        yyString[27] = "data_hosei";
        yyString[28] = "data_hosei_man";// blob
        yyString[29] = "tyosa_result_fairu";// blob
        yyString[30] = "toiawasesya_group";
        yyString[31] = "thema_tyousei_no";
        yyString[32] = "kaihatu_teema_no";
        yyString[33] = "douken_syougai_no";
        yyString[34] = "kanren_syougai_no";
        yyString[35] = "kanryou_date";
        yyString[36] = "login_date";// 登录日期
        yyString[37] = "loginer"; // 登录者
        yyString[38] = "update_date"; // 更新日期
        yyString[39] = "update_user";// 更新者

        // 参数获取
        StringBuffer reqstringString = new StringBuffer(
                req.getParameter("filell"));

        filename = reqstringString;
        System.out.println("pathreq = " + reqstringString);

        // 制定路径
        InputStream is = null;
        is = getClass().getClassLoader().getResourceAsStream(
                "property.properties");
        Properties p = new Properties();
        try {
            p.load(is);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        zhidingPath = (String) p.get("loadPath");
        // 正则表达式
        FieldNUM = (String) p.get("FieldNUM");

        DBConn dbConn = new DBConn();

        // 运输通道

        isDir = new File(zhidingPath.substring(0, zhidingPath.length() - 1));
        if (!(isDir.isDirectory())) {
            isDir.mkdirs();
        }

        File file = new File(zhidingPath);

        if ((zhidingPath.indexOf("/", zhidingPath.length() - 1) >= 0)
                || (zhidingPath.indexOf("\\", zhidingPath.length() - 1) >= 0)
                && !file.isDirectory()) {

            RequestContext responsecContext = new ServletRequestContext(req);

            // System.out.println(FileUpload.isMultipartContent(responsecContext));
            if (FileUpload.isMultipartContent(responsecContext)) {

                DiskFileItemFactory factory = new DiskFileItemFactory();
                factory.setRepository(new File(zhidingPath));
                ServletFileUpload upload = new ServletFileUpload(factory);
                upload.setSizeMax(100 * 1024 * 1024);
                List items = new ArrayList();

                try {
                    items = upload.parseRequest(req);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                Iterator iterator = items.iterator();

                while (iterator.hasNext()) {
                    FileItem fileItem = (FileItem) iterator.next();
                    if (fileItem.isFormField()) {
                        // System.out.println(fileItem.getFieldName() + "  "
                        // + fileItem.getName() + " " + " "
                        // + new String(fileItem.getString().getBytes()));
                    } else {
                        System.out.println(fileItem.getFieldName() + "  "
                                + fileItem.getName() + " " + " "
                                + fileItem.isInMemory() + "  "
                                + fileItem.getContentType() + "  "
                                + fileItem.getSize());
                        if (fileItem.getName() != null
                                && fileItem.getSize() != 0) {
                            File fullFile = new File(fileItem.getName());
                            File newfFile = new File(zhidingPath
                                    + fullFile.getName());
                            try {
                                fileItem.write(newfFile);
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                            textarea = new Textarea();
                            textarea.setContentString(zhidingPath);

                            FilePathDAO pathDAO = new FilePathDAO(textarea);

                            if (pathDAO.getResult() != 0) {
                                System.out.println("-----CSVPATH "
                                        + zhidingPath + reqstringString
                                        + " insert success!");
                            } else {
                                System.out.println("-----CSVPATHinsert falis!");
                            }
                        } else {
                            System.out.println("文件没有选择 或 文件内容为空");
                            resp.getWriter().write("TEXT IS NOT OR IS NULL!");
                        }
                    }
                }
                System.out.println("UPLOAD SECCUSS !!");
            }
        }

        // 运输结束
        // 获取路径
        readPath = zhidingPath + filename;

        int returnwhile = 0;
        while (readPath != "" && !filename.equals("")) {
            // TO DB
            if (returnwhile != 0) {
                break;
            }
            returnwhile += 1;
            HSSFWorkbook wb = null;
            try {
                wb = new HSSFWorkbook(new FileInputStream(readPath));

                HSSFSheet sheet = wb.getSheetAt(0);

                int i = sheet.getLastRowNum();

                for (int k = 0; k <= i; k++) {
                    HSSFRow row = sheet.getRow(k);
                    if (k == 0) {
                        // 第一行

                        for (int j = 0; j < row.getLastCellNum(); j++) {// 获取查询字段名

                            if ((row.getCell((short) j)).equals("管理No")) {
                                PriKey = yyString[0];
                                FieldId = i;
                            }
                            for (int m = 0; m < 40; j++) {
                                if ((row.getCell((short) j))
                                        .equals(riString[m])) {
                                    FieldCount += 1;
                                    SqlTemp += yyString[m] + ",";

                                    if (yyStringType[m].equals("date")) {// datatype
                                                                            // data
                                        DateType = m;
                                    }
                                    if (yyStringType[m].equals("int")) {// inttype
                                                                        // data
                                        IntType = m;
                                    }

                                }
                            }
                        }
                        if (!(SqlTemp.toString().split(","))[0].equals("")) {
                            SqlTemp = SqlTemp
                                    .substring(0, SqlTemp.length() - 1);
                        } else {
                            System.out.println("字段名IsNULL!");
                            break;
                        }
                        System.out.println("SqlTemp==" + SqlTemp);
                        SqlTempType = SqlTemp.split(",");
                    } else {

                        for (int j = 0; j < SqlTempType.length; j++) {
                            SqlTemp += SqlTempType[j] + ",";
                        }
                        SqlTemp = SqlTemp.substring(0, SqlTemp.length()-1);
                        this.csvReadToDBSQL(SqlTemp);
                        
                        for (int j = 0; j < row.getLastCellNum(); j++) {// 数据保存

                            if (DateType == j
                                    && (row.getCell((short) j).toString())
                                            .equals("")) {
                                this.SQLdata += "null,";
                                this.SQLSet += SqlTemp.toString().split(",")[j]
                                        + "= null,";
                            } else if (IntType == j
                                    && (row.getCell((short) j).toString())
                                            .equals("")) {
                                this.SQLdata += "null,";
                                this.SQLSet += SqlTemp.toString().split(",")[j]
                                        + "=null,";
                            } else {

                                this.SQLdata += "'"
                                        + row.getCell((short) j).toString()
                                                .replace("'", "、") + "',";
                                this.SQLSet += SqlTemp.toString().split(",")[j]
                                        + "='"
                                        + row.getCell((short) j).toString()
                                                .replace("'", "、") + "',";
                            }
                        }
                        this.SQLdata = this.SQLdata.substring(0,
                                this.SQLdata.length() - 1);
                        this.SQLSet = this.SQLSet.substring(0,
                                this.SQLSet.length() - 1);
                        // next data to db
                        for (int j = 0; j < row.getLastCellNum(); j++) {// 数据行

                            // 判断插入、更新
                            if (PriKey.toString().equals("管理No")) {// 更新
                                // 查询ID判断更新、插入data
                                boolean returnQuery = false;
                                try {
                                    returnQuery = csvdao.Query( SQLquery + "'"+row.getCell((short) j).toString()+"'");
                                } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                                // ID已存在更新数据
                                if (returnQuery) {
                                    int success = 0;
                                    try {
                                        success = csvdao.UPdate(SQLupdate + this.SQLSet + "where " + PriKey + "='" + row.getCell((short) FieldId).toString() + "'");
                                    } catch (SQLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    if (success == 0) {
                                        System.out.println("语句更新失败:"+ SQLupdate + this.SQLSet + "where " + PriKey + "='" + row.getCell((short) FieldId).toString() + "'");
                                    } else {
                                        System.out.println("语句更新成功!");
                                    }
                                }
                                // ID空 插入数据
                                if (!returnQuery) {
                                    int success = 0;
                                    try {
                                        success = csvdao.UPdate(SQLinsert + this.SQLinsert + this.SQLdata);
                                    } catch (SQLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    if (success == 0) {
                                        System.out.println("语句插入失败:"+ SQLinsert + this.SQLinsert + this.SQLdata);
                                    } else {
                                        System.out.println("语句插入成功!");
                                    }
                                }
                            } else {
                                // 自动增加ID插入data
//                                InsertID
                                Boolean QUERYid = false;
                                try {
                                    QUERYid = csvdao.Query(SQLqueryCount + " where kanri_no='" + (InsertID+1) + "'");
                                } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                                while(QUERYid){
                                    InsertID += 1;
                                    try {
                                        QUERYid = csvdao.Query(SQLqueryCount + " where kanri_no='" + (InsertID+1) + "'");
                                    } catch (SQLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                }
                                int success = 0;
                                try {
                                    success = csvdao.UPdate("INSERT INTO rx_toiawase_kanri(" +"kanri_no," + SqlTemp + ") VALUE(" + SQLdata + ")");
                                } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                                if (success == 0) {
                                    System.out.println("语句插入失败:"+ "INSERT INTO rx_toiawase_kanri(" +"kanri_no," + SqlTemp + ") VALUE(" + SQLdata + ")");
                                } else {
                                    System.out.println("没 ID 语句插入成功!");
                                }
                            }
                        }
                    }

                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        // 删除目录
        if (deleteDir(new File(readPath))) {
            System.out.println("成功删除文件。。");
        } else {
            System.out.println("删除文件失败  !!");
        }
        req.getSession().setAttribute("alert", "true");
        RequestDispatcher wm = req.getRequestDispatcher("CSV読み込み.jsp");
        wm.forward(req, resp);
    }

    private static boolean deleteDir(File dir) {
        if (dir.isDirectory()) {
            String[] children = dir.list();
            for (int i = 0; i < children.length; i++) {
                boolean success = deleteDir(new File(dir, children[i]));
                if (!success) {
                    return false;
                }
            }
        }
        return dir.delete();
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(req, resp);
    }
}

 

 

 

 

 

String filepath = "d:excela.xls";

              HSSFWorkbook hssfworkbook = new HSSFWorkbook(new FileInputStream(filepath));

              HSSFSheet    hssfsheet    = hssfworkbook.getSheetAt(0);

              int i = hssfsheet.getLastRowNum();

              for(int k=0;k<=i;k++)

              {

                     HSSFRow hssfrow = hssfsheet.getRow(k);

                     for(int j=0;j<hssfrow.getLastCellNum();j++)

                     {

                            HSSFCell hssfcell = hssfrow.getCell((short)j);

                            System.out.println(hssfcell.getDateCellValue());

                     }

              }

 

下载POI OFFICE 2007

http://download.csdn.net/detail/woo_1986/1587210

public class WriteToCSVServlet extends HttpServlet {

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {

  String path = "D:/datacsv.csv";
  // 服务器绝对路径
  // 检查文件是否存在
  String fileName = "datacsv.csv";
  File obj = new File(path);
  if (!obj.exists()) {
   resp.setContentType("text/html;charset=GBK");
   resp.getWriter().print("指定文件不存在!");
   return;
  }

  // 读取文件名:用于设置客户端保存时指定默认文件名

  // 写流文件到前端浏览器
  ServletOutputStream out = resp.getOutputStream();
  resp.setHeader("Content-disposition", "attachment;filename="
    + fileName);
  BufferedInputStream bis = null;
  BufferedOutputStream bos = null;
  try {
   bis = new BufferedInputStream(new FileInputStream(path));
   bos = new BufferedOutputStream(out);
   byte[] buff = new byte[1024];
   int bytesRead;
   while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
    bos.write(buff, 0, bytesRead);
    System.out.println(bytesRead);
   }
  } catch (IOException e) {
   throw e;
  } finally {
   if (bis != null)
    bis.close();
   if (bos != null)
    bos.close();
  }
 
 }

}

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ page import="javax.swing.JFileChooser;"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<link rel="stylesheet" href="css/Css.css" type="text/css" />
<script language="javascript" defer="defer" type="text/javascript"
 src="js/js.js"></script>
<%
 //数据库数据
 String stringOptionString = "";
 if (!(request.getAttribute("resultSelect").toString()).equals("")) {
  stringOptionString = request.getAttribute("resultSelect")
    .toString();
 }
 //字段头
 String stringFieldGet = request.getAttribute("stringFieldGet")
   .toString();
 System.out.println(stringFieldGet + " stringFieldGet");
%>

</head>
<body>
 <strong>
  RXチームの問合せ一覧&nbsp;&nbsp;>>&nbsp;&nbsp;CSVファイルに書き出す検索&nbsp;&nbsp;>>&nbsp;&nbsp;CSVファイルに書き出す結果<br />
 </strong>
 <label><br /> <span class="style3">CSVファイルに書き出される内容は、次のとおりです</span><br />
  <textarea name="textfield" style="width: 1260px; height: 130px;"><%=stringFieldGet%>
<%=stringOptionString%></textarea> </label>
 <form id="form1" name="form1" method="post" action="WriteToCSVServlet">
  <p>
   <a href="CSVファイルに書き出す検索.jsp"><input type="button" name="button"
    value="<<前の画面へ戻る" /></a> <input type="submit" name="submit"
    value="書き出す" /> <input type="reset" name="reset" value="キャンセル" />
  </p>
 </form>
</body>
</html>

 

package cn.gut.toiawasethema.servlet;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.StringTokenizer;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
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;

import cn.gut.toiawasethema.Utils.DBConn;
import cn.gut.toiawasethema.javabean.Textarea;


@SuppressWarnings("serial")
public class Log_Servlet extends HttpServlet {

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  System.out.println((new SimpleDateFormat("yyyy-mm-dd hh-ss-mm"))
    .format(new java.sql.Date(System.currentTimeMillis())));
  String riSendString[] = new String[36];
  String riString[] = new String[36];
  String yyString[] = new String[36];
  String StringBlob[] = new String[36];
  int yyStringValue[] = new int[36];
  String selectString = "";
  int count = 0;
  StringBuffer string = null;
  // 所有字段统计
  String stringSend = "";
  String[] selectarrString = new String[36];
  String sql = "select ";
  int countReference = 0;
  int j = 0; // 统计字段

  req.setCharacterEncoding("UTF-8");
  resp.setCharacterEncoding("UTF-8");
  // TODO Auto-generated method stub
  // 设置页面条件
  riString[0] = "管理No";
  riString[1] = "参照管理No";
  riString[2] = "環境";
  riString[3] = "会社";
  riString[4] = "ユーザー";
  riString[5] = "問合せ分類";
  riString[6] = "問合せ日";
  riString[7] = "問合せ者";
  riString[8] = "問合せ内容";
  riString[9] = "回答期限";
  riString[10] = "回答日";
  riString[11] = "回答者";
  riString[12] = "回答内容";
  riString[13] = "RX対応内容";
  riString[14] = "ステータス";
  riString[15] = "";
  riString[16] = "対客ステータス";
  riString[17] = "Alcyone番号";
  riString[18] = "類似調査担当";
  riString[19] = "類似調査結果";
  riString[20] = "他社影響有無";
  riString[21] = "備考1";
  riString[22] = "備考2";
  riString[23] = "備考3";
  riString[24] = "調査担当";
  riString[25] = "UAT障害";
  riString[26] = "問合せ作業除外ステータス";
  riString[27] = "データ補正要否";
  riString[28] = "データ補正確認者";
  riString[29] = "調査結果ファイル";
  riString[30] = "問合せ者分類";
  riString[31] = "テーマ調整No";
  riString[32] = "開発テーマNo";
  riString[33] = "同件障害No";
  riString[34] = "関連障害No";
  riString[35] = "完了日";

  // 设置数据库字段名
  yyString[0] = "kanri_no";
  yyString[1] = "sansyou_kanri_no";
  yyString[2] = "kankyou";
  yyString[3] = "kaisya";
  yyString[4] = "user";
  yyString[5] = "toiawase_group";
  yyString[6] = "toiawase_date";
  yyString[7] = "toiawase_man";
  yyString[8] = "toiawase_content";// blob
  yyString[9] = "kaitou_limit";
  yyString[10] = "kaitou_date";
  yyString[11] = "kaitou_man";
  yyString[12] = "kaitou_content";// blob
  yyString[13] = "Rxtaiou_content";// blob
  yyString[14] = "status";
  yyString[15] = "";
  yyString[16] = "taikyaku_status";
  yyString[17] = "Alcyone_no";
  yyString[18] = "ruiji_tyosa_man";
  yyString[19] = "ruiji_tyosa_result";// blob
  yyString[20] = "tasya_eikyou";// blob
  yyString[21] = "biko1";// blob
  yyString[22] = "biko2";// blob
  yyString[23] = "biko3";// blob
  yyString[24] = "tyosa_man";
  yyString[25] = "UATsyougai";
  yyString[26] = "toiawase_igai_status";
  yyString[27] = "data_hosei";
  yyString[28] = "data_hosei_man";// blob
  yyString[29] = "tyosa_result_fairu";// blob
  yyString[30] = "toiawasesya_group";
  yyString[31] = "thema_tyousei_no";
  yyString[32] = "kaihatu_teema_no";
  yyString[33] = "douken_syougai_no";
  yyString[34] = "kanren_syougai_no";
  yyString[35] = "kanryou_date";

  // 类型判断
  StringBlob[0] = "";
  StringBlob[1] = "";
  StringBlob[2] = "";
  StringBlob[3] = "";
  StringBlob[4] = "";
  StringBlob[5] = "";
  StringBlob[6] = "Date";
  StringBlob[7] = "";
  StringBlob[8] = "Blob";// blob
  StringBlob[9] = "Date";
  StringBlob[10] = "Date";
  StringBlob[11] = "";
  StringBlob[12] = "Blob";// blob
  StringBlob[13] = "Blob";// blob
  StringBlob[14] = "";
  StringBlob[15] = "";
  StringBlob[16] = "";
  StringBlob[17] = "";
  StringBlob[18] = "";
  StringBlob[19] = "Blob";// blob
  StringBlob[20] = "Blob";// blob
  StringBlob[21] = "Blob";// blob
  StringBlob[22] = "Blob";// blob
  StringBlob[23] = "Blob";// blob
  StringBlob[24] = "";
  StringBlob[25] = "";
  StringBlob[26] = "";
  StringBlob[27] = "";
  StringBlob[28] = "Blob";// blob
  StringBlob[29] = "Blob";// blob
  StringBlob[30] = "";
  StringBlob[31] = "";
  StringBlob[32] = "";
  StringBlob[33] = "";
  StringBlob[34] = "";
  StringBlob[35] = "";
  // 获取条件
  selectString = (req.getParameter("OptionValue")).toString();
  StringTokenizer sTokenizer = new StringTokenizer(selectString, ",");
  // 显示查询条件
  // 分割条件
  // System.out.println(selectString);
  int fieldsC = 0;
  while (sTokenizer.hasMoreTokens()) {
   // 页面值分割的获取
   System.out.println(j);
   selectarrString[count] = "" + sTokenizer.nextToken();
   for (int i = 0; i < 36; i++) {
    if ((selectarrString[count].trim().toString())
      .equals(riString[i].trim().toString())) {
     if ((selectarrString[count].trim().toString())
       .equals("完了日")) {
      // sql += yyString[i].trim() + "='" +
      // selectarrString[count].trim()
      // + "' and ";
      yyStringValue[j] = i;
      countReference = i;
      riSendString[j] = riString[i];
     } else {
      yyStringValue[j] = i;
      sql += yyString[i].trim() + ",";
      riSendString[j] = riString[i];
     }
    }
   }
   j++;
   count++;
  }
  // 字段名
  for (int w = 0; w < j; w++) {
   if (riSendString[w]!=null) {
    fieldsC += 1;
    stringSend += riSendString[w] + ",";
   }
  }
  // System.out.println(j);
  // 操作结果
  DBConn dbConn = new DBConn();
  sql = sql.substring(0, sql.length() - 1);
  try {
   if (countReference == 0) {

    sql += " from rx_toiawase_kanri";
   } else {
    // 完了日SQL操作
    sql += "," + yyString[35].trim()
      + " from rx_toiawase_kanri,thema_kanri";
   }
   System.out.println(sql);
   string = new StringBuffer();
   
   ResultSet rsResultSet = dbConn.executeQuery(sql);
   System.out.println((new SimpleDateFormat("yyyy-mm-dd hh-ss-mm"))
     .format(new java.sql.Date(System.currentTimeMillis())));
   while (rsResultSet.next()) {
    for (int i = 0; i < j; i++) {
     if (StringBlob[yyStringValue[i]].equals("Blob")) {

      if (rsResultSet.getBlob(yyString[yyStringValue[i]]) != null) {

       string.append(Textarea
         .getContentString(
           (rsResultSet
             .getBlob(yyString[yyStringValue[i]])))
         .substring(
           4,
           (Textarea
             .getContentString((rsResultSet
               .getBlob(yyString[yyStringValue[i]]))))
             .length())
         + ",");
      }
     } else {

      string.append(rsResultSet
        .getObject(yyString[yyStringValue[i]]) + ",");
     }
    }
   }
   System.out.println((new SimpleDateFormat("yyyy-mm-dd hh-ss-mm"))
     .format(new java.sql.Date(System.currentTimeMillis())));
   // req.setAttribute("resultSelect", (string.replaceAll("null",
   // " ")).replaceAll("ll", " "));
   req.setAttribute("fieldsC", fieldsC);
   req.setAttribute("resultSelect", string);
   req.setAttribute("stringFieldGet",
     stringSend.substring(0, stringSend.length() - 1));
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   System.out.println("e.." + e.getMessage());
  }

  datacsvpath(req, resp,fieldsC,stringSend);
  
  RequestDispatcher wm = req.getRequestDispatcher("CSVファイルに書き出す結果.jsp");
  wm.forward(req, resp);
 }

 @SuppressWarnings({ "unchecked", "rawtypes" })
 public void datacsvpath(HttpServletRequest req, HttpServletResponse resp,int fieldsCc,String stringFieldGet) throws FileNotFoundException{
  System.out.println((new SimpleDateFormat("yyyy-mm-dd hh-ss-mm"))
    .format(new java.sql.Date(System.currentTimeMillis())));
  String riSendString[] = new String[36];
  String riString[] = new String[36];
  String yyString[] = new String[36];
  String StringBlob[] = new String[36];
  int yyStringValue[] = new int[36];
  String selectString = "";
  StringBuffer string = null;
  int count = 0;
  // 所有字段统计
  String[] selectarrString = new String[36];
  String sql = "select ";
  int countReference = 0;
  int j = 0; // 统计字段

  try {
   req.setCharacterEncoding("UTF-8");
  } catch (UnsupportedEncodingException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  resp.setCharacterEncoding("UTF-8");
  // TODO Auto-generated method stub
  // 设置页面条件
  riString[0] = "管理No";
  riString[1] = "参照管理No";
  riString[2] = "環境";
  riString[3] = "会社";
  riString[4] = "ユーザー";
  riString[5] = "問合せ分類";
  riString[6] = "問合せ日";
  riString[7] = "問合せ者";
  riString[8] = "問合せ内容";
  riString[9] = "回答期限";
  riString[10] = "回答日";
  riString[11] = "回答者";
  riString[12] = "回答内容";
  riString[13] = "RX対応内容";
  riString[14] = "ステータス";
  riString[15] = "";
  riString[16] = "対客ステータス";
  riString[17] = "Alcyone番号";
  riString[18] = "類似調査担当";
  riString[19] = "類似調査結果";
  riString[20] = "他社影響有無";
  riString[21] = "備考1";
  riString[22] = "備考2";
  riString[23] = "備考3";
  riString[24] = "調査担当";
  riString[25] = "UAT障害";
  riString[26] = "問合せ作業除外ステータス";
  riString[27] = "データ補正要否";
  riString[28] = "データ補正確認者";
  riString[29] = "調査結果ファイル";
  riString[30] = "問合せ者分類";
  riString[31] = "テーマ調整No";
  riString[32] = "開発テーマNo";
  riString[33] = "同件障害No";
  riString[34] = "関連障害No";
  riString[35] = "完了日";

  // 设置数据库字段名
  yyString[0] = "kanri_no";
  yyString[1] = "sansyou_kanri_no";
  yyString[2] = "kankyou";
  yyString[3] = "kaisya";
  yyString[4] = "user";
  yyString[5] = "toiawase_group";
  yyString[6] = "toiawase_date";
  yyString[7] = "toiawase_man";
  yyString[8] = "toiawase_content";// blob
  yyString[9] = "kaitou_limit";
  yyString[10] = "kaitou_date";
  yyString[11] = "kaitou_man";
  yyString[12] = "kaitou_content";// blob
  yyString[13] = "Rxtaiou_content";// blob
  yyString[14] = "status";
  yyString[15] = "";
  yyString[16] = "taikyaku_status";
  yyString[17] = "Alcyone_no";
  yyString[18] = "ruiji_tyosa_man";
  yyString[19] = "ruiji_tyosa_result";// blob
  yyString[20] = "tasya_eikyou";// blob
  yyString[21] = "biko1";// blob
  yyString[22] = "biko2";// blob
  yyString[23] = "biko3";// blob
  yyString[24] = "tyosa_man";
  yyString[25] = "UATsyougai";
  yyString[26] = "toiawase_igai_status";
  yyString[27] = "data_hosei";
  yyString[28] = "data_hosei_man";// blob
  yyString[29] = "tyosa_result_fairu";// blob
  yyString[30] = "toiawasesya_group";
  yyString[31] = "thema_tyousei_no";
  yyString[32] = "kaihatu_teema_no";
  yyString[33] = "douken_syougai_no";
  yyString[34] = "kanren_syougai_no";
  yyString[35] = "kanryou_date";

  // 类型判断
  StringBlob[0] = "";
  StringBlob[1] = "";
  StringBlob[2] = "";
  StringBlob[3] = "";
  StringBlob[4] = "";
  StringBlob[5] = "";
  StringBlob[6] = "Date";
  StringBlob[7] = "";
  StringBlob[8] = "Blob";// blob
  StringBlob[9] = "Date";
  StringBlob[10] = "Date";
  StringBlob[11] = "";
  StringBlob[12] = "Blob";// blob
  StringBlob[13] = "Blob";// blob
  StringBlob[14] = "";
  StringBlob[15] = "";
  StringBlob[16] = "";
  StringBlob[17] = "";
  StringBlob[18] = "";
  StringBlob[19] = "Blob";// blob
  StringBlob[20] = "Blob";// blob
  StringBlob[21] = "Blob";// blob
  StringBlob[22] = "Blob";// blob
  StringBlob[23] = "Blob";// blob
  StringBlob[24] = "";
  StringBlob[25] = "";
  StringBlob[26] = "";
  StringBlob[27] = "";
  StringBlob[28] = "Blob";// blob
  StringBlob[29] = "Blob";// blob
  StringBlob[30] = "";
  StringBlob[31] = "";
  StringBlob[32] = "";
  StringBlob[33] = "";
  StringBlob[34] = "";
  StringBlob[35] = "";
  // 获取条件
//  selectString = (String) (req.getSession()
//    .getAttribute("stringFieldGet"));
  selectString = stringFieldGet;
  StringTokenizer sTokenizer = new StringTokenizer(selectString, ",");
  while (sTokenizer.hasMoreTokens()) {
   // 页面值分割的获取
   System.out.println(j);
   selectarrString[count] = "" + sTokenizer.nextToken();
   for (int i = 0; i < 36; i++) {
    if ((selectarrString[count].trim().toString())
      .equals(riString[i].trim().toString())) {
     if ((selectarrString[count].trim().toString())
       .equals("完了日")) {
      // sql += yyString[i].trim() + "='" +
      // selectarrString[count].trim()
      // + "' and ";
      yyStringValue[j] = i;
      countReference = i;
      riSendString[j] = riString[i];
     } else {
      yyStringValue[j] = i;
      sql += yyString[i].trim() + ",";
      riSendString[j] = riString[i];
     }
    }
   }
   j++;
   count++;
  }
  DBConn dbConn = new DBConn();
  sql = sql.substring(0, sql.length() - 1);
  if (countReference == 0) {

   sql += " from rx_toiawase_kanri";
  } else {
   // 完了日SQL操作
   sql += "," + yyString[35].trim()
     + " from rx_toiawase_kanri,thema_kanri";
  }
  System.out.println(sql);

  ResultSet rsResultSet = null;
  try {
   rsResultSet = dbConn.executeQuery(sql);
  } catch (Exception e2) {
   e2.printStackTrace();
  }
  System.out.println((new SimpleDateFormat("yyyy-mm-dd hh-ss-mm"))
    .format(new java.sql.Date(System.currentTimeMillis())));

  int fieldsC = 0;

  fieldsC = fieldsCc;
  if (fieldsC == 0) {
   System.out.println("kongshuju...");
   return;
  }

  // /直接操作Excel
  FileOutputStream fos = new FileOutputStream("D:/datacsv.csv");
  HSSFWorkbook wb = new HSSFWorkbook();
  HSSFSheet s = wb.createSheet();
  wb.setSheetName(0, "datacsv");
  HSSFCellStyle setBorder = wb.createCellStyle();

  String fileName = "datacsv.csv";
  string = new StringBuffer("");
  long m = 0;
  HSSFRow row = null;
  try {
   while (rsResultSet.next()) {
    m += 1;
    for (int i = 0; i < j; i++) {
     if (StringBlob[yyStringValue[i]].equals("Blob")) {

      if (rsResultSet.getBlob(yyString[yyStringValue[i]]) != null) {

       string.append(Textarea
         .getContentString(
           (rsResultSet
             .getBlob(yyString[yyStringValue[i]])))
         .substring(
           4,
           (Textarea
             .getContentString((rsResultSet
               .getBlob(yyString[yyStringValue[i]]))))
             .length())
         + "//");
      }
     } else {

      string.append(rsResultSet
        .getObject(yyString[yyStringValue[i]]) + "//");
     }
    }
    row = s.createRow((int) m - 1);
    // selectString = selectString.substring(0,
    // selectString.length() - 1);

    String[] selectExcel = null;
    selectExcel = selectString.split(",");// 字段名
    System.out.println(selectString);
    String stringExcel = string.toString();// 数据
    stringExcel = stringExcel
      .substring(0, stringExcel.length() - 2);

    System.out.println(stringExcel);
    String[] ExcelCell = stringExcel.split("//");

    HSSFCell cell = null;
    if (m == 1) {
     for (int i = 0; i < selectExcel.length; i++) {
      cell = row.createCell((short) i, 1);
      HSSFRichTextString hts = new HSSFRichTextString(
        selectExcel[i]);
      cell.setCellValue(hts);
     }
    }
    row = s.createRow((int) m);
    for (int k = 0; k < ExcelCell.length; k++) {
     cell = row.createCell((short) k, 1);
     HSSFRichTextString hts = new HSSFRichTextString(
       ExcelCell[k]);
     cell.setCellValue(hts);
    }
    string.delete(0, string.length());
   }
  } catch (SQLException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  // /
  req.setAttribute("fileName", fileName);
  setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  try {
   wb.write(fos);
   fos.flush();
   fos.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  System.out.println("wanle,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,");
 }
}

转载于:https://www.cnblogs.com/yuandq580/archive/2013/05/07/3064047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值