njminchin
njminchin

Reputation: 452

Using Win32clipboard.GetClipboardData to get copied excel table returns chinese characters after a number of rows?

I have a table in excel with this test data:

Col1    Col2    Col3    Col4    Col5    Col6    Col7    Col8    Col9    Col10   Col11   Col12   Col13   Col14
Row1    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row2    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row3    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row4    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row5    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row6    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row7    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row8    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row9    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row10   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row11   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row12   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row13   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row14   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row15   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row16   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row17   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row18   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row19   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row20   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row21   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row22   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row23   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row24   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row25   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row26   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row27   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row28   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row29   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row30   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row31   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row32   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row33   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row34   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row35   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row36   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row37   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row38   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row39   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row40   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row41   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row42   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row43   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row44   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row45   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row46   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row47   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row48   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row49   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row50   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row51   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row52   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row53   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row54   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row55   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row56   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row57   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row58   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row59   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row60   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row61   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row62   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row63   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row64   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row65   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row66   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row67   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row68   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row69   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row70   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row71   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row72   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row73   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row74   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row75   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row76   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row77   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14

If I copy this table from Excel into the clipboard (Ctrl+V) and then try to read this in Python 3.9 with the win32Clipboard library (code below), it copies the table but at the bottom it has a whole bunch of chinese characters?? Note: I have another, real table of data which has more rows and in this table the chinese starts in the middle of the table, at row ~68.

This is what I'm getting from the GetClipboardData function:

Col1    Col2    Col3    Col4    Col5    Col6    Col7    Col8    Col9    Col10   Col11   Col12   Col13   Col14
Row1    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row2    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row3    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row4    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row5    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row6    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row7    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row8    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row9    Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row10   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row11   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row12   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row13   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row14   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row15   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row16   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row17   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row18   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row19   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row20   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row21   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row22   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row23   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row24   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row25   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row26   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row27   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row28   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row29   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row30   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row31   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row32   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row33   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row34   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row35   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row36   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row37   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row38   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row39   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row40   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row41   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row42   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row43   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row44   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row45   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row46   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row47   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row48   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row49   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row50   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row51   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row52   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row53   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row54   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row55   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row56   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row57   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row58   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row59   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row60   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row61   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row62   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row63   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row64   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row65   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row66   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row67   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row68   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row69   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row70   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row71   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row72   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row73   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row74   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row75   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row76   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
Row77   Row1Col2    Row1Col3    Row1Col4    Row1Col5    Row1Col6    Row1Col7    Row1Col8    Row1Col9    Row1Col10   Row1Col11   Row1Col12   Row1Col13   Row1Col14
     㾀         㾀             䀀怀䓃 㾀獆A   䆘 䇐 䐿                                         샠㭣ȓ     㾀         㾀         㾀   䋈쀀䑃袋떃 㾀               㨀         㨀         㾀   㨀 㱈   㾀             䍺 䇠 㾀 䋈쀀䑃 䏇 䇠               㨀 㱈 㨀     㨀               샠㭣ȓ     㾀         㾀         㾀   䎯쀀䑃袋떃 㾀               㨀         㨀         㾀   㺼耀㸜   㾀             䌔 䇠 㾀 䋈쀀䑃 䏇 䇠               㺼耀㸜 㨀     㨀               샠㭣ȓ     㾀         㾀         㾀   䆀쀀䑃㞽떆 㾀               㨀         㨀         㾀   㸩 㱈   㾀             䊨 䇠 㾀⸒⸒⸒槡⸒槡              㸩 㱈 㨀     㨀               샠㭣ȓ     㾀         㾀         㾀   䏹쀀䑃㞽떆 㾀               㨀         㨀         㾀   㹔 㱈   㾀             䉠 䇠 㾀⸒⸒⸒槡⸒槡              㹔 㱈 㨀     㨀                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        㨀  ǵ驤5좐⽷ȓ ⻰㤰ȓ      㾀  䀀㻼䀀㻚   㾀        나    䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿              䀀㻼䀀㻚 㨀     㨀               4摀㯧ȓ     㾀         㾀         㾀  쀀䐂 䐸袋떃 㾀C-14    ㅢ❦翽     㨀         㨀         㾀  ꀀ㼝䀀㻚   㾀          } 䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿          (9  ꀀ㼝䀀㻚 㨀     㨀                摀㯧ȓ 0-4 㾀         㾀         㾀  䀀䑁 䐸袋떃 㾀 DE           㨀         㨀         㾀   㼽䀀㻚   㾀        끬    䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿               㼽䀀㻚 㨀     㨀               1摀㯧ȓ     㾀         㾀         㾀  쀀䑿 䐸袋떃 㾀B0B8    ㅢ❦翽     㨀         㨀         㾀  ꀀ㽜䀀㻚   㾀          } 䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿          (1  ꀀ㽜䀀㻚 㨀     㨀                摀㯧ȓ F-9 㾀         㾀         㾀   䒟 䐸袋떃 㾀 -P7           㨀         㨀         㾀   㨀 㼍   㾀        끠    䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿               㨀 㼍 㨀     㨀               }摀㯧ȓ     㾀         㾀         㾀  怀䒾 䐸袋떃 㾀91A6    ㅢ❦翽     㨀         㨀         㾀   㷽 㼍   㾀          1 䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿          0B   㷽 㼍 㨀     㨀                摀㯧ȓ C-1 㾀         㾀         㾀  ꀀ䓝 䐸袋떃 㾀 -7           㨀         㨀         㾀  耀㹼 㼍   㾀        끈    䍺 䍺 㾀 䆸 䆀怀䓪쀀䐿              耀㹼 㼍 㨀     㨀               }摀㯧ȓ     㾀         㾀         㾀  䀀䓭쀀䑃   㾀{153    ㅢ❦翽                         㾀         㾀          2 㾀 㾀 㾀香ル 䆰 䅰ꀀ䓪䀀䑀          0A                             摀㯧ȓ ict 㾀         㾀         㾀   䆰  챷눫 㾀 -C           㨀         㨀         㾀   㨀 㽭   㾀        냤    䍺 䆀 㾀 䆰  耀䓪 䆀               㨀 㽭 㨀     㨀              P1摀㯧ȓ     㾀         㾀         㾀   䎈  챷눫 㾀, {D    ㅢ❦翽     㨀         㨀         㾀   㱸 㽵   㾀          f 䍺 䆀 㾀 䆰  耀䓪 䆀          03   㱸 㽵 㨀     㨀               摀㯧ȓ 91A 㾀         㾀         㾀  耀䐂  챷눫 㾀 -4           㨀         㨀         㾀  耀㸍 㽵   㾀        뀸    䍺 䆀 㾀 䆰  耀䓪 䆀              耀㸍 㽵 㨀     㨀              P2摀㯧ȓ     㾀         㾀         㾀   䑁  챷눫 㾀⨐Ჹȓ     ㅢ❦翽     㨀         㨀         㾀  쀀㺅 㽵   㾀          䎭 䍺 䆀 㾀 䆰  耀䓪 䆀          h   쀀㺅 㽵 㨀     㨀               摀㯧ȓ 䆰   㾀         㾀         㾀  耀䑿  챷눫 㾀 ᲹȐ            㨀         㨀         㾀  쀀㻄 㽵   㾀        낐    䍺 䆀 㾀 䆰  耀䓪 䆀              쀀㻄 㽵 㨀     㨀              쀐䑈摀㯧ȓ     㾀         㾀         㾀   䒟  챷눫 㾀⨐Ჹȓ     ㅢ❦翽     㨀         㨀         㾀   㺕耀㸤   㾀          䏔 䍺 䆀 㾀 䆰  耀䓪 䆀          쀀䒬   㺕耀㸤 㨀     㨀               摀㯧ȓ 䄀   㾀         㾀         㾀  䀀䒾  챷눫 㾀怀㩳Ȑ            㨀         㨀         㾀   㻔耀㸤   㾀        넌    䍺 䆀 㾀 䆰  耀䓪 䆀               㻔耀㸤 㨀     㨀              耐䒻摀㯧ȓ     㾀         㾀         㾀  耀䓝  챷눫 㾀⨐Ჹȓ     ㅢ❦翽     㨀         㨀         㾀  耀㼉耀㸤   㾀            䍺 䆀 㾀 䆰  耀䓪 䆀              耀㼉耀㸤 㨀     㨀               摀㯧ȓ 1A6馚㽙        馚㽙         㾀   䆰䅠챷눫 㾀￐                                㾀         㾀        넔   撵䥾隗䀖 㾀獆A 䆰  耀䓪 䆀                                                     §꜀鬲5⩰䍽ȓ ࠐ㢨ȓ                  䈈 䑏ᳺ륒耀ㅠ❦翽             낷        䈔‐䓦躠❦翽             ă    7,8_BFV03᳢륪耀ㅠ❦翽             냿        䊆䌙躠❦翽             E    ploadTimeᳪ륢耀ㅠ❦翽             넋        䊠䋔躠❦翽             ;     ᲌륹瀀耀
T37Გ륺耀V01 4B0㋰㬶ȓ           䎏 䊨 䄀 䄀  ⚠Ჹȓ                      䌭 䊘 䌥Ლ륲耀⚠Ჹȓ    ㋰㬶ȓ           䌭 䊘 䍒 䉜  ⚠Ჹȓ                  䎔 䊘 䈬ᲂ릊耀ㅠ❦翽             뀷        䋘䌼躠❦翽             E       䎁 䊈耀䏋ᲊ릂耀ㅠ❦翽             끟        䊘䎋躠❦翽             E      耀䏪 䊈 䎭Ჲ릚耀ㅠ❦翽             끿        䌐䌩躠❦翽             /      䀀䐨 䊘 䌅Ჺ릒耀ㅠ❦翽             낫        䊠䌄躠❦翽             @      䀀䐨 䊘 䌆Ტ릪耀ㅠ❦翽           猀耀넃        0 躠❦翽             I      耀䐽 䊈耀䐢Ც릢耀ㅠ❦翽             낇        䌔䄀躠❦翽             E      쀀䑍 䊆 䌄ὒ릺耀⚠Ჹȓ                Ὗ릵琀耀
T3739_IO01 819㋰㬶ȓ          䀀䑯 䊒 䏔὚릲耀ㅠ❦翽             냻        䊎䅰躠❦翽             @      䀀䒭 䊘 䄀ὂ맊耀ㅠ❦翽             낏        䊶䅰躠❦翽             ă     LasterFiὊ맂豈耀ㅠ❦翽             낳        䊀耐䐆躠❦翽             I      䒈 䊆耀䏊ὲ맚切耀ㅠ❦翽             뀳        䊆耐䎽躠❦翽             @      䀀䒷 䊆耀䏟ὺ맒ﭽ耀ㅠ❦翽             끛          躠❦翽             @            ὢ맪ﰀ耀ㅠ❦翽             낋          躠❦翽             I    7   FV02Ὢ맢ﵮ耀ㅠ❦翽           Pr낿        kP 躠❦翽             U            ἒ맺︀耀ㅠ❦翽             끇          躠❦翽             U                       

When I copy the same table of data from excel into Notepad++ and then copy that from N++ and then read the clipboard in Python, it works fine with no chinese at the bottom. Any ideas?

Function I'm using to get the clipboard:

import win32clipboard # part of library: pywin32

def getClipboard():
    # get clipboard data
    win32clipboard.OpenClipboard()
    data = win32clipboard.GetClipboardData()
    win32clipboard.CloseClipboard()

Upvotes: 0

Views: 465

Answers (2)

mrkbutty
mrkbutty

Reputation: 599

Note this win32clipboard bug has been fixed in pywin32 build 303. Many thanks to Mark Hammond.

Upvotes: 1

Anon Coward
Anon Coward

Reputation: 10824

You're running into a side effect of how Excel places large amounts of data in the clipboard, along with a bug, at least to my understanding, of how Python reads the clipboard data on Windows.

The short version: If you add the following after your GetClipboardData call, it will work properly, every time:

    if "\x00" in data:
        data = data[:data.find("\x00")]

The long version:

The source code for the library function in question contains this code:

            cData = GlobalLock(handle);
            // ...
            size = GlobalSize(cData);
// ...
        case CF_UNICODETEXT:
            ret = PyUnicode_FromWideChar((wchar_t *)cData, (size / sizeof(wchar_t)) - 1);

In other words, it's using the size of the memory structure to determine how many bytes are in it.

However, the documentation for the clipboard formats states this:

CF_UNICODETEXT: Unicode text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data.

In other words, the format is documented as ending in a null character, regardless of the underlying data size. And due to a quirk of how Excel stores large amounts of data, it appears to fill a larger buffer than it needs in some situations, leading to the Python code reading past the end of Excel's string, with predictable garbage after the string.

Short of fixing the underlying library, looking for the null character is a safe activity, if it's present, you always want to trim it and any text afterwards. I suppose it's possible that the text after a null character could be invalid and cause parsing issues, but in practice, I've not seen that occur. It might be something to look out for, though.

Upvotes: 3

Related Questions