2012-11-12 12 views
5

से केवल पढ़ने के लिए मोड में सहेजें, मैं वर्कबुक.SaveAs विधि का उपयोग कर सी # में बनाई गई वर्कशीट को सहेज रहा हूं। XlSaveAsAccessMode तर्क मुझे समस्याएं दे रहा है।साझा किए गए एक्सेल वर्कशीट को एक्स्टेल वर्कशीट को सी #

xlShared संरक्षित मोड में वर्कशीट सहेजता है ताकि उपयोगकर्ता चार्ट के साथ खेल न सकें और सावधानीपूर्वक जांच कर सकें। यह मूल रूप से एक मृत चार्ट के रूप में दिखाता है जिसे डेटा के संदर्भ में नहीं देखा जा सकता है।

xlExclusive उपयोगकर्ता को असुरक्षित पहुंच को सहेजने की अनुमति देता है लेकिन दूसरों को नहीं। अन्य उपयोगकर्ता अभी भी एक मृत चार्ट देखते हैं।

मुझे वर्कशीट को ऐसे मोड में सहेजने की ज़रूरत है जो सभी को इसे देखने और जांचने और चार्ट के साथ खेलने में सक्षम हो, श्रृंखला बिंदुओं के साथ श्रृंखला को जोड़ने में सक्षम हो, लेकिन साथ ही, वे सक्षम नहीं होना चाहिए फ़ाइल को ओवरराइट करने के लिए अपने परिवर्तनों को सहेजने के लिए। सी # कॉम एक्सेल एपीआई का उपयोग करके मैं इसे कैसे प्राप्त करूं?

संदर्भ -

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas(v=vs.80).aspx

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlsaveasaccessmode.aspx

उत्तर

5

पहले संशोधनों के खिलाफ एक पासवर्ड का उपयोग अपनी फ़ाइल को सहेजने - आप इस सहेजें में संवाद के रूप में उपकरण के अंतर्गत लटकती पर कर सकते हैं (संवाद के नीचे) जब आप अपनी फ़ाइल को सहेजते हैं। फ़ाइल पर केवल-पढ़ने के लिए मजबूर करने के लिए को केवल पढ़ने के लिए अनुशंसित चेकबॉक्स की जांच करें।

जब उपयोगकर्ता फ़ाइल खोलते हैं, तो Excel लिखने के पासवर्ड मांगेगा, लेकिन जिन उपयोगकर्ताओं के पास वह पासवर्ड नहीं है उन्हें केवल पढ़ने के लिए मोड पर जाने के लिए मजबूर किया जाएगा। केवल पढ़ने के लिए एमडीओ में, उपयोगकर्ता फ़ाइल में कोई भी बदलाव कर सकते हैं लेकिन वे मूल फ़ाइल पर सहेज नहीं सकते हैं (फाइल सिस्टम में केवल-पढ़ने योग्य विशेषता के बावजूद) - वे केवल फाइल की एक नई प्रति को सहेज सकते हैं नया नाम (या एक ही फ़ोल्डर में एक ही नाम)।

प्रोग्राम के रूप में इन गुणों के साथ अपनी कार्यपुस्तिका बचाने के लिए आप की तरह कुछ कर सकते हैं:

oWorkbook.SaveAs (oWorkbook.Path + @"\Workbook.xls", 
    Excel.XlFileFormat.xlWorkbookDefault, 
    missing, 
    "WritePassword", // password against modification 
    true,    // read-only recommended 
    false, 
    Excel.XlSaveAsAccessMode.xlNoChange, 
    missing, 
    missing, 
    missing, 
    missing, 
    missing); 

तुम भी WorkBookBeforeSave घटना को संभालने और ट्रैकिंग जानकारी अपने मूल कार्यपुस्तिका की प्रतियां की पहचान करने के साथ कार्यपुस्तिका अद्यतन कर सकते हैं। इससे मूल फ़ाइल नाम के तहत सहेजी गई प्रतियों को एक अलग फ़ोल्डर में मदद मिलेगी। (मैं इस विशेष घटना से परिचित नहीं हूं लेकिन आप इसे संभालने के दौरान सेव ऑपरेशन को रद्द करने में भी सक्षम हो सकते हैं।)

जब तक आप फ़ाइल को पूरी तरह से नियंत्रित नहीं करते हैं (जो केवल एक्सेल का उपयोग करके असंभव है) उपयोगकर्ता सक्षम होंगे अपनी फ़ाइल की प्रतियां बनाएं लेकिन उपर्युक्त सेटिंग्स कम से कम उन्हें नई प्रतियों को सहेजने के लिए बाध्य करती हैं जबकि मूल बरकरार है। क्या यह आपकी समस्या का समाधान करता है?

+0

जानकारी के लिए धन्यवाद। क्या आप वर्कबुक का एक उदाहरण दे सकते हैं। सेवएएस कॉल करते हैं कि आप इन उद्देश्यों को प्राप्त करने के लिए करेंगे - जो कि सभी को केवल पढ़ने के लिए लेकिन फ़ाइल में असुरक्षित पहुंच की अनुमति है? मुझे इस प्रोग्रामिक-सहयोगी को करने की ज़रूरत है क्योंकि यह दैनिक रिपोर्टिंग प्रक्रिया का हिस्सा है। मैं XlSaveAsAccessMode के लिए असुरक्षित पहुंच को सक्षम करने के लिए सेट करने के लिए क्या मूल्य नहीं मानता। ऐसा लगता है कि XlSaveAsAccessMode के सभी मान मेरे अलावा अन्य उपयोगकर्ताओं के लिए वर्कशीट लॉक करते हैं। – user236215

+0

@ user236215 मैंने एक उदाहरण के साथ अपना जवाब अपडेट किया - यह आपकी कार्यपुस्तिका को सही सेटिंग्स से सहेजना चाहिए। इसे कार्यान्वित करने से पहले, इसे सामान्य कार्यपुस्तिका पर आज़माएं जिसे आप Excel में (प्रोग्रामेटिक रूप से नहीं) देखते हैं ताकि यह देखने के लिए कि यह उपयोगकर्ताओं के लिए कैसे काम करेगा। मुझे लगता है कि यह वही करता है जो आपको चाहिए। – xxbbcc

+0

धन्यवाद। तुम्हारी मदद के लिए शुक्रिया। मैं कल सुबह यह कोशिश करने जा रहा हूं और आपको सूचित करूंगा कि यह कैसे चला गया। मेरे पास एक और संबंधित सवाल है। मैं अपनी फाइलें टेम्पलेट-फाइल से बना रहा हूं।वर्तमान में टेम्पलेट में लेखन पहुंच है। मैं टेम्पलेट का उपयोग कर एक नई फाइल खोलता हूं। परिवर्तन करें और मेरी रिपोर्ट के रूप में सहेजें। अब, अगर मैं केवल टेम्पलेट को पढ़ता हूं, तो क्या यह मेरे प्रवाह को किसी भी तरह से प्रभावित करता है? मैं कल भी इसका परीक्षण करने जा रहा हूं। असल में, मैं टेम्पलेट को केवल पढ़ने, संरक्षित और लॉक करना चाहता हूं, इसलिए कोई भी इसे संशोधित नहीं कर सकता है। – user236215

संबंधित मुद्दे