Excel birlikte çalışabilirlik: _Worksheet veya Çalışma?
Şu anda dinamik yazarak hakkında yazıyorum, Excel ve birlikte çalışabilirlik bir örnek veriyorum. Hiç daha önce herhangi bir Office birlikte çalışma yaptım, ve gösterir. C MSDN Office Interop tutorial# 4 _Worksheet
arabirimi kullanır, ama aynı zamanda Worksheet
bir arayüzü var. Fark nedir hiçbir fikrim yok.
Saçma sapan, benim basit bir demo uygulaması (aşağıda gösterilen) de gayet iyi çalışıyor - ama en iyi veya emirlerine bir uygulama daha uygun bir şekilde kullanmak istiyorum.
using System;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
class DynamicExcel
{
static void Main()
{
var app = new Excel.Application { Visible = true };
app.Workbooks.Add();
// Can use Excel._Worksheet instead here. Which is better?
Excel.Worksheet workSheet = app.ActiveSheet;
Excel.Range start = workSheet.Cells[1, 1];
Excel.Range end = workSheet.Cells[1, 20];
workSheet.get_Range(start, end).Value2 = Enumerable.Range(1, 20)
.ToArray();
}
}
COM veya Office birlikte çalışabilirlik içine derin dalış tam yaparak, sadece C yeni özellikler# 4 - ama gerçekten bir şey yapmak istemiyorum, gerçekten aptal vurgulayarak önlemek için çalışıyorum.
(Bu durumda lütfen bana bildirin bir şey gerçekten de yukarıdaki kodu gerçekten aptal olabilir. Kullanarak ayrı başlangıç ve bitiş hücreleri yerine sadece "A1:T1" daha kolay gerçekten 20 hücre aralığı olduğunu görmek temkinli. Başka bir şey muhtemelen yanlışlıkla.)
, _Worksheet
Worksheet
ve neden kullanmalıyım?
CEVAP
Doğru hatırlıyorum ve bu konuda hafızam biraz bulanık ise, Excel PIA aralarında aldığımdan beri böyle uzun bir zaman oldu.
Bir olay, bir nesne, bir şey olduğunda çağıran aslında bir yöntemdir. .NET, temsilciler olayları, sade ve basit. Ama COM, çok sık veri ve olay geri çağrıları bir sürü düzenlemek için. Bu nedenle iki arayüzleri üzerinde belirli bir nesne ... "gelen" arayüzü, yöntemleri beklediğiniz diğer insanlar için arama, ve "giden" arayüzü, yöntemleri beklediğiniz için çağrı diğer insanlar ne olaylar oldu.
Bu yönetilmeyen * * * * - bu tür kitaplığı için bir creatable nesneyi tanımlar için üç şey: gelen arayüzü, giden arayüzü ve coclass, diyor ki "ben bir creatable nesne uygulayan bu arayüz gelen ve giden arabirimi".
Şimdi tür kitaplığı otomatik olarak meta haline çevrildiğinde, bu ilişkiler, ne yazık ki, korunur. Yönetilen dünyada beklediğiniz için sınıflar ve arayüzler daha uygun yapan el tarafından oluşturulan bir PİA daha güzel olurdu, ama ne yazık ki, bu olmadı. Bu nedenle Office PIA her creatable iki nesne arayüzleri ile ilgili, onlara da aynı şeyler var gibi görünüyor görünüşte garip bu taklitten, dolu. Arabirimleri bir coclass arabirimi temsil eder, ve bunlardan biri o coclass gelen arayüzü temsil eder.
Çalışma sayfaları arasında Transfer bilgileri arayüzü kitabını coclass gelen arayüz. Kitabı arabirimi coclass kendisini temsil eder ve bu nedenle çalışma sayfaları arasında Transfer bilgileri devralan arayüz.
Uzun lafın kısası, eğer rahat; çalışma sayfaları arasında Transfer bilgileri uygulama ayrıntı biraz bunu yapabilirseniz Kitabını kullanırdım.
Nasıl düzgün Excel, birlikte çalışabil...
Ne referans Microsoft kullanmam gereki...
Git birlikte çalışabilirlik Mercurial ...
Yerine (veya birlikte) iOS geliştirme ...
Herhangi bir uyarı veya contravariance...