datamodule2.publicq.Close;
datamodule2.publicq.SQL.Clear;
datamodule2.publicq.SQL.Add('select * from type_enemy where type_oid='''+trim(dbedit1.Text)+'''');
datamodule2.publicq.Active:=true;
datamodule2.publicq.open;
cur_row := 17;
While Not datamodule2.publicq.EOF do
begin
For cell := 1 To 5 do
myworksheet1.cells.item[cur_row, cell]:=datamodule2.publicq.Fields[cell].AsString;
datamodule2.publicq.Next;
cur_row := cur_row + 1;end;
//写专利信息
cur_row := cur_row + 1;
myworksheet1.cells.item[cur_row, 1]:='专利种类';
myworksheet1.cells.item[cur_row, 2]:='专利描述';
myworksheet1.cells.item[cur_row, 3]:='专利号';
myworksheet1.cells.item[cur_row, 4]:='时间';
myworksheet1.cells.item[cur_row, 5]:='专利人';
myworksheet1.cells.item[cur_row, 6]:='有效期';
myworksheet1.range[myworksheet1.cells.Item[cur_row, 1],myworksheet1.cells.Item[cur_row,6]].Font.ColorIndex := 5;
cur_row := cur_row + 1;
datamodule2.publicq.Close;
datamodule2.publicq.SQL.Clear;
datamodule2.publicq.SQL.Add('select * from type_patent where type_oid='''+Trim(dbedit1.Text)+'''');
datamodule2.publicq.Active:=true;
datamodule2.publicq.open;
While Not datamodule2.publicq.Eof do
begin
For cell:= 1 To 6 do
myworksheet1.cells.item[cur_row,cell]:=datamodule2.publicq.fields[cell].asstring;
datamodule2.publicq.Next;
end;
myWorksheet1.ConnectTo(myWorkbook.Worksheets[2] as _worksheet);
datamodule2.publicq.Close;
datamodule2.publicq.SQL.Clear;
datamodule2.publicq.SQL.Add('select * from type_enemy where type_oid='''+trim(dbedit1.Text)+'''');
datamodule2.publicq.Active:=true;
datamodule2.publicq.open;
cur_row := 17;
While Not datamodule2.publicq.EOF do
begin
For cell := 1 To 5 do
myworksheet1.cells.item[cur_row, cell]:=datamodule2.publicq.Fields[cell].AsString;
datamodule2.publicq.Next;
cur_row := cur_row + 1;end;
//写专利信息
cur_row := cur_row + 1;
myworksheet1.cells.item[cur_row, 1]:='专利种类';
myworksheet1.cells.item[cur_row, 2]:='专利描述';
myworksheet1.cells.item[cur_row, 3]:='专利号';
myworksheet1.cells.item[cur_row, 4]:='时间';
myworksheet1.cells.item[cur_row, 5]:='专利人';
myworksheet1.cells.item[cur_row, 6]:='有效期';
myworksheet1.range[myworksheet1.cells.Item[cur_row, 1],myworksheet1.cells.Item[cur_row,6]].Font.ColorIndex := 5;
cur_row := cur_row + 1;
datamodule2.publicq.Close;
datamodule2.publicq.SQL.Clear;
datamodule2.publicq.SQL.Add('select * from type_patent where type_oid='''+Trim(dbedit1.Text)+'''');
datamodule2.publicq.Active:=true;
datamodule2.publicq.open;
While Not datamodule2.publicq.Eof do
begin
For cell:= 1 To 6 do
myworksheet1.cells.item[cur_row,cell]:=datamodule2.publicq.fields[cell].asstring;
datamodule2.publicq.Next;
end;
try
WorkBook :=eclApp.workBooks.add ;
for i :=1 to a_FiledNo do //转化字段名;
begin
//eclApp.cells(1,i) :=Form3.DBGrid4.Columns[i-1].Title.caption ;
eclApp.cells(1,i) :=Form3.DBGrid4.Fields[i-1].FieldName ;
end;
Form3.DBGrid4.DataSource.DataSet.First ;
for i :=1 to Form3.a_recno do //Form3.a_recno
begin
for j :=1 to a_filedNo do //转化一个记录
begin
eclApp.cells(i+1,j) :=Form3.DbGrid4.Fields[j-1].Value ;
end;
Form3.DBGrid4.DataSource.DataSet.Next ;
end;
try
WorkBook.saveas(ExtractFilePath(Application.ExeName )+xlsFileName);
WorkBook.close;
showmessage('保存EXECL文件成功,路径为:'+ExtractFilePath(Application.ExeName )+xlsFileName);
except
showmessage('保存文件出错');
end;
if (a_FiledCount <>b_FiledCount) //当数据 表和导入的excel表中的列数不一样,说明导入的excel文件不是正确的
then begin
showmessage('您选择导入的excel文件错误'+#13+#10+'请您重新选择');
WorkBook.close;
eclApp.quit;
eclApp:=Unassigned;
exit;
end
else begin //列数正确,但是还要继续判断每列的字段名是否一致
for i :=1 to b_filedCount do
begin
//showmessage(eclApp.activesheet.cells.item[1,i].value);
//showmessage(DataMod.ADO_basic.Fields.Fields[i-1].FieldName );
if eclApp.activesheet.cells.item[2,i].value<>Data_Mod.DataModule1.kcinfo_Tab.Fields[i-1].FieldName //判断字段名是否相等
//if eclApp.activesheet.cells.item[1,i].value<>DataMod.ADO_basic.Fields.Fields[i-1].FieldName //判断中文title.caption 是否相等
then begin
showmessage('您选择导入的excel文件错误'+#13+#10+'请您重新选择');
WorkBook.close;
eclApp.quit;
eclApp:=Unassigned;
Data_Mod.DataModule1.kcinfo_Tab.Close ;
exit;
end;
end; //for i:=.....
end; //end with else
for i :=3 to b_row do //行
begin
a_flag :=Data_Mod.DataModule1.kcinfo_Tab.Locate(eclApp.activesheet.cells.item[2,1],eclApp.activesheet.cells.item[i,1],[loCaseInsensitive]);
if (a_flag =true)
then begin
showmessage('该记录已经存在');
Data_Mod.DataModule1.kcinfo_Tab.Next ;
continue;
end;
With Data_Mod.DataModule1.kcinfo_Tab do
begin
close ;
TableName :=str;
active :=true;
Append;
end;
For j :=1 to b_filedCount do //列
begin //开始导入数据库
//showmessage(eclApp.activesheet.cells.item[1,j]);//.Value);
////showmessage(eclApp.activesheet.cells.item[i,j].value);
//showmessage(eclApp.activesheet.cells[i,j].value);