fpspreadsheet: Remove workbook parameter from the reader's ReadFromXXXX methods to avoid with conflict by workbook passed at construction.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3925 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
ac387f67e4
commit
629ac7dd00
@ -27,9 +27,9 @@ type
|
||||
procedure ReadNumber(AStream: TStream); override;
|
||||
public
|
||||
constructor Create(AWorkbook: TsWorkbook); override;
|
||||
procedure ReadFromFile(AFileName: String; AData: TsWorkbook); override;
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); override;
|
||||
procedure ReadFromStrings(AStrings: TStrings; AData: TsWorkbook); override;
|
||||
procedure ReadFromFile(AFileName: String); override;
|
||||
procedure ReadFromStream(AStream: TStream); override;
|
||||
procedure ReadFromStrings(AStrings: TStrings); override;
|
||||
end;
|
||||
|
||||
TsCSVWriter = class(TsCustomSpreadWriter)
|
||||
@ -203,6 +203,8 @@ constructor TsCSVReader.Create(AWorkbook: TsWorkbook);
|
||||
begin
|
||||
inherited Create(AWorkbook);
|
||||
FWorksheetName := 'Sheet1'; // will be replaced by filename
|
||||
FFormatSettings := CSVParams.FormatSettings;
|
||||
ReplaceFormatSettings(FFormatSettings, FWorkbook.FormatSettings);
|
||||
end;
|
||||
|
||||
function TsCSVReader.IsBool(AText: String; out AValue: Boolean): Boolean;
|
||||
@ -429,13 +431,13 @@ begin
|
||||
Unused(AStream);
|
||||
end;
|
||||
|
||||
procedure TsCSVReader.ReadFromFile(AFileName: String; AData: TsWorkbook);
|
||||
procedure TsCSVReader.ReadFromFile(AFileName: String);
|
||||
begin
|
||||
FWorksheetName := ChangeFileExt(ExtractFileName(AFileName), '');
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TsCSVReader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsCSVReader.ReadFromStream(AStream: TStream);
|
||||
var
|
||||
Parser: TCSVParser;
|
||||
s: String;
|
||||
@ -449,12 +451,8 @@ begin
|
||||
else
|
||||
encoding := CSVParams.Encoding;
|
||||
|
||||
// Store workbook for internal use, and create worksheet
|
||||
FWorkbook := AData;
|
||||
FWorksheet := AData.AddWorksheet(FWorksheetName, true);
|
||||
|
||||
FFormatSettings := CSVParams.FormatSettings;
|
||||
ReplaceFormatSettings(FFormatSettings, FWorkbook.FormatSettings);
|
||||
// Create worksheet
|
||||
FWorksheet := FWorkbook.AddWorksheet(FWorksheetName, true);
|
||||
|
||||
// Create csv parser, read file and store in worksheet
|
||||
Parser := TCSVParser.Create;
|
||||
@ -476,13 +474,13 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsCSVReader.ReadFromStrings(AStrings: TStrings; AData: TsWorkbook);
|
||||
procedure TsCSVReader.ReadFromStrings(AStrings: TStrings);
|
||||
var
|
||||
Stream: TStringStream;
|
||||
begin
|
||||
Stream := TStringStream.Create(AStrings.Text);
|
||||
try
|
||||
ReadFromStream(Stream, AData);
|
||||
ReadFromStream(Stream);
|
||||
finally
|
||||
Stream.Free;
|
||||
end;
|
||||
|
@ -120,8 +120,8 @@ type
|
||||
{ General reading methods }
|
||||
constructor Create(AWorkbook: TsWorkbook); override;
|
||||
destructor Destroy; override;
|
||||
procedure ReadFromFile(AFileName: string; AData: TsWorkbook); override;
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); override;
|
||||
procedure ReadFromFile(AFileName: string); override;
|
||||
procedure ReadFromStream(AStream: TStream); override;
|
||||
end;
|
||||
|
||||
{ TsSpreadOpenDocWriter }
|
||||
@ -1342,7 +1342,7 @@ begin
|
||||
Workbook.OnReadCellData(Workbook, ARow, ACol, cell);
|
||||
end;
|
||||
|
||||
procedure TsSpreadOpenDocReader.ReadFromFile(AFileName: string; AData: TsWorkbook);
|
||||
procedure TsSpreadOpenDocReader.ReadFromFile(AFileName: string);
|
||||
var
|
||||
Doc : TXMLDocument;
|
||||
FilePath : string;
|
||||
@ -1409,7 +1409,7 @@ begin
|
||||
TableNode := TableNode.NextSibling;
|
||||
continue;
|
||||
end;
|
||||
FWorkSheet := aData.AddWorksheet(GetAttrValue(TableNode,'table:name'), true);
|
||||
FWorkSheet := FWorkbook.AddWorksheet(GetAttrValue(TableNode,'table:name'), true);
|
||||
// Collect column styles used
|
||||
ReadColumns(TableNode);
|
||||
// Process each row inside the sheet and process each cell of the row
|
||||
@ -1439,9 +1439,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsSpreadOpenDocReader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadOpenDocReader.ReadFromStream(AStream: TStream);
|
||||
begin
|
||||
Unused(AStream, AData);
|
||||
Unused(AStream);
|
||||
raise Exception.Create('[TsSpreadOpenDocReader.ReadFromStream] '+
|
||||
'Method not implemented. Use "ReadFromFile" instead.');
|
||||
end;
|
||||
|
@ -866,9 +866,9 @@ type
|
||||
constructor Create(AWorkbook: TsWorkbook); override;
|
||||
destructor Destroy; override;
|
||||
{ General writing methods }
|
||||
procedure ReadFromFile(AFileName: string; AData: TsWorkbook); virtual;
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); virtual;
|
||||
procedure ReadFromStrings(AStrings: TStrings; AData: TsWorkbook); virtual;
|
||||
procedure ReadFromFile(AFileName: string); virtual;
|
||||
procedure ReadFromStream(AStream: TStream); virtual;
|
||||
procedure ReadFromStrings(AStrings: TStrings); virtual;
|
||||
end;
|
||||
|
||||
|
||||
@ -6592,7 +6592,8 @@ begin
|
||||
Break;
|
||||
end;
|
||||
|
||||
if Result = nil then raise Exception.Create(rsUnsupportedReadFormat);
|
||||
if Result = nil then
|
||||
raise Exception.Create(rsUnsupportedReadFormat);
|
||||
end;
|
||||
|
||||
{@@ ----------------------------------------------------------------------------
|
||||
@ -6617,7 +6618,8 @@ begin
|
||||
Break;
|
||||
end;
|
||||
|
||||
if Result = nil then raise Exception.Create(rsUnsupportedWriteFormat);
|
||||
if Result = nil then
|
||||
raise Exception.Create(rsUnsupportedWriteFormat);
|
||||
end;
|
||||
|
||||
{@@ ----------------------------------------------------------------------------
|
||||
@ -6686,7 +6688,7 @@ begin
|
||||
ok := false;
|
||||
inc(FLockCount); // This locks various notifications from being sent
|
||||
try
|
||||
AReader.ReadFromFile(AFileName, Self);
|
||||
AReader.ReadFromFile(AFileName);
|
||||
ok := true;
|
||||
UpdateCaches;
|
||||
if (boAutoCalc in Options) then
|
||||
@ -6801,7 +6803,7 @@ begin
|
||||
inc(FLockCount);
|
||||
try
|
||||
ok := false;
|
||||
AReader.ReadFromStream(AStream, Self);
|
||||
AReader.ReadFromStream(AStream);
|
||||
ok := true;
|
||||
finally
|
||||
dec(FLockCount);
|
||||
@ -8483,13 +8485,13 @@ end;
|
||||
{@@ ----------------------------------------------------------------------------
|
||||
Default file reading method.
|
||||
|
||||
Opens the file and calls ReadFromStream
|
||||
Opens the file and calls ReadFromStream. Data are stored in the workbook
|
||||
specified during construction.
|
||||
|
||||
@param AFileName The input file name.
|
||||
@param AData The Workbook to be filled with information from the file.
|
||||
@see TsWorkbook
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TsCustomSpreadReader.ReadFromFile(AFileName: string; AData: TsWorkbook);
|
||||
procedure TsCustomSpreadReader.ReadFromFile(AFileName: string);
|
||||
var
|
||||
InputFile: TStream;
|
||||
begin
|
||||
@ -8499,7 +8501,7 @@ begin
|
||||
InputFile := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);
|
||||
|
||||
try
|
||||
ReadFromStream(InputFile, AData);
|
||||
ReadFromStream(InputFile);
|
||||
finally
|
||||
InputFile.Free;
|
||||
end;
|
||||
@ -8513,10 +8515,11 @@ end;
|
||||
the data are provided by calling ReadFromStrings. This mechanism is valid
|
||||
for wikitables.
|
||||
|
||||
@param AStream Stream containing the workbook data
|
||||
Data will be stored in the workbook defined at construction.
|
||||
|
||||
@param AData Workbook which is filled by the data from the stream.
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TsCustomSpreadReader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsCustomSpreadReader.ReadFromStream(AStream: TStream);
|
||||
var
|
||||
AStringStream: TStringStream;
|
||||
AStrings: TStringList;
|
||||
@ -8527,7 +8530,7 @@ begin
|
||||
AStringStream.CopyFrom(AStream, AStream.Size);
|
||||
AStringStream.Seek(0, soFromBeginning);
|
||||
AStrings.Text := AStringStream.DataString;
|
||||
ReadFromStrings(AStrings, AData);
|
||||
ReadFromStrings(AStrings);
|
||||
finally
|
||||
AStringStream.Free;
|
||||
AStrings.Free;
|
||||
@ -8538,10 +8541,9 @@ end;
|
||||
Reads workbook data from a string list. This abstract implementation does
|
||||
nothing and raises an exception. Must be overridden, like for wikitables.
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TsCustomSpreadReader.ReadFromStrings(AStrings: TStrings;
|
||||
AData: TsWorkbook);
|
||||
procedure TsCustomSpreadReader.ReadFromStrings(AStrings: TStrings);
|
||||
begin
|
||||
Unused(AStrings, AData);
|
||||
Unused(AStrings);
|
||||
raise Exception.Create(rsUnsupportedReadFormat);
|
||||
end;
|
||||
|
||||
|
@ -64,11 +64,12 @@ type
|
||||
{ TsWikiTableReader }
|
||||
|
||||
TsWikiTableReader = class(TsCustomSpreadReader)
|
||||
protected
|
||||
procedure ReadFromStrings_Pipes(AStrings: TStrings);
|
||||
public
|
||||
SubFormat: TsSpreadsheetFormat;
|
||||
{ General reading methods }
|
||||
procedure ReadFromStrings(AStrings: TStrings; AData: TsWorkbook); override;
|
||||
procedure ReadFromStrings_Pipes(AStrings: TStrings; AData: TsWorkbook);
|
||||
procedure ReadFromStrings(AStrings: TStrings); override;
|
||||
end;
|
||||
|
||||
{ TsWikiTable_PipesReader }
|
||||
@ -293,24 +294,22 @@ end;
|
||||
|
||||
{ TsWikiTableReader }
|
||||
|
||||
procedure TsWikiTableReader.ReadFromStrings(AStrings: TStrings;
|
||||
AData: TsWorkbook);
|
||||
procedure TsWikiTableReader.ReadFromStrings(AStrings: TStrings);
|
||||
begin
|
||||
case SubFormat of
|
||||
sfWikiTable_Pipes: ReadFromStrings_Pipes(AStrings, AData);
|
||||
sfWikiTable_Pipes: ReadFromStrings_Pipes(AStrings);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsWikiTableReader.ReadFromStrings_Pipes(AStrings: TStrings;
|
||||
AData: TsWorkbook);
|
||||
procedure TsWikiTableReader.ReadFromStrings_Pipes(AStrings: TStrings);
|
||||
var
|
||||
i, j: Integer;
|
||||
lCurLine: String;
|
||||
lLineSplitter: TWikiTableTokenizer;
|
||||
lCurToken: TWikiTableToken;
|
||||
begin
|
||||
FWorksheet := AData.AddWorksheet('Table', true);
|
||||
lLineSplitter := TWikiTableTokenizer.Create(AData);
|
||||
FWorksheet := FWorkbook.AddWorksheet('Table', true);
|
||||
lLineSplitter := TWikiTableTokenizer.Create(FWorkbook);
|
||||
try
|
||||
for i := 0 to AStrings.Count-1 do
|
||||
begin
|
||||
|
@ -83,7 +83,7 @@ type
|
||||
public
|
||||
constructor Create(AWorkbook: TsWorkbook); override;
|
||||
{ General reading methods }
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); override;
|
||||
procedure ReadFromStream(AStream: TStream); override;
|
||||
end;
|
||||
|
||||
{ TsSpreadBIFF2Writer }
|
||||
@ -504,7 +504,7 @@ begin
|
||||
// (Using the formats in the file would require de-localizing them).
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF2Reader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF2Reader.ReadFromStream(AStream: TStream);
|
||||
var
|
||||
BIFF2EOF: Boolean;
|
||||
RecordType: Word;
|
||||
@ -519,7 +519,7 @@ begin
|
||||
BIFF2EOF := False;
|
||||
|
||||
{ In BIFF2 files there is only one worksheet, let's create it }
|
||||
FWorksheet := AData.AddWorksheet('Sheet', true);
|
||||
FWorksheet := FWorkbook.AddWorksheet('Sheet', true);
|
||||
|
||||
{ Read all records in a loop }
|
||||
while not BIFF2EOF do
|
||||
|
@ -82,16 +82,16 @@ type
|
||||
procedure ReadFont(const AStream: TStream);
|
||||
procedure ReadFormat(AStream: TStream); override;
|
||||
procedure ReadLabel(AStream: TStream); override;
|
||||
procedure ReadWorkbookGlobals(AStream: TStream; AData: TsWorkbook);
|
||||
procedure ReadWorksheet(AStream: TStream; AData: TsWorkbook);
|
||||
procedure ReadWorkbookGlobals(AStream: TStream);
|
||||
procedure ReadWorksheet(AStream: TStream);
|
||||
procedure ReadRichString(AStream: TStream);
|
||||
procedure ReadStandardWidth(AStream: TStream; ASheet: TsWorksheet);
|
||||
procedure ReadStringRecord(AStream: TStream); override;
|
||||
procedure ReadXF(AStream: TStream);
|
||||
public
|
||||
{ General reading methods }
|
||||
procedure ReadFromFile(AFileName: string; AData: TsWorkbook); override;
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); override;
|
||||
procedure ReadFromFile(AFileName: string); override;
|
||||
procedure ReadFromStream(AStream: TStream); override;
|
||||
end;
|
||||
|
||||
{ TsSpreadBIFF5Writer }
|
||||
@ -324,15 +324,12 @@ type
|
||||
|
||||
{ TsSpreadBIFF5Reader }
|
||||
|
||||
procedure TsSpreadBIFF5Reader.ReadWorkbookGlobals(AStream: TStream;
|
||||
AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF5Reader.ReadWorkbookGlobals(AStream: TStream);
|
||||
var
|
||||
SectionEOF: Boolean = False;
|
||||
RecordType: Word;
|
||||
CurStreamPos: Int64;
|
||||
begin
|
||||
Unused(AData);
|
||||
|
||||
// Clear existing fonts. They will be replaced by those from the file.
|
||||
FWorkbook.RemoveAllFonts;
|
||||
|
||||
@ -365,13 +362,13 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF5Reader.ReadWorksheet(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF5Reader.ReadWorksheet(AStream: TStream);
|
||||
var
|
||||
SectionEOF: Boolean = False;
|
||||
RecordType: Word;
|
||||
CurStreamPos: Int64;
|
||||
begin
|
||||
FWorksheet := AData.AddWorksheet(FWorksheetNames[FCurrentWorksheet], true);
|
||||
FWorksheet := FWorkbook.AddWorksheet(FWorksheetNames[FCurrentWorksheet], true);
|
||||
|
||||
while (not SectionEOF) do
|
||||
begin
|
||||
@ -556,7 +553,7 @@ begin
|
||||
FIncompleteCell := nil;
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF5Reader.ReadFromFile(AFileName: string; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF5Reader.ReadFromFile(AFileName: string);
|
||||
var
|
||||
MemStream: TMemoryStream;
|
||||
OLEStorage: TOLEStorage;
|
||||
@ -574,7 +571,7 @@ begin
|
||||
|
||||
// Rewind the stream and read from it
|
||||
MemStream.Position := 0;
|
||||
ReadFromStream(MemStream, AData);
|
||||
ReadFromStream(MemStream);
|
||||
|
||||
// Uncomment to verify if the data was correctly obtained from the OLE file
|
||||
// MemStream.SaveToFile(SysUtils.ChangeFileExt(AFileName, 'bin.xls'));
|
||||
@ -714,7 +711,7 @@ begin
|
||||
FCellFormatList.Add(fmt);
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF5Reader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF5Reader.ReadFromStream(AStream: TStream);
|
||||
var
|
||||
BIFF5EOF: Boolean;
|
||||
begin
|
||||
@ -727,7 +724,7 @@ begin
|
||||
|
||||
{ Read workbook globals }
|
||||
|
||||
ReadWorkbookGlobals(AStream, AData);
|
||||
ReadWorkbookGlobals(AStream);
|
||||
|
||||
// Check for the end of the file
|
||||
if AStream.Position >= AStream.Size then BIFF5EOF := True;
|
||||
@ -736,7 +733,7 @@ begin
|
||||
|
||||
while (not BIFF5EOF) do
|
||||
begin
|
||||
ReadWorksheet(AStream, AData);
|
||||
ReadWorksheet(AStream);
|
||||
|
||||
// Check for the end of the file
|
||||
if AStream.Position >= AStream.Size then BIFF5EOF := True;
|
||||
|
@ -75,8 +75,8 @@ type
|
||||
FSharedStringTable: TStringList;
|
||||
function ReadWideString(const AStream: TStream; const ALength: WORD): WideString; overload;
|
||||
function ReadWideString(const AStream: TStream; const AUse8BitLength: Boolean): WideString; overload;
|
||||
procedure ReadWorkbookGlobals(AStream: TStream; AData: TsWorkbook);
|
||||
procedure ReadWorksheet(AStream: TStream; AData: TsWorkbook);
|
||||
procedure ReadWorkbookGlobals(AStream: TStream);
|
||||
procedure ReadWorksheet(AStream: TStream);
|
||||
procedure ReadBoundsheet(AStream: TStream);
|
||||
function ReadString(const AStream: TStream; const ALength: WORD): String;
|
||||
protected
|
||||
@ -102,8 +102,8 @@ type
|
||||
public
|
||||
destructor Destroy; override;
|
||||
{ General reading methods }
|
||||
procedure ReadFromFile(AFileName: string; AData: TsWorkbook); override;
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); override;
|
||||
procedure ReadFromFile(AFileName: string); override;
|
||||
procedure ReadFromStream(AStream: TStream); override;
|
||||
end;
|
||||
|
||||
{ TsSpreadBIFF8Writer }
|
||||
@ -439,14 +439,12 @@ begin
|
||||
Result := ReadWideString(AStream, Len);
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF8Reader.ReadWorkbookGlobals(AStream: TStream;
|
||||
AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF8Reader.ReadWorkbookGlobals(AStream: TStream);
|
||||
var
|
||||
SectionEOF: Boolean = False;
|
||||
RecordType: Word;
|
||||
CurStreamPos: Int64;
|
||||
begin
|
||||
Unused(AData);
|
||||
// Clear existing fonts. They will be replaced by those from the file.
|
||||
FWorkbook.RemoveAllFonts;
|
||||
if Assigned(FSharedStringTable) then FreeAndNil(FSharedStringTable);
|
||||
@ -484,20 +482,20 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF8Reader.ReadWorksheet(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF8Reader.ReadWorksheet(AStream: TStream);
|
||||
var
|
||||
SectionEOF: Boolean = False;
|
||||
RecordType: Word;
|
||||
CurStreamPos: Int64;
|
||||
begin
|
||||
FWorksheet := AData.AddWorksheet(FWorksheetNames[FCurrentWorksheet], true);
|
||||
FWorksheet := FWorkbook.AddWorksheet(FWorksheetNames[FCurrentWorksheet], true);
|
||||
|
||||
while (not SectionEOF) do
|
||||
begin
|
||||
{ Read the record header }
|
||||
RecordType := WordLEToN(AStream.ReadWord);
|
||||
RecordSize := WordLEToN(AStream.ReadWord);
|
||||
PendingRecordSize:=RecordSize;
|
||||
PendingRecordSize := RecordSize;
|
||||
|
||||
CurStreamPos := AStream.Position;
|
||||
|
||||
@ -576,7 +574,7 @@ begin
|
||||
Result := UTF16ToUTF8(ReadWideString(AStream, ALength));
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF8Reader.ReadFromFile(AFileName: string; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF8Reader.ReadFromFile(AFileName: string);
|
||||
var
|
||||
MemStream: TMemoryStream;
|
||||
OLEStorage: TOLEStorage;
|
||||
@ -595,7 +593,7 @@ begin
|
||||
|
||||
// Rewind the stream and read from it
|
||||
MemStream.Position := 0;
|
||||
ReadFromStream(MemStream, AData);
|
||||
ReadFromStream(MemStream);
|
||||
|
||||
// Uncomment to verify if the data was correctly optained from the OLE file
|
||||
// MemStream.SaveToFile(SysUtils.ChangeFileExt(AFileName, 'bin.xls'));
|
||||
@ -605,7 +603,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsSpreadBIFF8Reader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadBIFF8Reader.ReadFromStream(AStream: TStream);
|
||||
var
|
||||
BIFF8EOF: Boolean;
|
||||
begin
|
||||
@ -617,7 +615,7 @@ begin
|
||||
BIFF8EOF := False;
|
||||
|
||||
{ Read workbook globals }
|
||||
ReadWorkbookGlobals(AStream, AData);
|
||||
ReadWorkbookGlobals(AStream);
|
||||
|
||||
// Check for the end of the file
|
||||
if AStream.Position >= AStream.Size then BIFF8EOF := True;
|
||||
@ -628,7 +626,7 @@ begin
|
||||
//Safe to not read beyond assigned worksheet names.
|
||||
if FCurrentWorksheet > FWorksheetNames.Count-1 then break;
|
||||
|
||||
ReadWorksheet(AStream, AData);
|
||||
ReadWorksheet(AStream);
|
||||
|
||||
// Check for the end of the file
|
||||
if AStream.Position >= AStream.Size then BIFF8EOF := True;
|
||||
|
@ -96,8 +96,8 @@ type
|
||||
public
|
||||
constructor Create(AWorkbook: TsWorkbook); override;
|
||||
destructor Destroy; override;
|
||||
procedure ReadFromFile(AFileName: string; AData: TsWorkbook); override;
|
||||
procedure ReadFromStream(AStream: TStream; AData: TsWorkbook); override;
|
||||
procedure ReadFromFile(AFileName: string); override;
|
||||
procedure ReadFromStream(AStream: TStream); override;
|
||||
end;
|
||||
|
||||
{ TsSpreadOOXMLWriter }
|
||||
@ -1471,7 +1471,7 @@ begin
|
||||
FixRows(AWorksheet);
|
||||
end;
|
||||
|
||||
procedure TsSpreadOOXMLReader.ReadFromFile(AFileName: string; AData: TsWorkbook);
|
||||
procedure TsSpreadOOXMLReader.ReadFromFile(AFileName: string);
|
||||
var
|
||||
Doc : TXMLDocument;
|
||||
FilePath : string;
|
||||
@ -1542,7 +1542,7 @@ begin
|
||||
// read worksheets
|
||||
for i:=0 to SheetList.Count-1 do begin
|
||||
// Create worksheet
|
||||
FWorksheet := AData.AddWorksheet(SheetList[i], true);
|
||||
FWorksheet := FWorkbook.AddWorksheet(SheetList[i], true);
|
||||
|
||||
// unzip sheet file
|
||||
fn := OOXML_PATH_XL_WORKSHEETS + Format('sheet%d.xml', [i+1]);
|
||||
@ -1595,9 +1595,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsSpreadOOXMLReader.ReadFromStream(AStream: TStream; AData: TsWorkbook);
|
||||
procedure TsSpreadOOXMLReader.ReadFromStream(AStream: TStream);
|
||||
begin
|
||||
Unused(AStream, AData);
|
||||
Unused(AStream);
|
||||
raise Exception.Create('[TsSpreadOOXMLReader.ReadFromStream] '+
|
||||
'Method not implemented. Use "ReadFromFile" instead.');
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user