diff --git a/components/fpspreadsheet/examples/other/images/demo_read_images.lpi b/components/fpspreadsheet/examples/other/images/demo_read_images.lpi new file mode 100644 index 000000000..e542daf87 --- /dev/null +++ b/components/fpspreadsheet/examples/other/images/demo_read_images.lpi @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + <UseAppBundle Value="False"/> + <ResourceType Value="res"/> + </General> + <BuildModes> + <Item Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + <UseFileFilters Value="True"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + </RunParams> + <RequiredPackages> + <Item> + <PackageName Value="laz_fpspreadsheet"/> + </Item> + </RequiredPackages> + <Units> + <Unit> + <Filename Value="demo_read_images.lpr"/> + <IsPartOfProject Value="True"/> + </Unit> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="demo_read_images"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Debugging> + <DebugInfoType Value="dsDwarf3"/> + </Debugging> + </Linking> + </CompilerOptions> + <Debugging> + <Exceptions> + <Item> + <Name Value="EAbort"/> + </Item> + <Item> + <Name Value="ECodetoolError"/> + </Item> + <Item> + <Name Value="EFOpenError"/> + </Item> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/components/fpspreadsheet/examples/other/images/demo_read_images.lpr b/components/fpspreadsheet/examples/other/images/demo_read_images.lpr new file mode 100644 index 000000000..f894e4f92 --- /dev/null +++ b/components/fpspreadsheet/examples/other/images/demo_read_images.lpr @@ -0,0 +1,69 @@ +program demo_read_images; + +// Activate one of these defines +{$DEFINE USE_XLSX} +{.$DEFINE USE_OPENDOCUMENT} + +uses + SysUtils, fpspreadsheet, fpstypes, fpsutils, fpsimages, xlsxooxml, fpsopendocument; + +var + workbook: TsWorkbook; + worksheet: TsWorksheet; + myDir: String; + i, j: Integer; + embobj: TsEmbeddedObj; + img: PsImage; + +begin + WriteLn('Starting program "demo_read_images"...'); + + // Create a spreadsheet + workbook := TsWorkbook.Create; + try + // Read spreadsheet file + myDir := ExtractFilePath(ParamStr(0)); + {$IFDEF USE_XLSX} + workbook.ReadFromFile(myDir + 'img.xlsx', sfOOXML); + {$ENDIF} + {$IFDEF USE_OPENDOCUMENT} + workbook.ReadFromFile(myDir + 'img.ods', sfOpenDocument); + {$ENDIF} + + // Get worksheets + for i := 0 to workbook.GetWorksheetCount-1 do + begin + worksheet := workbook.GetWorksheetByIndex(i); + WriteLn('Worksheet "' + worksheet.Name + '" contains ' + IntToStr(worksheet.GetImageCount) + ' image(s).'); + // Read out images and save as separate files + for j := 0 to worksheet.GetImageCount-1 do + begin + img := worksheet.GetPointerToImage(j); + embObj := workbook.GetEmbeddedObj(img^.Index); + WriteLn(' Image Index=', img^.Index, + ', Cell=', GetCellString(img^.Row, img^.Col), + ', File=', ExtractFileName(embObj.FileName), + ', Width=', embobj.ImageWidth:0:1, 'mm', + ', Height=', embObj.ImageHeight:0:1,'mm', + ', ScaleX=', img^.ScaleX:0:2, + ', ScaleY=', img^.ScaleY:0:2 + ); + embobj.Stream.SaveToFile(ExtractFileName(embobj.FileName)); + end; + end; + WriteLn('Finished.'); + + finally + workbook.Free; + end; + + if ParamCount = 0 then + begin + {$IFDEF MSWINDOWS} + WriteLn; + WriteLn('Press [ENTER] to quit...'); + ReadLn; + {$ENDIF} + end; +end. +