2009-08-10 39 views
3

我已經構建了一個Web應用程序,它具有用於填充表的粘貼按鈕。數據最初是從Excel電子表格複製並粘貼到我的表單上。Excel複製到剪貼板截取數據

問題是我只看到顯示的數據,而沒有看到底層的值。例如,如果單元格的值是12.223,單元格的格式只顯示12.2,則12.2會進入剪貼板。

我在這裏錯過了一招嗎?有誰知道如何從剪貼板中提取完整的數據?

編輯:看來Excel在剪貼板上提供了25種不同的格式,包括「XML Spreadsheet」,它看起來像包含我需要的實際信息。但是,似乎只有Text版本在瀏覽器中可用。是否有ActiveX控件或類似的東西可以用來獲取這些數據?

+0

你可以發佈一些代碼,看看你是如何接近這? – JFV 2009-08-10 12:11:56

+0

導出爲CSV時Excel執行同樣的操作。它會垃圾所有沒有被顯示的東西。我猜你不想將Excel複製到一個單詞文檔中,並獲得大數小數。 – pjp 2009-08-10 12:13:47

+1

@FJV:可能是Ctrl + A,Ctrl + C,Alt-Tab,Ctrl + V :) – pjp 2009-08-10 12:14:24

回答

5

我可以看到做到這一點的唯一方法是敲掉一些使用Windows窗體對象庫的VBA代碼。

我已經找到了代碼示例,使得使用剪貼板

http://www.dailydoseofexcel.com/archives/2004/12/02/putting-text-into-the-windows-clipboard/

的默認情況下,這將剛纔複製的單元格的可見文本。得到它的輸出你需要的實際值改變

cell.Text 

cell.Value 

雖然這將可能陷入困境,如果你有他們的任何日期。

編輯:

事實上的日期似乎您複製單元格後複製OK

+0

謝謝。你知道VBA腳本可以掛鉤到Ctrl-C或右鍵單擊並複製的方式嗎?電子表格的用戶適用於各種不同的公司,他們目前的解決方案非常簡單。給他們一個新的複製圖標不會太好! – 2009-08-17 10:00:18

+0

如果您點擊工具,宏,宏,突出顯示宏並按選項,然後您可以將其分配給Ctrl + C組合。 – pjp 2009-08-17 10:27:08

0

,右鍵單擊並選擇粘貼特價,然後選擇下粘貼值選項。這將粘貼完整的值。

+2

問題在於Paste Special在其他應用程序中似乎不可用。 – pjp 2009-08-18 06:29:11

+0

我想你可以做到以下幾點:複製Excel數據,粘貼到一張新的工作表,然後將其複製到剪貼板。 – pjp 2009-08-18 06:30:39

+0

你是對的,僅限於Excel。 – 2009-08-18 15:22:32

0

只要你是快樂的使用額外的表來包含格式化的複製,你也可以做的數據可以

Sub CopyPasteSpecialCopy() 

    'Clear out temp destination 
    Sheets("CopyPasteSheet").Select 
    Cells.Select 
    Selection.ClearContents 

    'Copy data 
    Sheets("DataSheet").Select 
    Cells.Select 
    Application.CutCopyMode = False 
    Selection.Copy 

    'Paste data 
    Sheets("CopyPasteSheet").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Cells.Select 
    Application.CutCopyMode = False 

    'Put it onto the clipboard 
    Selection.Copy 

End Sub 

雖然我不能看到粘貼XML只值的選項。

再次將此宏附加到Ctrl + C組合鍵。

+0

我無法做任何事情的Excel方面。它必須是一個瀏覽器解決方案。 – 2009-08-18 08:32:49

+0

如果您無法對Excel/VBA進行任何更改,那麼您唯一的選擇是允許用戶上傳工作表並在您的應用程序中自行處理。您可以使用Apache POI解析Excel工作表。 – pjp 2009-08-18 09:31:07

0

鑑於您無法修改Excel電子表格,它看起來像被卡住了。問題是,Windows剪貼板不能識別瀏覽器能夠接受來自粘貼的純文本。正因爲如此,它將它作爲一個純文本表格進行粘貼,該表格基本上就是excel向您呈現的數據的可視化表示。

如果您爲頁面構建了一個ActiveX組件,那麼除了電子表格數據之外,我認爲Excel工作表應該可以工作。純粹的瀏覽器JavaScript實現不會做你需要的。