📄 outxml.java
字号:
import jp.ne.so_net.ga2.no_ji.jcom.excel8.*;
import jp.ne.so_net.ga2.no_ji.jcom.*;
import java.io.*;
/*
Excel梡儔僢僷傪巊偭偨丄JCom偺僒儞僾儖僾儘僌儔儉
Excel偐傜XML偵曄姺偡傞丅
*/
public class OutXML {
// 愝掕崁栚
public String company = ""; // 夛幮柤
public String section1 = ""; // 強懏1
public String section2 = ""; // 強懏2
public String custmer = ""; // 屭媞柤
public String validperiod = ""; // 尒愊桳岠婜尷
public String createdate = ""; // 嶌惉擔
public String estimatedNo = ""; // 尒愊彂No.
public String charge = ""; // 扴摉幰
public String[] itemname = new String[15]; // 昳柤x15屄
public String[] itemtype = new String[15]; // 宆斣x15屄
public int[] itemprice = new int[15]; // 扨壙x15屄
public int[] itemcount = new int[15]; // 悢検x15屄
public String[] itemmemo = new String[15]; // 旛峫x15屄
// 巜掕偝傟偨僼傽僀儖偐傜尒愊傝忣曬傪庢摼偡傞
public boolean getEstimate(String fname) {
ReleaseManager rm = new ReleaseManager();
try {
System.out.println("EXCEL傪婲摦拞...");
// 偡偱偵棫偪忋偑偭偰偄傞偲丄怴偟偄僂傿儞僪僂偱奐偔丅
ExcelApplication excel = new ExcelApplication(rm);
excel.Visible(true);
ExcelWorkbooks xlBooks = excel.Workbooks();
ExcelWorkbook xlBook = xlBooks.Open(fname);
ExcelWorksheet xlSheet = excel.ActiveSheet();
ExcelRange xlRange = xlSheet.Cells();
// 愝掕崁栚傪僙儖偵戙擖
System.out.println("僙儖偐傜愝掕崁栚傪庢摼");
company = xlRange.Item(4,2).Text();
section1 = xlRange.Item(5,2).Text();
section2 = xlRange.Item(6,2).Text();
custmer = xlRange.Item(8,2).Text();
validperiod = xlRange.Item(14,4).Text();
createdate = xlRange.Item(3,8).Text();
estimatedNo = xlRange.Item(5,8).Text();
charge = xlRange.Item(7,8).Text();
for(int i=0; i<15; i++) {
itemname[i] = xlRange.Item(22+i,3).Text();
itemtype[i] = xlRange.Item(22+i,4).Text();
try {
itemprice[i] = Integer.parseInt(xlRange.Item(22+i,5).Text());
itemcount[i] = Integer.parseInt(xlRange.Item(22+i,6).Text());
}
catch(NumberFormatException e) {
itemprice[i] = 0;
itemcount[i] = 0;
}
itemmemo[i] = xlRange.Item(22+i,8).Text();
}
xlBook.Close(false,null,false);
excel.Quit();
}
catch(Exception e) {
e.printStackTrace();
return false; // 幐攕
}
finally { rm.release(); }
return true;
}
public static void main(String[] args) throws IOException {
OutXML est = new OutXML();
// XML僼傽僀儖傪嶌惉
System.out.println("estimate.xml 傪嶌惉");
PrintWriter out =
new PrintWriter(new BufferedWriter(new FileWriter("estimate.xml")));
// XML僿僢僟傪弌椡 output XML header
out.print("<?xml version=\"1.0\" standalone=\"no\"?>\n");
out.print("<!DOCTYPE JCom:Estimate SYSTEM \"estimate.dtd\">\n");
out.print("<!-- generated by OutXML.class -->\n");
out.println();
// 僇儗儞僩僨傿儗僋僩儕偺 .xls 僼傽僀儖傪弴師張棟偟偰偄偔
File path = new File("./");
String[] filenames = path.list();
for(int f=0; f<filenames.length; f++) {
String fname = filenames[f];
if(! fname.toLowerCase().endsWith(".xls")) continue;
if( fname.equalsIgnoreCase("estimate.xls")) continue;
System.out.println(fname);
// Excel偼撈帺偺娐嫬傪帩偮偺偱丄僼傽僀儖柤傪愨懳僷僗偵偟偰搉偡
boolean rc = est.getEstimate((new File(fname)).getCanonicalPath());
if(rc) {
out.print("<JCom:Estimate>\n");
out.print("\t<JCom:Company>"+est.company+"</JCom:Company>\n");
out.print("\t<JCom:Section1>"+est.section1+"</JCom:Section1>\n");
out.print("\t<JCom:Section2>"+est.section2+"</JCom:Section2>\n");
out.print("\t<JCom:Custmer>"+est.custmer+"</JCom:Custmer>\n");
out.print("\t<JCom:ValidPeriod>"+est.validperiod+"</JCom:ValidPeriod>\n");
out.print("\t<JCom:CreateDate>"+est.createdate+"</JCom:CreateDate>\n");
out.print("\t<JCom:EstimatedNo>"+est.estimatedNo+"</JCom:EstimatedNo>\n");
out.print("\t<JCom:Charge>"+est.charge+"</JCom:Charge>\n");
loop:
for(int i=0; i<15; i++) {
if(est.itemcount[i] == 0) break loop;
out.print("\t<JCom:Item>\n");
out.print("\t\t<JCom:ItemName>"+est.itemname[i]+"</JCom:ItemName>\n");
out.print("\t\t<JCom:ItemType>"+est.itemtype[i]+"</JCom:ItemType>\n");
out.print("\t\t<JCom:ItemPrice>"+est.itemprice[i]+"</JCom:ItemPrice>\n");
out.print("\t\t<JCom:ItemCount>"+est.itemcount[i]+"</JCom:ItemCount>\n");
out.print("\t\t<JCom:ItemMemo>"+est.itemmemo[i]+"</JCom:ItemMemo>\n");
out.print("\t</JCom:Item>\n");
}
out.print("</JCom:Estimate>\n");
out.println();
}
}
out.close();
System.out.println("惉岟偟傑偟偨");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -