读取似九宫格数字的HTML页面

我有一个似九宫格图片,每次需要根据行列数读取对应的数字,但是有时眼睛看花,容易读错。所以自己写了个简单的网页输入行列,读取数字。

首先我有这样一个图片:



1.输入A1就要读出数字67。需求非常简单。首先我需要把这个图片做成HTML页面,里面的数字我需要能够直接读出来,图片里的代码难以读出。(什么图片识别技术,我就暂时用不上)

2.首先我就把里面的数字输入到一个文本文件里面。就叫做ViewGride.txt,里面的数据是这样的。

6748577677615854
1079888966756061
1354175760638369
7948107543901520
6472508913619370
6058164962329356
5981061809268345
4229645571169052
2012285204144233
9949569270985980
6988254252262991
8972989167786531
6675736128352066
5205554123525846
4345089397191380
3. 里面数据有点多,直接去写HTML的Table有点麻烦,我想我有个模板页面,然后用java代码生成这个Table页面就行了。

模板页面:

<!-- Javascript goes in the document HEAD --> 
<script type="text/javascript"> 
	function altRows(id){
		if(document.getElementsByTagName){
			var table = document.getElementById(id);
			var rows = table.getElementsByTagName("tr");
			for(i = 0; i < rows.length; i++){
				if(i % 2 == 0){
					rows[i].className = "evenrowcolor";
				}else{  
					rows[i].className = "oddrowcolor";  
				}
			}  
		} 
	}
	window.οnlοad=function(){  
		altRows('alternatecolor'); 
	} 
	
	function focusInput(obj){
		if(obj.value=="A1 B4 H5")
		{
			obj.value = "";
		}
		obj.style.color="black";
	}
	
	var celArr = new Array();
	var colorArr = new Array();
	function submit()
	{
		var col = document.getElementById("col").value.toUpperCase();
		var colArray = col.split(" ");
		var tabObj = document.getElementById("alternatecolor");
		if(celArr.length == 3)
		{
			for(var i=0; i<3; i++)
			{
				celArr[i].style.backgroundColor = colorArr[i];
			}
		}
		var value = "";
		if(colArray.length == 3)
		{
			for(var i=0; i<3; i++)
			{
				var val = colArray[i];
				var row = val.substr(1);
				var colValue = val.substr(0, 1);	
				var cel = tabObj.rows[row].cells[colValue.charCodeAt()-64];
				celArr[i] = cel;
				colorArr[i] = cel.style.backgroundColor;
				cel.style.backgroundColor="#CCC";
				value = value + cel.innerHTML + " ";
			}
			document.getElementById("content").innerHTML = value;
		}
	}
	
	function funcKeyDown(e) {
        if (e.keyCode == 13) {
            submit();
        }
    }
</script>  
<!-- CSS goes in the document HEAD or added to your external stylesheet --> 
<style type="text/css">
	table.altrowstable {
	font-family: verdana,arial,sans-serif;
	font-size: 11px;
	color: #333333;
	border-width: 1px;
	border-color: #a9c6c9;
	border-collapse: collapse;
}

table.altrowstable th {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #a9c6c9;
}

table.altrowstable td {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #a9c6c9;
}

.oddrowcolor {
	background-color: #77C9FF;
}

.evenrowcolor {
	background-color: #c3dde0;
} 
input.inputclass {
	width:150px;
	color: #9C9C9C;
	text-align: right;
}
.buttoncss {
    font-family: "tahoma";
    font-size:9pt; color: #003399;
    border: 1px #003399 solid;
    color:#006699;
    border-bottom: #93bee2 1px solid;
    border-left: #93bee2 1px solid;
    border-right: #93bee2 1px solid;
    border-top: #93bee2 1px solid;
    background-color: #e8f4ff;
    cursor: hand;
    font-style: normal ;
    width:60px;
    height:22px;
}
.content {
	font-weight:bold;
}
</style>
<body>
		<table class="altrowstable" id="alternatecolor">
<span style="white-space:pre">			</span><!--此处用java代码读取数据源生成表格 -->
		</table>
		<input id="col" value="A1 B4 H5" class="inputclass" οnfοcus="focusInput(this)" οnkeydοwn="funcKeyDown(event)"/> <input id="submit" type="button" class="buttoncss" value="submit"  οnclick="submit()"/>
		<div id="content" class="content"></div>
	</body>
</html>
java代码读取数据源生成表格,我是把HTML模板的上半部分(就是<table>及以上的)保存在head.txt里面,把下半部分(就是</table>及以下的)保存在end.txt里面。

import java.io.*;

public class GenerateViewCard
{
	public static final String NAME = "ViewGride";
	
	public static void main(String[] args) throws Exception
	{
		generate();
	}
	
	static void generate() throws Exception
	{
		String rootPath = "C:\\Users\\Administrator\\Desktop\\Card\\";
		StringBuilder sb = new StringBuilder();
		
		String header = readFile(rootPath+"head.txt");
		String end = readFile(rootPath+"end.txt");
		sb.append(header);
		sb.append(getTh());
		
		String source = readFile(rootPath+NAME+".txt");
		sb.append(getSource(source));
		sb.append(end);
		System.out.println(sb.toString());
		
		writeFile(rootPath+NAME+".html", sb.toString());
	}
	
	static String getSource(String source)
	{
		StringBuilder sb = new StringBuilder();
		String[] sourceArray = source.split("\n");
		for(int i=0; i<sourceArray.length; i++)
		{
			sb.append("\t\t\t<tr>\n");
			sb.append("\t\t\t\t<td>").append((i+1)).append("</td>\n");
			
			String lineStr = sourceArray[i];
			for(int j=0; j<8; j++)
			{
				String key = lineStr.substring(j*2, (j+1)*2);
				sb.append("\t\t\t\t<td>").append(key).append("</td>\n");
			}
			sb.append("\t\t\t</tr>\n");
		}
		return sb.toString();
	}
	
	static String getTh()
	{
		StringBuilder sb = new StringBuilder();
		sb.append("\t\t\t<tr>\n");
		sb.append("\t\t\t\t<th> </th>\n");
		for(int i=0; i<8; i++)
		{
			sb.append("\t\t\t\t<th>").append((char)(65+i)).append("</th>\n");
		}
		sb.append("\t\t\t</tr>\n");
		return sb.toString();
	}
	
	static String readFile(String fileName) throws Exception
	{
		BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
		String lineStr = null;
		StringBuilder sb = new StringBuilder();
		while((lineStr = reader.readLine()) != null)
		{
			lineStr = lineStr.replace("%s", NAME);
			sb.append(lineStr+"\n");
		}
		reader.close();
		return sb.toString();
	}
	
	static void writeFile(String fileName, String str) throws Exception
	{
		BufferedWriter write = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName)));
		write.write(str);
		write.flush();
		write.close();
	}
}

然后就是生成ViewGride.html

<!-- Javascript goes in the document HEAD --> 
<script type="text/javascript"> 
	function altRows(id){
		if(document.getElementsByTagName){
			var table = document.getElementById(id);
			var rows = table.getElementsByTagName("tr");
			for(i = 0; i < rows.length; i++){
				if(i % 2 == 0){
					rows[i].className = "evenrowcolor";
				}else{  
					rows[i].className = "oddrowcolor";  
				}
			}  
		} 
	}
	window.οnlοad=function(){  
		altRows('alternatecolor'); 
	} 
	
	function focusInput(obj){
		if(obj.value=="A1 B4 H5")
		{
			obj.value = "";
		}
		obj.style.color="black";
	}
	
	var celArr = new Array();
	var colorArr = new Array();
	function submit()
	{
		var col = document.getElementById("col").value.toUpperCase();
		var colArray = col.split(" ");
		var tabObj = document.getElementById("alternatecolor");
		if(celArr.length == 3)
		{
			for(var i=0; i<3; i++)
			{
				celArr[i].style.backgroundColor = colorArr[i];
			}
		}
		var value = "";
		if(colArray.length == 3)
		{
			for(var i=0; i<3; i++)
			{
				var val = colArray[i];
				var row = val.substr(1);
				var colValue = val.substr(0, 1);	
				var cel = tabObj.rows[row].cells[colValue.charCodeAt()-64];
				celArr[i] = cel;
				colorArr[i] = cel.style.backgroundColor;
				cel.style.backgroundColor="#CCC";
				value = value + cel.innerHTML + " ";
			}
			document.getElementById("content").innerHTML = value;
		}
	}
	
	function funcKeyDown(e) {
        if (e.keyCode == 13) {
            submit();
        }
    }
</script>  
<!-- CSS goes in the document HEAD or added to your external stylesheet --> 
<style type="text/css">
	table.altrowstable {
	font-family: verdana,arial,sans-serif;
	font-size: 11px;
	color: #333333;
	border-width: 1px;
	border-color: #a9c6c9;
	border-collapse: collapse;
}

table.altrowstable th {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #a9c6c9;
}

table.altrowstable td {
	border-width: 1px;
	padding: 8px;
	border-style: solid;
	border-color: #a9c6c9;
}

.oddrowcolor {
	background-color: #77C9FF;
}

.evenrowcolor {
	background-color: #c3dde0;
} 
input.inputclass {
	width:150px;
	color: #9C9C9C;
	text-align: right;
}
.buttoncss {
    font-family: "tahoma";
    font-size:9pt; color: #003399;
    border: 1px #003399 solid;
    color:#006699;
    border-bottom: #93bee2 1px solid;
    border-left: #93bee2 1px solid;
    border-right: #93bee2 1px solid;
    border-top: #93bee2 1px solid;
    background-color: #e8f4ff;
    cursor: hand;
    font-style: normal ;
    width:60px;
    height:22px;
}
.content {
	font-weight:bold;
}
</style>
<body>
		<table class="altrowstable" id="alternatecolor">
			<tr>
				<th> </th>
				<th>A</th>
				<th>B</th>
				<th>C</th>
				<th>D</th>
				<th>E</th>
				<th>F</th>
				<th>G</th>
				<th>H</th>
			</tr>
			<tr>
				<td>1</td>
				<td>67</td>
				<td>48</td>
				<td>57</td>
				<td>76</td>
				<td>77</td>
				<td>61</td>
				<td>58</td>
				<td>54</td>
			</tr>
			<tr>
				<td>2</td>
				<td>10</td>
				<td>79</td>
				<td>88</td>
				<td>89</td>
				<td>66</td>
				<td>75</td>
				<td>60</td>
				<td>61</td>
			</tr>
			<tr>
				<td>3</td>
				<td>13</td>
				<td>54</td>
				<td>17</td>
				<td>57</td>
				<td>60</td>
				<td>63</td>
				<td>83</td>
				<td>69</td>
			</tr>
			<tr>
				<td>4</td>
				<td>79</td>
				<td>48</td>
				<td>10</td>
				<td>75</td>
				<td>43</td>
				<td>90</td>
				<td>15</td>
				<td>20</td>
			</tr>
			<tr>
				<td>5</td>
				<td>64</td>
				<td>72</td>
				<td>50</td>
				<td>89</td>
				<td>13</td>
				<td>61</td>
				<td>93</td>
				<td>70</td>
			</tr>
			<tr>
				<td>6</td>
				<td>60</td>
				<td>58</td>
				<td>16</td>
				<td>49</td>
				<td>62</td>
				<td>32</td>
				<td>93</td>
				<td>56</td>
			</tr>
			<tr>
				<td>7</td>
				<td>59</td>
				<td>81</td>
				<td>06</td>
				<td>18</td>
				<td>09</td>
				<td>26</td>
				<td>83</td>
				<td>45</td>
			</tr>
			<tr>
				<td>8</td>
				<td>42</td>
				<td>29</td>
				<td>64</td>
				<td>55</td>
				<td>71</td>
				<td>16</td>
				<td>90</td>
				<td>52</td>
			</tr>
			<tr>
				<td>9</td>
				<td>20</td>
				<td>12</td>
				<td>28</td>
				<td>52</td>
				<td>04</td>
				<td>14</td>
				<td>42</td>
				<td>33</td>
			</tr>
			<tr>
				<td>10</td>
				<td>99</td>
				<td>49</td>
				<td>56</td>
				<td>92</td>
				<td>70</td>
				<td>98</td>
				<td>59</td>
				<td>80</td>
			</tr>
			<tr>
				<td>11</td>
				<td>69</td>
				<td>88</td>
				<td>25</td>
				<td>42</td>
				<td>52</td>
				<td>26</td>
				<td>29</td>
				<td>91</td>
			</tr>
			<tr>
				<td>12</td>
				<td>89</td>
				<td>72</td>
				<td>98</td>
				<td>91</td>
				<td>67</td>
				<td>78</td>
				<td>65</td>
				<td>31</td>
			</tr>
			<tr>
				<td>13</td>
				<td>66</td>
				<td>75</td>
				<td>73</td>
				<td>61</td>
				<td>28</td>
				<td>35</td>
				<td>20</td>
				<td>66</td>
			</tr>
			<tr>
				<td>14</td>
				<td>52</td>
				<td>05</td>
				<td>55</td>
				<td>41</td>
				<td>23</td>
				<td>52</td>
				<td>58</td>
				<td>46</td>
			</tr>
			<tr>
				<td>15</td>
				<td>43</td>
				<td>45</td>
				<td>08</td>
				<td>93</td>
				<td>97</td>
				<td>19</td>
				<td>13</td>
				<td>80</td>
			</tr>
		</table>
		<input id="col" value="A1 B4 H5" class="inputclass" οnfοcus="focusInput(this)" οnkeydοwn="funcKeyDown(event)"/> <input id="submit" type="button" class="buttoncss" value="submit"  οnclick="submit()"/>
		<div id="content" class="content"></div>
	</body>
</html>

最终效果图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值