Thank you. I see the issue.
Well, to be precise it is not an issue, it is a misunderstanding of what CopyCol is supposed to do. The "columns" of FPSpreadsheet do not store any data - data are stored only in cells; the fpspreadsheet column records (TCol) store format information only, such as column width or the instruction to format all cells in this column in a particular font. Since CopyCol copies only the TCol record, no cell content is transferred.
If you also want to copy cell content then you must iterate through all cells in the column and copy them individually. Like this:
procedure TForm1.Button1Click(Sender: TObject);
var
r1, r2, r: Cardinal;
begin
sWorkbookSource1.Worksheet.CopyCol(0,1);
r1 := sWorkbookSource1.Worksheet.GetFirstRowIndex;
r2 := sWorkbookSource1.Worksheet.GetLastRowIndex;
for r := r1 to r2 do
sWorkbookSource1.Worksheet.CopyCell(r, 0, r, 1);
end;