//保存数据到文件
//path:文件所在路径
//data:待保存的数据
//SheetName:Excel表单的名字
function SaveToExcel(path:string;data:Variant;SheetName:string):boolean;
var
flag:boolean;
temp:integer;
i:Integer;
index:Integer;
MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
begin
Result := True; //可最后在考虑
flag := false; //判断是否会有重名表单
try
MsExcel := CreateOleObject('Excel.Application');
try
MsExcelWorkBook := MsExcel.Workbooks.Open (path);
try
//先判断当前是否已存在同名表单
for i := 1 to MsExcel.Sheets.Count do
begin
if (sheetname = MsExcel.Sheets[i].Name) then
begin
temp := i;
if(messagedlg('已存在,是否修改?',mtwarning,[mbYes,mbNo],0)=1) then //mbYes=0 ,mbNo=1
begin
result := false;
exit;
end
else
begin
flag:=true;
end;
end;
end;
if flag then //修改已经存在的表单数据,需要激活该表单
begin
MsExcel.WorkSheets[Temp].Activate;
MsExcelWorkSheet := MsExcel.Worksheets.Item[temp];
MsExcelWorkSheet.Name:=MsExcel.Sheets[temp].Name;
end
else //创建新的表单
begin
MsExcelWorkBook.WorkSheets.Add;
MsExcel.WorkSheets[MsExcel.Workbooks.Count].Activate;
MsExcelWorkSheet := MsExcel.Worksheets.Item[MsExcel.Workbooks.Count];
MsExcelWorkSheet.Name:=sheetname;
end;
MsExcelWorkSheet.Cells.item[1,1] := ''; //excel数据是先行后列
//MsExcelWorkSheet.Columns[1].ColumnWidth := 120; //设置例宽
MsExcelWorkSheet.Cells.item[1,2] := '';
MsExcelWorkSheet.Cells.item[1,3] := '';
MsExcelWorkSheet.Cells.item[2,1] := '';
MsExcelWorkSheet.Cells.item[2,2] := data[1,0]; //存入数据
MsExcelWorkSheet.Cells.item[2,3] := data[14,0];
MsExcel.DisplayAlerts:=false; //不将该Excel表显示在屏幕上
MsExcel.ActiveWorkBook.Save; //保存Excel
finally
MsExcel.WorkBooks.Close; //关闭Excel
end;
finally
MsExcel.Quit;
MsExcel := Unassigned;
end;
except
ShowMessage('保存文件失败');
result:= false;
end;
end;
//path:文件所在路径
//data:待保存的数据
//SheetName:Excel表单的名字
function SaveToExcel(path:string;data:Variant;SheetName:string):boolean;
var
flag:boolean;
temp:integer;
i:Integer;
index:Integer;
MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
begin
Result := True; //可最后在考虑
flag := false; //判断是否会有重名表单
try
MsExcel := CreateOleObject('Excel.Application');
try
MsExcelWorkBook := MsExcel.Workbooks.Open (path);
try
//先判断当前是否已存在同名表单
for i := 1 to MsExcel.Sheets.Count do
begin
if (sheetname = MsExcel.Sheets[i].Name) then
begin
temp := i;
if(messagedlg('已存在,是否修改?',mtwarning,[mbYes,mbNo],0)=1) then //mbYes=0 ,mbNo=1
begin
result := false;
exit;
end
else
begin
flag:=true;
end;
end;
end;
if flag then //修改已经存在的表单数据,需要激活该表单
begin
MsExcel.WorkSheets[Temp].Activate;
MsExcelWorkSheet := MsExcel.Worksheets.Item[temp];
MsExcelWorkSheet.Name:=MsExcel.Sheets[temp].Name;
end
else //创建新的表单
begin
MsExcelWorkBook.WorkSheets.Add;
MsExcel.WorkSheets[MsExcel.Workbooks.Count].Activate;
MsExcelWorkSheet := MsExcel.Worksheets.Item[MsExcel.Workbooks.Count];
MsExcelWorkSheet.Name:=sheetname;
end;
MsExcelWorkSheet.Cells.item[1,1] := ''; //excel数据是先行后列
//MsExcelWorkSheet.Columns[1].ColumnWidth := 120; //设置例宽
MsExcelWorkSheet.Cells.item[1,2] := '';
MsExcelWorkSheet.Cells.item[1,3] := '';
MsExcelWorkSheet.Cells.item[2,1] := '';
MsExcelWorkSheet.Cells.item[2,2] := data[1,0]; //存入数据
MsExcelWorkSheet.Cells.item[2,3] := data[14,0];
MsExcel.DisplayAlerts:=false; //不将该Excel表显示在屏幕上
MsExcel.ActiveWorkBook.Save; //保存Excel
finally
MsExcel.WorkBooks.Close; //关闭Excel
end;
finally
MsExcel.Quit;
MsExcel := Unassigned;
end;
except
ShowMessage('保存文件失败');
result:= false;
end;
end;