2010-06-01 17 views
9

का उपयोग कर फ़ाइल सहेजें मेरे पास कुछ स्क्रीन स्क्रैप किए गए टैब्यूलर डेटा हैं जिन्हें मैं एक CSV फ़ाइल में निर्यात करना चाहता हूं (वर्तमान में मैं इसे क्लिपबोर्ड में रख रहा हूं), क्या Greasemonkey में ऐसा करने के लिए वैसे भी है? इस तरह की कार्यक्षमता पर नमूना या कुछ दस्तावेज कहां देखना है, इस पर कोई सुझाव?Greasemonkey

बस स्पष्ट होना, मैं स्थानीय फाइल सिस्टम (मुझे पता है कि खिलौने के डिब्बे में असंभव है) करने के लिए लिखते हैं, लेकिन एक डाउनलोड करने योग्य फ़ाइल पेश करने के लिए नहीं करना चाहते हैं - जो भी असंभव हो सकता है ...

उत्तर

1

शायद आप इसे स्थानीय सीएसवी में नहीं लिख सकते हैं, लेकिन आप इसे Google Spreadsheet कहने के लिए लिख सकते हैं? प्रत्येक सीवीएस के लिए लाइन आप एक स्थानीय http सर्वर एप्लेट कि (सरल cgi या अपाचे/php आसान कर सकता है) भंडारण

+0

दिलचस्प विचार। मैं निश्चित रूप से इस पर ध्यान रखूंगा, लेकिन इसके लिए मुझे और अधिक काम करने की आवश्यकता हो सकती है, इसके लिए मैं इसे करने के लिए तैयार हूं और शायद फाइल सिस्टम तक पहुंच प्राप्त करने के लिए वास्तविक फ़ायरफ़ॉक्स ऐड-ऑन बनाना तेज़ होगा। –

1

वैकल्पिक दृष्टिकोण हो सकता है यह नहीं पता कि यह कैसे काम करता है, लेकिन मुफ्त उपयोगिता JSZip एक ज़िप फ़ाइल जेनरेट करने में सक्षम है जो आपके लिए डाउनलोड करने के लिए पॉप अप करता है। उपयोगकर्ता स्क्रिप्ट Fitocracy Bulk CSV ने JSZip को जेनरेट किए गए कसरत डेटा की 100 फ़ाइलों को एकत्रित करने के लिए उपयोग किया।

0

मैं करने में सक्षम है करने के लिए है अगर आप एक जावास्क्रिप्ट नियंत्रित http अनुरोध आग

3

हाँ आप इसे बीएलओबी का उपयोग करके कर सकते हैं।

स्क्रिप्ट एक लिंक को सामग्री संलग्न करेगी जो क्लिक होने पर फ़ाइल डाउनलोड करने की पेशकश करेगी (एक फ़ाइल जो कभी अस्तित्व में नहीं थी)। पर

और जानकारी:


इस तरह मैंने किया है (वहाँ यह करने के लिए कई अन्य तरीके हैं):

  1. जीएम (greasemonkey) एस cript फ़ाइल
  2. जीएम का उपयोग कर sessionStorage.variable = वेब पेज को पास कर की सामग्री उत्पन्न करता है "... सामग्री .."
  3. पृष्ठ के भीतर स्क्रिप्ट लिंक दिखाई देता है और ब्लॉब ऑब्जेक्ट को चर की सामग्री को देते हैं ।

आपको ऑब्जेक्ट को स्ट्रिंग/पार्स करने की आवश्यकता है।

  • संपर्कों = JSON.parse (sessionStorage.contacts)
  • sessionStorage.contacts = JSON.stringify (संपर्क);

मैं थोड़ा यह कई माइम प्रकार के लिए सामान्य बनाने के लिए मूल स्क्रिप्ट को संशोधित करके।

मेरा यहां है।

// Stuff to create the BLOB object --- ANY TYPE --- 
var textFile = null, 
//-- Function 
makeTextFile = function (text,textType) { 
    // textType can be 'text/html' 'text/vcard' 'text/txt' ... 
    var data = new Blob([text], {type: textType }); 
    // If we are replacing a previously generated file we need to 
    // manually revoke the object URL to avoid memory leaks. 
    if (textFile !== null) { 
     window.URL.revokeObjectURL(textFile); 
    } 
    textFile = window.URL.createObjectURL(data); 
    return textFile; 
    }; 

उम्मीद है कि यह मदद करता है।

3
var data='col1,col2\nval1,val2'; 
var a = document.createElement('a'); 
a.href = 'data:application/csv;charset=utf-8,' + encodeURIComponent(data); 
//supported by chrome 14+ and firefox 20+ 
a.download = 'data.csv'; 
//needed for firefox 
document.getElementsByTagName('body')[0].appendChild(a); 
//supported by chrome 20+ and firefox 5+ 
a.click(); 

DEMO

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