2

I have a .NET Windows Forms applications and I need to copy a list of 8-digit numeric codes into the clipboard to be pasted to Excel sheet.

string tabbedText = string.Join("\n", codesArray);    
Clipboard.SetText(tabbedText);

The problem is that when a code begins with one or more zeros (ex. "00001234") it's pasted as number with the zeros trimmed.

Is there a way how to set clipboard text so that Excel accepts it as text?

4

2 に答える 2

3

私はこの問題をExcelの内部で扱います(プログラムでアプリケーションでは扱いません)。テキストとして扱われるようにセルをフォーマットしてから、クリップボードから貼り付けます。このようにして、先行ゼロは常に貼り付けられます。

于 2012-06-07T09:17:14.357 に答える
1

編集:これはExcelでは機能しません。アポストロフィが貼り付けられ、表示されます。このアプローチはExcelには役立たないという明確な声明として、ここに答えを残しておきます。ただし、OpenOfficeCalcでは機能します。

文字列を文字列として扱うようにExcelに「指示」する標準的な方法は、接頭辞の前にアポストロフィを付けることです。次のようなことを試しましたか?

string tabbedText = "'" + string.Join("\n'", codesArray);

(そこに余分なアポストロフィがあることに注意してください...少し見づらいです)。

もちろん、後でExcelの計算でこの値を使用することを計画している場合は、問題が発生する可能性がありますが、それを処理する方法もあります。

于 2012-06-07T09:15:22.463 に答える