|
楼主 |
发表于 2019-10-26 07:27:29
|
显示全部楼层
感谢楼上两位解答,format语句我在存储为excel时用了,在excel中显示没问题,只是再导出到数据库中就成了长时间格式。
我编的小程序是先记录实时曲线(图1),再存储为excel格式,excel表格再导出为曲线数据库(图2),问题是导出的时间轴数据太长。
图1
图2
附上excel存储程序:
- procedure TForm1.btn6Click(Sender: TObject);
- var
- i,ii,j,k,l:integer;
- ExcelApp, Sheet: Variant;
- SearchRec:Boolean;
- begin
- ii:=lns1.Count;
- ExcelApp := CreateOleObject('Excel.Application');
- ExcelApp.WorkBooks.Add;
- ExcelApp.Workbooks.open(ExtractFilePath(Paramstr(0)) + 'TC.xls');
- ExcelApp.WorkSheets[1].Activate;
- j:=ExcelApp.WorkSheets[1].usedrange.rows.count;
- //for i:=1 to j-1 do ExcelApp.ActiveSheet.Rows[2].delete;
- for i:=1 to ii do begin
- ExcelApp.Cells[i+1,1].Value :=DateToStr(Date);
- ExcelApp.Cells[i+1,3].Value :=lns1.YValue[i-1];
- ExcelApp.Cells[i+1,2].Value :=lns1.XLabel[i-1];
- end;
- for k:=1 to 99 do begin
- SearchRec:=FileExists(ExtractFilePath(Paramstr(0))+'TC'+FormatdateTime('yyyymmdd',now)+'-'+IntToStr(k)+'.xls');
- if SearchRec=false then break
- end;
- ExcelApp.ActiveSheet.SaveAs(ExtractFilePath(Paramstr(0)) + 'TC'+FormatdateTime('yyyymmdd',now)+'-'+IntToStr(k)+'.xls');
- ShowMessage('曲线已存储!文件名'+ 'TC'+FormatdateTime('yyyymmdd',now)+'-'+IntToStr(k)+'.xls');
- //ExcelApp.ActiveSheet.SaveAs(ExtractFilePath(Paramstr(0)) + 'TC.xls');
- ExcelApp.Activeworkbook.Close;
- ExcelApp.Quit;
- ExcelApp := Unassigned;
- end;
复制代码
载入曲线数据程序:
- procedure TForm1.btn8Click(Sender: TObject);
- var
- s:string;
- begin
- qry1.Close;
- con1.close;
- dlgOpen1.Filter := '曲线数据|*.xls';
- dlgOpen1.DefaultExt := '*.xls';
- dlgOpen1.Execute;
- s:=self.dlgOpen1.FileName;
- con1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
- +s+ ';Extended Properties=Excel 8.0;Persist Security Info=False';
- qry1.Close;
- qry1.SQL.Clear;
- qry1.SQL.Add('select * from [Sheet1$]');
- qry1.ExecSQL;
- lns1.DataSource:=qry1;
- qry1.Active;
- lns1.ShowInLegend:=False;
- lns1.XLabelsSource :='时间';
- lns1.YValues.ValueSource :='电压';
- end;
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|