首页 > 技术文章 > 2016/4月Execl导入软件

bounceFront 2016-05-13 16:05 原文

总结一下关于Execl导入的软件的开发。

1.主要功能

   功能非常的单一,对于Execl文件的导入,由于Execl2007版的生成的execl文件后缀为.xlsx,所以目前只能支持.xlsx后缀的Execl文件。

 

2.功能描述

   外运长江安法部门相关保单的导入,保存在数据库中。

   具体的使用方法可以参考:https://www.shimo.im/doc/H8DR9wpLxcsCkCAP

   使用文档使用石墨文档进行编写,相对于word的优势是可以自适应图片的大小,但是功能有点单一。

3.开发过程的描述

 

3.1以前没有用过jquery,就算用过也相关的控件,这次进行的基础的使用,记录一下,相对来说还是进步了的。

申明使用在<head>和<body>之间

<script type="text/javascript" src=“<%=request.getContextPath()%>/js/jquery.min.js"></script>

参考w3c的可以引入官方的juery.min.js

Microsoft
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js">
</script>
</head>

 

 

3.2引入js

<script type="text/javascript" src="../js/showlink.js"></script>

 

 

3.3引入外部的css

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../css/distribute.css" >
<link rel="stylesheet" type="text/css" href="../css/button.css" >
<link rel="stylesheet" type="text/css" href="../css/table.css" >
<title>保险信息录入服务</title>
</head>

 

 

3.4之前对jsp,servelt之间的跳转的路径不怎么记得。

jsp中

<form action="<%=request.getContextPath() + "/LoginServlet"%>">

request.getContextPath获得就是项目的路径。

再回顾一下相对路径和绝对路径,意思是理解的,但是有时候具体的表达方式会忘记。

摘自百度百科回答

绝对路径:是从盘符开始的路径,形如
C:\windows\system32\cmd.exe
相对路径:是从当前路径开始的路径,假如当前路径为C:\windows
要描述上述路径,只需输入
system32\cmd.exe
实际上,严格的相对路径写法应为
.\system32\cmd.exe
其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。
假如当前路径为c:\program files
要调用上述命令,则需要输入
..\windows\system32\cmd.exe
其中,..为父目录。
当前路径如果为c:\program files\common files
则需要输入
..\..\windows\system32\cmd.exe

另外,还有一种不包含盘符的特殊绝对路径,形如
\windows\system32\cmd.exe
无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。

 

 

3.5mysql导入导出

方法1:使用工具 Navicat for Mysql

方法2:命令行 导入的话可以用:

 mysql> load data infile '绝对路径' into table tt
    -> fields terminated by','
    -> lines terminated by'\r\n'   

filelds有什么标记隔开。

因为Winsows中行以“\r\n”隔开,所以必须lines terminated by'\r\n',
 如果不设置这个参数,也可导入成功,但是会多导入一个“\r”控制字符,可能在可视化
 MySQL工具中看不出字段异样,但是在MySQL命令行中显示会明显混乱。

相对来说Navicat对于我这种懒人来说很好用。所以推荐方法一

 

 

3.6其中研究了很长时间的一个问题是mysql 导入execl文件。

其实一开始用Navicat的话会很好用,但是为了避免下新的工具,百度了很长时间。说一下步骤:

1.先建立一个Execl文件,保存为txt.

2.因为txt是unicode编码,所以需要打开txt另存在utf-8或者设置的编码。

3.用上面的方法二导入.txt文件。虽然会出现一些错误,我都是手动在mysql workbeach中修改。

 

3.7将在tomcat中的项目发布

因为是要求可以让别人使用的项目,所以需要发布到外网。

在公司里使用的是内网,当时并不知道,还折腾了一下午。

百度了一个如果是没有服务器的,用自己的电脑当服务器。

方法1:用一个从内网到外网的映射软件花生壳,注册会给你一个免费的域名,但是如果要从内网映射到外


网需要8块钱,但是我穷啊,没有用。

方法2:如果自己的电脑是有外网的ip的。可以进入tomcat,conf目录下的server.xml文件下修改。

修改的有3个地方:

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  <Engine name="Catalina" defaultHost="localhost">
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

其中8080改成80.host改掉:可以改成域名,也可以改成外网ip.

最后公司有服务器所以直接部署在公司的服务器上啦。

 

注意能使用相对路径时就使用相对路径,绝对路径修改起来很困难。。。

比如:

var url="../DealSheetServlet?sheetid="+i;
	xmlhttp.open("GET",url,true);
	xmlhttp.send();

当时写的http://localhost/8080但是要发布到外网上啊。所以要用相对路径。

 

4.ajax我总是记不得,每次都在百度

var xmlhttp;
function getAjax(){
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
}
getAjax();
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
          window.location.reload();
        }
      }
    var url="../DealSheetServlet?sheetid="+i;
    xmlhttp.open("GET",url,true);
    xmlhttp.send();

如果设置为false就直接没有onreadystatechange.调用函数后面是有括号的啊衰。。

推荐阅读