簡體   English   中英

使用 C# 從打開的 Excel 工作表中獲取當前單元格值

[英]Get current cell value from open Excel sheet using C#

我有一個打開的 Excel 實例,它已經通過 COM 進程連接到,我已經更改了其中一個單元格的值。 在 C# 中我無法連接到工作表,但在 python 中我可以

工作 Python 代碼:

import xlwings as xw
wb = xw.Book('c:/users/me/Desktop/mysheet.xlsx')
sheet = wb.sheets['Sheet1']
print(sheet.range('B1').value) # returns the current value

非工作 C# 代碼:

var xlApp = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
Workbook wb = xlApp.ActiveWorkbook; // returns null
Worksheet excelSheet = wb.ActiveSheet;
string test = excelSheet.Cells[1, 2].Value.ToString(); 

有沒有辦法讓 C# 連接到這個工作表,因為它已經通過另一個軟件產品的 COM 自動化打開了?

大多數關於 GetActiveObject 的在線討論是與 Excel 的特定實例對話,如果有多個實例正在運行,我有相反的問題,一個 Excel 實例和多個嘗試連接到它的應用程序。

Workbook wb = System.Runtime.InteropServices.Marshal.BindToMoniker(@"c:\users\me\Desktop\mysheet.xlsx") as Workbook;

即使它已經在 Excel 中打開,也應該獲取工作簿。

https://blogs.msdn.microsoft.com/eric_carter/2009/03/12/attaching-to-an-already-running-office-application-from-your-application-using-getactiveobject-or-bindtomoniker/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM