package os;
import java.io.File;
import java.io.*;
public class pro {
int maxx,maxy;
String[][] mat=new String[5000][5000];
int fastline,lastline;
int creditline;
int creditx,credity;
String[] index=new String[500];
String[] credit=new String[500];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
File g=new File("data");
String[] gx=g.list();
maxx=500;
maxy=500;
int tr;
for(tr=0;tr<gx.length;tr++){
readxls sub=new readxls();
sub.maxx=maxx;
sub.maxy=maxy;
sub.makedata("data/"+gx[tr],0);
mat=sub.mat;
int s,sx;
int indexline=0;
for(s=1;s<10;s++){
for(sx=1;sx<maxy;sx++){
if(mat[sx][s].indexOf("鉄")>-1)indexline=s;
}
}
lastline=0;
for(s=1;s<maxy+1;s++){
if(mat[s][indexline].length()>0)lastline=s;
}
int h;
fastline=0;
for(s=1;s<lastline+1;s++){
h=0;
if(mat[s][indexline].indexOf("農")>-1)h=h+1;
if(fastline==0)h=h+1;
if(h==2)fastline=s;
}
creditline=0;
for(s=1;s<fastline;s++){
for(sx=indexline+1;sx<maxx;sx++){
h=0;
if(mat[s][sx].indexOf("鉄")>-1)h=h+1;
if(creditline==0)h=h+1;
if(h==2)creditline=s;
}
}
creditx=0;
credity=0;
for(s=1;s<maxx+1;s++){
if(mat[creditline][s].length()>0)credity=s;
}
for(s=indexline+1;s<credity+1;s++){
h=0;
if(mat[creditline][s].indexOf("農")>-1)h=h+1;
if(creditx==0)h=h+1;
if(h==2)creditx=s;
}
for(s=fastline;s<lastline+1;s++){
index[s]=mat[s][indexline].replace("\n","");
}
for(s=creditx;s<credity+1;s++){
credit[s]=mat[creditline][s].replace("\n","");
}
String str=gx[tr].replace(".xls","");
writexml("gdata/"+str+".txt");
}
}
void writexml(String file){
int s,sx;
try{
PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file)));
for(s=fastline;s<lastline+1;s++){
for(sx=creditx;sx<credity+1;sx++){
pw.print("<index>");
pw.print(index[s]);
pw.print("</index>");
pw.print("<credit>");
pw.print(credit[sx]);
pw.print("</credit>");
pw.print("<value>");
pw.print(mat[s][sx]);
pw.println("</value>");
}
}
System.out.println("ファイルに書きこみました。");
pw.close();
} catch(IOException ep){ System.out.println("入出力エラーです。"); }
}
void writehtml(String file){
int s,sx;
try{
PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file)));
pw.println("<html>");
pw.println("<head>");
pw.println("<meta charset=\"UTF-8\">");
pw.println("</head>");
pw.println("<body>");
pw.print("<table rules=\"all\">");
pw.print("<tr>");
pw.print("<td>");
pw.print("");
pw.print("</td>");
for(sx=1;sx<maxx+1;sx++){
pw.print("<th>");
pw.print(sx);
pw.print("</th>");
}
pw.println("</tr>");
for(s=1;s<maxy+1;s++){
pw.print("<tr>");
pw.print("<th>");
pw.print(s);
pw.print("</th>");
for(sx=1;sx<maxx+1;sx++){
pw.print("<td>");
pw.print(mat[s][sx]);
pw.print("</td>");
}
pw.println("</tr>");
}
pw.println("</table>");
pw.println("</body>");
pw.println("</html>");
System.out.println("ファイルに書きこみました。");
pw.close();
} catch(IOException ep){ System.out.println("入出力エラーです。"); }
}
}
package os;
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
public class readxls {
int maxx,maxy;
Cell cc;
String[][] mat=new String[5000][5000];
void makedata(String file,int number){
try{
FileInputStream is = new FileInputStream(file);
Workbook wb = new HSSFWorkbook(is);
Sheet sh = wb.getSheetAt(number);
int s,sx,j,hh;
String bb;
for(s=1;s<maxy+1;s++){
for(sx=1;sx<maxx+1;sx++){
mat[s][sx]="";
}
}
for(s=1;s<maxy+1;s++){
Row row = sh.getRow(s-1);
j=0;
if(row==null)j=100;
if(j<50){
for(sx=1;sx<maxx+1;sx++){
cc = row.getCell(sx-1);
hh=0;
if(cc==null)hh=100;
if(hh<50){
int type =cc.getCellType();
bb="";
if(type==1)bb=cc.getStringCellValue();
if(type==0)bb=""+cc.getNumericCellValue();
mat[s][sx]=bb;
}}}}
} catch (Exception e) {e.printStackTrace();}
}
}
最終更新:2016年05月17日 05:03