procedure TActiveFormX_Open_Excel.btn1Click(Sender: TObject);
var
EX ,Ws: Variant;
fn: String;
i: integer;
str_in_code: Tstringlist;
str_in_code_11: string;
str_in_code_22:string ;
Str_string : TStringStream ;
ErrorMsg :String;
InputStream,OutStream :TMemoryStream;
// ii: Integer ;
begin
Str_string:= TStringStream.Create('');
str_in_code_copy:=TStringList.Create ;
str_in_code_copy.Text :='';
Out_xml_str:='';
str_in_code:=TStringList.Create ;
str_in_code.Text:='';
i:=2;
dlgOpen1.Title :='请选择Excel文件';
dlgOpen1.Filter := 'Excel表(*.xls)|*.xls';
dlgOpen1.DefaultExt := 'xls';
str_in_code_11 :='<?xml version="1.0" encoding="gb2312"?><data><user>'+in_code_str+'</user><courseNo>'+in_code_str_2+'</courseNo><list>';
str_in_code_22:= '</list>'+'</data>';
if dlgOpen1.Execute =True then
begin
Try
Try
fn := dlgOpen1.FileName;
EX := CreateOleObject('Excel.Application');
EX.Visible:=False;
EX.DisplayAlerts:=False;
Try
Ws:=Ex.WorkBooks.Open(fn,3,false,1,str_PassWord); //Z3pramM=
// Ws:=Ex.WorkBooks.Open(fn,3,false,1,'gzkjc'); //MTIz
//ShowMessage(IntToStr(EX.Worksheets[1].UsedRange.Rows.Count));
except
ShowMessage('密码错误');
End;
Cds1.Active :=False;
Out_xml_str_copy:='';
// repeat
pb1.Visible :=True;
pb1.Min :=0;
pb1.Max := EX.Worksheets[1].UsedRange.Rows.Count;
for i:=2 to EX.Worksheets[1].UsedRange.Rows.Count do
Begin
if Ws.ActiveSheet.Cells[i,4].Text <>'' then
Begin
str_in_code.Text :=str_in_code.Text+'<stu name='
+#39+ Ws.ActiveSheet.Cells[i,1].Text +#39+' sex='
+#39+ Ws.ActiveSheet.Cells[i,2].Text +#39+' stuNo='
+#39+ Ws.ActiveSheet.Cells[i,3].Text +#39+' stuCertNo='
+#39+ Ws.ActiveSheet.Cells[i,4].Text +#39+' score='
+#39+ Ws.ActiveSheet.Cells[i,5].Text +#39+'/>';
pb1.Position :=i -10 ;
End;
End;
str_in_code.Text:= str_in_code_11+str_in_code.Text+ str_in_code_22;
Str_string.WriteString(str_in_code.Text);
//-----------生成需要的数据
InputStream := TMemoryStream.Create;
Str_string.Position := 0;
InputStream.CopyFrom(Str_string,Str_string.Size );
OutStream := TMemoryStream.Create;
try
// HttpPostData(InputStream,OutStream,@ErrorMsg,'192.168.2.171','8080','GzczPrint/EmplXmlTransServlet',@ShowProcess);
HttpPostData(InputStream,OutStream,@ErrorMsg,out_ip,out_pot ,out_ServletName ,@ShowProcess);
pb1.Position := EX.Worksheets[1].UsedRange.Rows.Count;
pb1.Visible :=False;
if @ErrorMsg<>nil then
Begin
code_result:='1';
End
Else
Begin
//ShowMessage('成功');
ShowMessage('数据上传没有成功');
code_result:='0';
end;
finally
InputStream.Free;
OutStream.Free;
end;
Str_string.Free ;
except
EX.Quit;
End;
finally
Ex.Quit;
End;
end
Else
exit;
end;