none
Datagridview 中 使用Clipboard 如何連顏色一起複製 RRS feed

  • 問題


  • 我想將Datagridview內容轉到EXCEL上
    試了一些方法後現用Clipboard(Ctrl+c)寫法簡單速度也不錯
    但是無法將Datagridview上上好的顏色轉過去
    請問要怎樣將顏色上到EXCEL上
    Clipboard.SetDataObject(DGView.GetClipboardContent());//DGView 複製到 Clipboard
       
       Excel.Application MyExcel = new Excel.Application();//開啟EXCEL
       MyExcel.Application.Workbooks.Add(true);
       MyExcel.Worksheets[1].Name = rptname; 
       Excel.Range range = MyExcel.Cells[1, 1];
    
       range.PasteSpecial(Excel.XlPasteType.xlPasteAll);//貼上Clipboard
      MyExcel.Visible = true;


    2019年3月25日 上午 09:32

解答

  • Office 剪貼簿使用延後提出:

    [VBNET] 關於剪貼簿延後提出的處理

    所以要輸出成帶顏色的格式給剪貼簿,例如 HTML Format 或是 RichText Format


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 Tsongs 2019年4月15日 上午 07:44
    2019年4月1日 下午 03:20

所有回覆


  • 我想將Datagridview內容轉到EXCEL上
    試了一些方法後現用Clipboard(Ctrl+c)寫法簡單速度也不錯
    但是無法將Datagridview上上好的顏色轉過去
    請問要怎樣將顏色上到EXCEL上
    Clipboard.SetDataObject(DGView.GetClipboardContent());//DGView 複製到 Clipboard
       
       Excel.Application MyExcel = new Excel.Application();//開啟EXCEL
       MyExcel.Application.Workbooks.Add(true);
       MyExcel.Worksheets[1].Name = rptname; 
       Excel.Range range = MyExcel.Cells[1, 1];
    
       range.PasteSpecial(Excel.XlPasteType.xlPasteAll);//貼上Clipboard
      MyExcel.Visible = true;


    那個轉不過去的....

    因為我們電腦都分兩台,一台斷外網一台沒斷外網,每次要傳送資料非常不方便....

    我後來自己寫過一個外掛,可以把A電腦剪貼簿內容,送到B電腦去。(同事們用得很開心,都說我在變魔術 XDDD)

    所以剪貼簿我研究很久,還用Debug模式去看它裡面物件各種型態資料變化。

    本來以為剪貼簿多厲害怎麼能「完美複製」所以你想的到的任何格式????

    後來我發現其實沒這麼厲害,剪貼簿的大多原理是複製「路徑」而已!

    就像你複製一張照片、一個檔案..等(其實只複製路徑),真正執行動作在「貼上」

    我曾經也想完美把Excel內容複製到B電腦,發現不行!

    原因在於剪貼簿只記錄路徑跟位置.....(這個我自己測試才發現的)

    你開2個Excel 不要關掉

    A.excel

    A1 欄位內容 =  123

    A2 欄位內容 =  456(改成紅色)

    Ctrl +C 複製(A1+A2)

    這時候你新建一個B.excel

    Ctrl + V 貼到 B.excel 

    可以完美複製過去

    ===================

    這時候你把A.excel關掉,馬上在B.excel執行  Ctrl + V 貼上,你就會發現! 怎麼A2只剩下 456 紅色不見了

    ===============

    這證明什麼,證明了它一開始「只記錄位置」跟「字串」



    • 已編輯 天氣 2019年3月27日 上午 07:29
    2019年3月27日 上午 07:20
  • 感謝

    試了好久

    還是試不出ctrl+c/ctrl+v將顏色轉過去的寫法

    只好先改用其他寫法


    2019年4月1日 上午 02:32
  • Office 剪貼簿使用延後提出:

    [VBNET] 關於剪貼簿延後提出的處理

    所以要輸出成帶顏色的格式給剪貼簿,例如 HTML Format 或是 RichText Format


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    • 已標示為解答 Tsongs 2019年4月15日 上午 07:44
    2019年4月1日 下午 03:20
  • 我最後是改用Html

    基本上解決

    感謝

    2019年4月15日 上午 07:46