एक्सेल स्प्रेडशीट को निश्चित-चौड़ाई की टेक्स्ट फ़ाइल में निर्यात करें?


24

एक्सेल में फिक्स्ड-चौड़ाई पाठ फ़ाइलों को आयात करने की कार्यक्षमता है जहां यह एक संवाद प्रस्तुत करता है जो आपको यह चुनने देता है कि फ़ील्ड्स की शुरुआत और अंत कहाँ हैं जो इसे कॉलम में रखता है।

क्या इसकी कार्यक्षमता भी है, जहां एक मौजूदा स्प्रेडशीट दी गई है, आप एक निश्चित-चौड़ाई वाली पाठ फ़ाइल में निर्यात कर सकते हैं ?

यदि हां, तो मैं इसे कैसे एक्सेस करूं? मैंने Save As का उपयोग करने और टेक्स्ट फ़ाइल को चुनने की कोशिश की है, लेकिन यह केवल Tab-delimited के रूप में सेव करने के लिए लगता है जो मेरी मदद नहीं करता है।

यह एक्सेल 2003 है अगर यह मायने रखता है।

जवाबों:


24

मुझे लगता है कि आप देशी एक्सेल कार्यक्षमता से निकटतम को बचा सकते हैं | प्रारूपित पाठ (स्पेस डिलीट) (* .prn) । यह स्वचालित रूप से चौड़ाई निर्धारित करेगा और आवश्यकतानुसार उस चौड़ाई को पैड करने के लिए रिक्त स्थान सम्मिलित करेगा।

इसके अलावा आपको एक मैक्रो या अन्य ऐड-इन करने की आवश्यकता है जो आपको और अधिक करने देगा।


3
बस कुछ स्पष्टता जोड़ने के लिए - यह आपके कॉलम के लिए निर्दिष्ट चौड़ाई के आधार पर "स्वचालित रूप से" चौड़ाई निर्धारित करेगा। आम तौर पर माप ईएमएस (जहां तक ​​मुझे याद है) से अनुमानित होते हैं, जब निश्चित चौड़ाई के prn को निर्यात करते हैं, तो वे शब्दशः लिया जाता है और prn फाइल के एक कॉलम में वर्णों की संख्या के लिए उपयोग किए जाने वाले पूर्णांक मान देने के लिए गोल होता है। कोशिकाओं में संरेखण पर निर्भर करते हुए, बाईं या दाईं ओर पैडिंग के लिए रिक्त स्थान जोड़े जाते हैं (इसलिए डिफ़ॉल्ट संख्या में wil को बाएं से दाएं, उन्हें बल देने के लिए दाईं ओर पाठ किया जाता है, लेकिन यदि आपने संरेखण बदल दिया है तो वे होंगे अलग)
एडम वी

यह वही करता है जिसकी मुझे तलाश थी। धन्यवाद!
रेशनलगीक

1
कृपया ध्यान दें: प्रारूपित पाठ (.prn) Excel support.microsoft.com/kb/249885
iokevins

Iokevins द्वारा इंगित मैक्रो का उपयोग करने के लिए, आपको उन दो स्थानों से "& सीमांकक" को निकालना होगा जहां सेलटेक्स्ट परिभाषित है। अन्यथा, यह प्रत्येक सेल के लिए एक अतिरिक्त स्थान जोड़ देगा, जो कि एक prn के रूप में बचत नहीं करता है।
दूरंदेश

14

यदि आपके पास Office Professional है, तो आप अपनी Excel फ़ाइल को Access में खोल सकते हैं, और उसके बाद Access से निर्यात कर सकते हैं। एक्सेस आपको अपनी निर्यात की गई फ़ाइल के लिए एक निश्चित-चौड़ाई का लेआउट निर्दिष्ट करने देगा, और आपको उन चौड़ाई को निर्दिष्ट करने के लिए अत्यंत दानेदार नियंत्रण प्रदान करेगा।


जबकि एक्सेस यह कर सकता है, इसलिए एक्सेल जो कि पूछा गया था।
एडम

7
डाउनवोट के लिए धन्यवाद, लेकिन मुझे लगा कि यह ध्यान देने योग्य है कि एक्सेस में इस सुविधा का पूर्ण संस्करण है। एक्सेल आपको सीधे कॉलम की चौड़ाई निर्दिष्ट नहीं करने देता, एक्सेस करता है। हां, आप वर्कशीट में कॉलम की चौड़ाई के साथ डेडलिंग करके एक्सेल में सही कॉलम चौड़ाई प्राप्त कर सकते हैं, लेकिन यह एक दर्द है और किसी ऐसे व्यक्ति के रूप में जिसे नियमित रूप से तय चौड़ाई की फाइलें बनानी होती हैं, वह समय के लायक नहीं होता। यदि आपके पास पहुंच है (जो बहुत से लोग करते हैं) तो बहुत बेहतर तरीका है।
दाविदक्ले २ d

अति उत्कृष्ट; इस विकल्प के लिए धन्यवाद: ओ)
iokevins

5

वाह, मैं खुद यह सवाल पूछने जा रहा था लेकिन यह पहले से ही पूछा गया था। सभी एक्सेल क्लिपबोर्ड आउटपुट tabडिफ़ॉल्ट रूप से सीमांकित है। यह "वास्तविक" सादे पाठ आउटपुट के लिए कष्टप्रद है जब आपके पास एक निश्चित चौड़ाई का फ़ॉन्ट होता है, लेकिन जरूरी नहीं कि टैब सीमांकक समर्थन।

फिर भी, मैंने एक छोटा एक्सेल मैक्रो पाया और संशोधित किया जो वर्तमान में चयनित क्षेत्र को एक साधारण निश्चित-चौड़ाई वाले कॉलम ASCII टेबल के रूप में कॉपी करेगा - जैसे:

187712 201 37 0.18   
2525 580 149 0.25   
136829 137 43 0.31   

यहाँ मैक्रो कोड है। यदि आप Excel 2007 या उसके बाद का उपयोग कर रहे हैं , तो इसका उपयोग करने के लिए, सुनिश्चित करें कि आप Excel विकल्प में डेवलपर टैब को सक्षम करें

Sub CopySelectionToClipboardAsText()

   ' requires a reference to "Windows Forms 2.0 Object Library"
   ' add it via Tools / References; if it does not appear in the list
   ' manually add it as the path C:\Windows\System32\FM20.dll

    Dim r As Long, c As Long
    Dim selectedrows As Integer, selectedcols As Integer

    Dim arr
    arr = ActiveSheet.UsedRange
    selectedrows = UBound(arr, 1)
    selectedcols = UBound(arr, 2)

    Dim temp As Integer
    Dim cellsize As Integer
    cellsize = 0
    For c = 1 To selectedcols
        temp = Len(CStr(Cells(1, c)))
        If temp > cellsize Then
            cellsize = temp
        End If
    Next c
    cellsize = cellsize + 1

    Dim line As String
    Dim output As String

    For r = 1 To selectedrows
        line = Space(selectedcols * cellsize)
        For c = 1 To selectedcols
            Mid(line, c * cellsize - cellsize + 1, cellsize) = Cells(r, c)
        Next c
        output = output + line + Chr(13) + Chr(10)
    Next r

    Dim MyData As MSForms.DataObject
    Set MyData = New DataObject
    MyData.SetText output
    MyData.PutInClipboard

    MsgBox "The current selection was formatted and copied to the clipboard"

End Sub

4

सबसे पहले, अपने डेटा को कूरियर न्यू (या कुछ अन्य निश्चित चौड़ाई के फ़ॉन्ट) के रूप में प्रारूपित करें। फिर .prn के रूप में सहेजें और आपको सही निश्चित चौड़ाई मिलेगी।


यह मेरे लिए बहुत अच्छा काम किया। मुझे ऐसा करने से पहले सब कुछ पाठ के रूप में प्रारूपित करना पसंद है। इस तरह से बचाए जाने पर सभी डेटा को संरेखित किया जाता है।
गैरी ब्रंटन

2

जेफ एटवुड के जवाब पर विस्तार करते हुए, क्योंकि यह मुझे वहां टिप्पणी नहीं करने देगा:

मैंने उस कॉलम में सबसे चौड़ी सेल में कॉलम की चौड़ाई सेट करने के लिए और प्रत्येक कॉलम की अपनी चौड़ाई निर्धारित करने के लिए उसके मैक्रो को संशोधित किया। उनकी मैक्रो ने केवल पहली पंक्ति में सबसे चौड़ी सेल पाई और फिर सभी कॉलमों की चौड़ाई निर्धारित की।

Sub CopySelectionToClipboardAsText()

   ' requires a reference to "Windows Forms 2.0 Object Library"
   ' add it via Tools / References; if it does not appear in the list
   ' manually add it as the path C:\Windows\System32\FM20.dll

    Dim r As Long, c As Long, linesize As Long
    Dim selectedrows As Integer, selectedcols As Integer

    Dim arr
    arr = ActiveSheet.UsedRange
    selectedrows = UBound(arr, 1)
    selectedcols = UBound(arr, 2)
    ReDim CellSizes(1 To selectedcols, 2) As Integer

    Dim temp As Integer
    Dim cellsize As Integer
    linesize = 0
    For c = 1 To selectedcols
        cellsize = 0
        For r = 1 To selectedrows
            temp = Len(CStr(Cells(r, c)))
            If temp > cellsize Then
                cellsize = temp
            End If
        Next
        CellSizes(c, 0) = cellsize + 1
        CellSizes(c, 1) = linesize
        linesize = linesize + cellsize + 1
    Next c

    Dim line As String
    Dim output As String

    For r = 1 To selectedrows
        line = Space(linesize)
        For c = 1 To selectedcols
            Mid(line, CellSizes(c, 1) + 1, CellSizes(c, 0)) = Cells(r, c)
        Next c
        output = output + line + Chr(13) + Chr(10)
    Next r

    Dim MyData As MSForms.DataObject
    Set MyData = New DataObject
    MyData.SetText output
    MyData.PutInClipboard

    MsgBox "The current selection was formatted and copied to the clipboard"

End Sub

0

यह मेरे लिए हत्यारा है। इसके पास कुछ विकल्प भी हैं।

http://www.sensefulsolutions.com/2010/10/format-text-as-table.html


हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं।
रामहुंड

2
@ रामदूत - सामान्य तौर पर, मैं सहमत हूं। बुटी एन इस मामले में, कुछ भी नहीं है जो मैं यहां कॉपी कर सकता हूं। वह वेबसाइट एक ऐसी जगह है जहाँ आप अपना इनपुट डेटा पेस्ट करते हैं और आपको "एक्सेल-स्वरूपित" आउटपुट मिलता है। यदि लिंक अमान्य हो जाता है, तो सेवा समाप्त हो गई है।
sancho.s को मोनिका जूल

सेवा चली गई है: senseful.github.io/web-tools/text-table , और स्रोत उपलब्ध है: github.com/senseful/web-tools
ngm

जो फिर से आगे बढ़ गया है: senseful.github.io/text-table
Chris

0

यह बॉक्स के एक्सेस आउट के साथ काम करता है: https://support.office.com/en-ie/article/export-data-to-a-text-file-f72dfc38-a8a0-4c5b-8c2cb-bf2950814140#bmsteps इसके साथ जिस तरह से मैंने इसे काफी आसान और तेज तरीके से प्रबंधित किया - एक्सेल से बेहतर। मेरे मामले में यह तालिका का रूपांतरण था।


ऐसा लगता है कि आपने गलत प्रश्न पर अपना उत्तर पोस्ट कर दिया है ;-) यह प्रश्न एक्सेल के बारे में पूछ रहा है, जबकि आपका उत्तर एक्सेस के बारे में बात कर रहा है। भविष्य के उत्तर के लिए: संदर्भ के लिए लिंक प्रदान करना उपयोगी है, लेकिन आपको पोस्ट में आवश्यक जानकारी भी शामिल करनी चाहिए ।
रॉबिनटेकस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.