My question is, is there any other way to use my program apart from registering Interop dll on target machine?
अगर वहाँ किसी भी तरह से अपने कार्यक्रम है, जो एक्सेल इंटरॉप का उपयोग करता है का उपयोग करना है आप पूछ रहे हैं, जब एक्सेल अपने कार्यक्रम चला रहे कंप्यूटर पर स्थापित नहीं है। संक्षिप्त जवाब नहीं है। लंबा जवाब हाँ है, यदि आप इंटरऑप का उपयोग न करने के लिए अपने प्रोग्राम को दोबारा तैयार करने के इच्छुक हैं।
यदि आप Excel का संस्करण 2007 को लक्षित कर रहे हैं तो आप माइक्रोसॉफ्ट द्वारा प्रदान किए गए OOXml SDK का उपयोग कर सकते हैं। यदि आप थोड़ा पैसा खर्च करने के इच्छुक हैं तो आप Aspose जैसे किसी तृतीय पक्ष लाइब्रेरी का भी उपयोग कर सकते हैं।
एक्सेल फ़ाइल में स्प्रेडशीट डालने के लिए ओओएक्सएमएल एसडीके का उपयोग करने का एक उदाहरण msdn पर पाया जा सकता है।
// Given a document name, inserts a new worksheet.
public static void InsertWorksheet(string docName)
{
// Open the document for editing.
using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Open(docName, true))
{
// Add a blank WorksheetPart.
WorksheetPart newWorksheetPart = spreadSheet.WorkbookPart.AddNewPart<WorksheetPart>();
newWorksheetPart.Worksheet = new Worksheet(new SheetData());
Sheets sheets = spreadSheet.WorkbookPart.Workbook.GetFirstChild<Sheets>();
string relationshipId = spreadSheet.WorkbookPart.GetIdOfPart(newWorksheetPart);
// Get a unique ID for the new worksheet.
uint sheetId = 1;
if (sheets.Elements<Sheet>().Count() > 0)
{
sheetId = sheets.Elements<Sheet>().Select(s => s.SheetId.Value).Max() + 1;
}
// Give the new worksheet a name.
string sheetName = "Sheet" + sheetId;
// Append the new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = relationshipId, SheetId = sheetId, Name = sheetName };
sheets.Append(sheet);
}
}
स्रोत
2012-09-11 19:03:39
धन्यवाद। मैं ओपनएक्सएमएल की ओर बढ़ने के कारणों को समझता हूं, लेकिन दुख की बात है कि मुझे अन्य कारणों से इंटरऑप पर वापस रहना होगा। इस मुद्दे को हल करने के लिए, मैं अपने कार्यक्रम के लिए एक्सेल (पूर्व शर्त के रूप में) स्थापित कर रहा हूं। – Mahender