Wednesday 14 December 2011

Upload Excel sheet content into Database

Form.jsp
<%--
Document   : Form
Created on : Dec 12, 2011, 10:08:48 AM
Author     : pradeep
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form name="readxls" action="xls.jsp" method="post" enctype="multipart/form-data">
<center>
<h2> READ XLS FILE</h2>
<table border="0">
<tr><td>Company Name</td><td><input type ="text" name ="companyname"/></td></tr>
<tr><td>Company ID</td><td><input type ="text" name ="companyID"/></td></tr>
<tr><td>File Path</td><td><input type ="File" name ="filepath"/></td></tr>
<tr><td align="right"><input type="submit" value="Submit">   </td><td align="left">
<input type="reset" name="Reset" value="Reset"/></td></tr>

</table>

</center>

</form>
</body>
</html>

Xls.jsp
<%--
Document   : Xls
Created on : Dec 12, 2011, 10:49:54 AM
Author     : pradeep
--%>

<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.io.output.DeferredFileOutputStream" %>


<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="jxl.Cell"%>
<%@page import="jxl.Sheet"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="jxl.Workbook"%>
<%@page import="java.io.File"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.io.InputStream"%>

<%@page import="java.util.List"%>

<%@page import="java.util.Iterator"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>

<script type="text/javascript">

function download()
{
// var val=document.getElementById("data").value;
window.location="downloadfile.jsp?filename=errorreport";


}
</script>
</head>
<body>
<right>
<a onclick="download()">Download Error Report</a>

</right>
<center>
<table border ="1">
<tr >

<th>UserName</th>
<th>PassWord</th>
<th colspan="16">Failure Reason</th>
</tr>
<%
StringBuffer sb = new StringBuffer();
sb.append("UserName" + ",");
sb.append("Password" + ",");
sb.append("Company Name" + ",");
sb.append("Company ID" + ",");
sb.append("Failure Reason" + ",");
sb.append("\n");


int count = 0;
String companyname = "";
String companyID = "";
String file_name = "";
String extension = "";
InputStream input = null;
Connection con = null;

FileItemFactory factory = new DiskFileItemFactory();
System.out.println("1");
ServletFileUpload upload = new ServletFileUpload(factory);
System.out.println("2");
List items = null;
try {

items = upload.parseRequest(request);

} catch (Exception e) {
e.printStackTrace();
}
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();

if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
System.out.println(name + " : " + value);
if (name.equals("companyname")) {
companyname = value;
}
if (name.equals("companyID")) {
companyID = value;
}
} else {

file_name = item.getName();
System.out.println("file name" + item.getName());
input = item.getInputStream();

extension = file_name.substring(file_name.indexOf("."));
System.out.println(extension);
}
}

try {


if (extension.equalsIgnoreCase(".xls") || extension.equalsIgnoreCase(".xlsx")) {
String connectionUrl = "";
File inputWorkbook = new File(file_name);
Workbook w;
ResultSet rs;
w = Workbook.getWorkbook(input);
Sheet sheet = w.getSheet(0);
String reason[] = new String[sheet.getRows() + 1];
String rowValues[] = new String[sheet.getColumns()];
System.out.println("no of rows :" + sheet.getRows());
if (sheet.getRows() > 1) {
for (int row = 1; row < sheet.getRows(); row++) {
for (int col = 0; col < sheet.getColumns(); col++) {

Cell cell = sheet.getCell(col, row);
rowValues[col] = cell.getContents();

}


String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String connectionURL = "jdbc:sqlserver://Ip:portNo;databaseName=Dbname;user=sa;password=admin";
System.out.println(driver);
System.out.println(connectionURL);
Class.forName(driver);
con = DriverManager.getConnection(connectionURL);
Statement st = con.createStatement();

System.out.println("After connections ");
String username1 = rowValues[0];
String password1 = rowValues[1];



reason[row] = null;
System.out.println("Row values:" + rowValues[0]);
String queryUser = "select username from sampledata where username='" + rowValues[0] + "'";
System.out.println(queryUser);
rs = st.executeQuery(queryUser);
if (rs.next()) {
reason[row] = "userName : " + rowValues[0] + " is already Exists.";
}
st.close();

int res = 0; // for checking weather row is inserted or not

System.out.println("reason inside" + reason[row]);
//inserting the data into database
if (reason[row] == null) {
String insertQuery = "insert into sampledata (username,password,companyName,comapnyId)" 
+"values ('" + username1 + "','" + password1 + "','" + companyname + "','" + companyID + "')";
System.out.println(insertQuery);
Statement st2 = con.createStatement();
res = st2.executeUpdate(insertQuery);
st2.close();
if (res == 0) {
reason[row] = "Failed When Inserting";
} else {
count++;
System.out.println("one row inserted");
}


} else if (reason[row] != null || res == 0) {
//If any validation failed it should enter into the else
%>
<tr >
<td align="cener"><h4><font color="Red"/><%= username1%></h4></td>
<td align="cener"><h4><font color="Red"/><%= password1%></h4></td>
<td align="cener" colspan="16"><font color="Red"/> <h4><%= reason[row]%></h4></td>
</tr>
<%
sb.append(username1 + ",");
sb.append(password1 + ",");
sb.append(companyname + ",");
sb.append(companyID + ",");
sb.append(reason[row] + ",");
sb.append("\n");
}

}
%>

<h4>Successfully Inserted Records Are <%= count%></h4>
<h4>Below Records are Fail to Insert with reason please download</h4>

<%


} else {
%>
</table>

<table ><tr><td> <h4>You have uploaded <b><%=file_name%></b></td></tr><br><br>
<tr><td><a>No Data Found in the Uploaded file</a></h4></td></tr>

<td align="right" colspan="19">Click here to back to <b><u><a href="Form.jsp">Upload</a></u></b> Screen</td>
<%
}
}

} catch (Exception e) {
%>
<p align="center"> <% out.println("Pls Select The Given format of xl file");
e.printStackTrace();%> </p>
<%
// con.rollback();
} finally {

if (con != null) {
con.close();
}
if (input != null) {
input.close();
}
}
session.setAttribute("data", sb.toString());
%>

</table>


</center>
</body>
</html>

Downloadfile.jsp
<%--
Document   : Downloadfile
Created on : Dec 12, 2011, 2:23:42 PM
Author     : pradeep
--%>

<%@page import="java.io.OutputStream"%>
<%@page import="java.io.File"%>
<%@page import="java.io.FilenameFilter"%>
<%@page import="java.awt.Frame"%>
<%@page import="java.awt.FileDialog"%>
<%@page import="java.io.FileOutputStream"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFCell" %>
<%@page import="org.apache.poi.hssf.usermodel.HSSFCellStyle" %>
<%@page import= "org.apache.poi.hssf.usermodel.HSSFDataFormat" %>
<%@page import="org.apache.poi.hssf.usermodel.HSSFRow"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFSheet"%>
<%@ page import="java.io.InputStream" %>
<%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>
<body >

<table width="800" align="center"><tr><td>

<center><table width="700"><tr><td align="center"><h2><
font style="font-weight: 900;font-family:'Lucida Casual';font-size: 20px" color="#7E3517" >
Errors Report</font></h2></td></tr></table></center>
<%

String file_name = request.getParameter("filename");
System.out.println("Filename:"+file_name);
String buffer = session.getAttribute("data").toString();
String date = "";
String filename = "";
SimpleDateFormat df1 = new SimpleDateFormat("dd-MMM-yyyy-kk.mm.ss");
date = df1.format(new java.util.Date());

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet worksheet = wb.createSheet("Rejected Data");
System.out.println("buffer:\n" + buffer);
StringTokenizer rowToken = new StringTokenizer(buffer, "\n");
int rowCount = 0;
HSSFRow row[] = new HSSFRow[rowToken.countTokens()];
while (rowToken.hasMoreTokens()) {
String rowData = rowToken.nextToken();
StringTokenizer columnToken = new StringTokenizer(rowData, ",");
row[rowCount] = worksheet.createRow((short) rowCount);
int col = 0;
while (columnToken.hasMoreTokens()) {
HSSFCell cellA1 = row[rowCount].createCell((short) col++);
cellA1.setCellValue(columnToken.nextToken());
}
rowCount++;
}
response.setContentType("application/vnd.ms-excel");
response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
response.setHeader("Cache-Control", "max-age=0");
response.setHeader("Content-disposition", "attachment; filename=" + file_name + date + ".xls");
OutputStream output = response.getOutputStream();
wb.write(output);
output.close();

%>
<p align="center">File downloaded Successfully at location <%= filename%><br><br><br><br></p>

</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

</form>
</body>
</html>

No comments:

Post a Comment