如题:我在使用XLSReadWriteII5控件的时候发现在调用write方法后,会将上次的写过的内容也重新写一遍。这样的话要是多次调用write的话岂不是之前的内容一直在反复重写。有什么方法可以清除掉已经写过的内存?
如下是我做测试的代码:
XLS := TXLSReadWriteII5.creat(Nil);
XLS.Filename := 'E:\RunData\123.xlsx';
xls.Sheets[0].AsString[0,0] := '123';
XLS.Sheets[0].AsString[1,1] := 'test';
XLS.Sheets[0].AsString[2,2] := 'Hello';
xls.write;
XLS.Filename := 'E:\RunData\123-1.xlsx';
XLS.Sheets[0].AsString[5,5] := 'delphi';
xls.Write;这样会发现第二个文件中也含有第一个文件的内容。
如果我需要在同一个文件中反复修改某些数据的话,那是不是之前写过的数据还是会一遍一遍的重复写入?
如下是我做测试的代码:
XLS := TXLSReadWriteII5.creat(Nil);
XLS.Filename := 'E:\RunData\123.xlsx';
xls.Sheets[0].AsString[0,0] := '123';
XLS.Sheets[0].AsString[1,1] := 'test';
XLS.Sheets[0].AsString[2,2] := 'Hello';
xls.write;
XLS.Filename := 'E:\RunData\123-1.xlsx';
XLS.Sheets[0].AsString[5,5] := 'delphi';
xls.Write;这样会发现第二个文件中也含有第一个文件的内容。
如果我需要在同一个文件中反复修改某些数据的话,那是不是之前写过的数据还是会一遍一遍的重复写入?
两次写入?当然是重复了,xls的内容并没有清除啊。
xls的内容怎么清除啊?除了释放xls。比如我想反复的更改一个文件的话,每次更改后write一次。但是不关闭文件。过一段时间数据更新后把更新后的数据追加到后边。此时调用write的话是不是会把之前写过的内容再写一次。有没有办法把之前写过的数据释放掉?
我用create(application)试了下,结果是一样的。还是有残留
我用create(application)试了下,结果是一样的。还是有残留
这个好像是需不需要手工释放的,nil好像必须手工释放,我也不是太清楚
我是要写同一个sheet,反复操作。上面只是我做的一个实验。发现有残留。现在就想着怎样可以把残留内容清除掉。可能是之前没表达清楚。不好意思啊
我是要写同一个sheet,反复操作。上面只是我做的一个实验。发现有残留。现在就想着怎样可以把残留内容清除掉。可能是之前没表达清楚。不好意思啊而且重复写入,文件打了的话就会特别慢。而且占资源。所以想的是写一次就把这次占用的内存清理掉。提高写入速度
2、如果是数据库调出的数据,修改后写入sheet,你还是修改后写一次的写比较合理,也就是释放一下xls,直接就清空了上一次的内容,另外可以在create前面加一个对话框判断 if fileexists(文件名) then来确认覆盖原文件。
不知道我理解的是不是对。
我用的是Berlin10.1
XLS := TXLSReadWriteII5.create(Nil);
我有TXLSReadWriteII5,要吗?
我有TXLSReadWriteII5,要吗?
哦,对了,我的是只到XE7,不知XE10能否装