এক্সএলএস ফাইলগুলি দেখার জন্য কমান্ডলাইন সরঞ্জাম


27

এক্সেল (.xls) ফাইলগুলি দেখার / খোলার জন্য একটি কমান্ডলাইন সরঞ্জাম আছে?

সুতরাং উত্তরপত্রটি দুর্দান্ত কাজ করে যদি না কার্যপত্রকের কোনও কাস্টম নাম না থাকে।

আমি যখন ফাইলটি খোলার চেষ্টা করি তখন আমি পাই:

Traceback (most recent call last):
  File "/usr/bin/py_xls2csv", line 17, in <module>
    for sheet_name, values in parse_xls(arg, 'cp1251'): # parse_xls(arg) -- default encoding
  File "/usr/lib/python2.5/site-packages/pyExcelerator/ImportXLS.py", line 334, in parse_xls
    raise Exception, 'No workbook stream in file.'
Exception: No workbook stream in file.

তবে, আমি যদি ফাইলটি খুলি এবং শীটটির নাম পরিবর্তন করে 'টেস্ট' বা এটির কিছু ভাল হয়ে যায়। ডিফল্ট নামগুলি হ্যান্ডেল করতে পারে তাই আমাকে কীভাবে টুইট করতে হবে? (পত্রক 1 ইত্যাদি)

আমি বর্তমানে যে ফাইলটি খোলার চেষ্টা করছি তাতে শীট 1 নামে কেবল 1 টি শীট রয়েছে।

উত্তর:


22

হ্যাঁ যদিও এটি কিছুটা হ্যাকি। দুটি প্যাকেজ ইনস্টল করে শুরু করা যাক:

sudo apt-get install python-excelerator w3m

সেখান থেকে, আমরা একটি স্ক্রিপ্ট ব্যবহার করি python-exceleratorযা নথিটি এইচটিএমএল ফাইলে রূপান্তর করতে বান্ডিলযুক্ত আসে । তারপরে আমরা কমান্ড লাইন ব্রাউজারে এটি পাইপ করি w3mএবং এটি প্রদর্শন করি।

py_xls2html spreadsheet.xls 2>/dev/null | sed 's/"//g' | w3m -dump -T 'text/html'

আপনি টাইপ করতে না চাইলে আপনি এটির সাথে একটি বাশ ফাংশন বা ওরফে তৈরি করতে পারেন। এটি আপনাকে এভাবে আউটপুট দেয়:

Sheet = Sheet1
┏━━━━┯━━━┯━━━━━┯━━━━━━━━━━━━┓
┃this│is │a    │spreadsheet ┃
┠────┼───┼─────┼────────────┨
┃it  │is │very │nice        ┃
┠────┼───┼─────┼────────────┨
┃this│has│three│rows        ┃
┗━━━━┷━━━┷━━━━━┷━━━━━━━━━━━━┛
Sheet = Sheet2 Sheet = Sheet3

খুব ভাল। স্পষ্টতই এটি কোনও ধরণের ম্যাক্রো, সম্পাদনা বা কোনও ইন্টারঅ্যাক্টিভিটি সমর্থন করে না। এটি নিখুঁতভাবে দর্শক। আপনি জিনিসটি মোড়ানো এমন উদ্ধৃতি চিহ্নগুলি ছড়িয়ে দেওয়ার কাজও করতে পারেন। আমি এই মুহুর্তে তাদের দ্বারা বিশেষত বিরক্ত নই।

আপনার যদি টেবুলার হিসাবে এটির প্রয়োজন না হয় তবে আপনার কাছে এই জাতীয় কিছু থাকতে পারে:

py_xls2csv spreadsheet.xls 2>&1 | less

আপনি তার থেকে আরও কিছুটা যেতে পারেন এবং এটিকে কিছুটা সুন্দরভাবে প্রদর্শন করতে পারেন:

py_xls2csv spreadsheet.xls 2>&1 | grep '^"' | sed 's/"//g' | column -s, -t | less -#2 -N -S

এটি আপনাকে নিম্নলিখিত দেয়:

  1 this   is    a       spreadsheet
  2 it     is    very    nice
  3 this   has   three   rows

এটিকে সরল পাঠ্য ফাইলে ফেলে দেওয়ার জন্য: links -dump /tmp/tempspreadsheet.html ..... এছাড়াও: যেমনটি রয়েছে, তেমনিভাবে এটি ইউনিকোড অক্ষরগুলি \u0950বিন্যাসে ছাপায় ... ইউনিকোড অক্ষর তৈরি করার জন্য আউটপুট প্রক্রিয়া করার কিছু উপায় আছে ... যদি কেউ জানেন তবে " সহজ "উপায়, আমি এটি দেখতে চাই ...
পিটার.ও

@ ফ্রেড আমি w3mএখনই এটি স্যুইচ করেছি (কারণ এটি কেবল সুন্দর দেখায়) এবং এতে কয়েকটি চরসেট বিকল্প রয়েছে (দেখুন w3m --help)। এটিকে কোনও ফাইলের কাছে পাইপ দেওয়ার প্রয়োজনীয়তা সহ আমি দৈর্ঘ্যও হ্রাস করেছি।
অলি

অসাধারণ! এটি বেশিরভাগ ক্ষেত্রেই কাজ করে: প্রশ্নের অংশ 2 এর জন্য প্রধান পোস্টে সম্পাদনা দেখুন (কোনও মন্তব্যের চেয়ে সেখানে স্ট্যাটাস ফর্ম্যাট করা সহজ)
ডেভিড ওনিল

py_xls2csvএর সাথে কাজ করা হার্ড কোডেড হয় codepage cp1251 .. আমি পেয়েছি 3 দৃষ্টান্ত বদলে cp1251দিয়ে utf-8সমাধান করা 'ইউনিকোড অক্ষর প্রদর্শিত সমস্যা "... আমি কি spreadsheed হয় উপর নির্ভর করে অনুমান করা। কিন্তু ব্যবহার UTF-8 আমার জন্য কাজ করেছে ... (আমি আমার উত্তর পোস্ট করার পরে আমি এটি বুঝতে পারি নি, তবে এটি অন্য রূপান্তরগুলির জন্য কার্যকর হতে পারে)
পিটার.ও

একটি বিলেটযুক্ত মন্তব্য ... আমি কেবল এটি ব্যবহার করে সিএসভি পাঠ্য ফাইলটি ট্যাবুলেট করার চেষ্টা করেছি (প্রথমে এক্সএলএস রূপান্তর করা) .. এবং উত্পন্ন উত্পন্ন htmlএকাধিক স্পেস বজায় রাখার পরেও, রেন্ডার আউটপুট তাদের একক স্থান হিসাবে প্রদর্শন করে (এইচটিএমএল এর আদর্শ) .. । অর্থাত .. <td> cows         moo </td>যেমন প্রদর্শন cows moo... বোধহয় এই জন্য কিছু সহজ খামচি, কিন্তু আমার এইচটিএমএল জ্ঞান পর্যন্ত 'HTML' বানান করতে সক্ষম হচ্ছে পরলোক যেতে না .. :)
Peter.O

1

এখানে একটি পদ্ধতি যা ইউনিকোড অক্ষরগুলি বজায় রাখে।
অর্থাত। এটি ইউনিকোড কোডপয়েন্ট মান বাদ দেওয়ার পরিবর্তে প্রদর্শিত হয়\U0906

স্ক্রিপ্টটি একটি ওও নথি ফর্ম্যাটটিকে অন্যান্য ওও ফর্ম্যাটে রূপান্তর করতে ওপেনঅফিস.আর্গ এবং পাইওডকনভার্টার.পি ব্যবহার করে। রূপান্তর প্রকারগুলি ফাইলের নাম এক্সটেনশনের উপর ভিত্তি করে:

  • পিডিএফ এইচটিএমএল ওজড ডক txt ওড এক্সএলএস সিএসভি অজপ পিটিপি সুইফ

#
oextn="html" # output type
ifile="My_OOo_File"   ;echo ifile="$ifile"
ofile="$ifile.$oextn" ;echo ofile="$ofile"
[[ -f "$ofile" ]] && { rm "$ofile"; }
[[ -f "$ofile" ]] && { echo "A pre-existing Output file was NOT removed" ;exit; } 
#
sofport=8100
soffice="$(locate -br "^soffice.bin$")"
soffarg=( '-invisible' '-accept=socket,port='$sofport';urp;' )
soffrex="$soffice ${soffarg[@]}"
#
  soffpid=$(($(pgrep -f -n "$soffice")))
((soffpid!=0)) && { echo "A OpenOffice is already running. PID=$soffpid" ;exit; } 
#
# Start OpenOffice
"$soffice" "${soffarg[@]}" &
soffpid=$(($(pgrep -f -n "$soffrex")))
((soffpid== 0)) && { echo "A OpenOffice has not started yet=$soffpid" ;exit; } 
#
# Start OpenOffice
echo "** Attempting to connect to OpenOffice.org on port $sofport"
x=1; while ((x!=0)) ;do
    /usr/bin/python "$(which DocumentConverter.py)" "$ifile" "$ofile"
    x=$?
done
#
# Start Terminal Browser
w3m   "$ofile" -T 'text/html'
kill -15 $soffpid
#

ওও থেকে বেরিয়ে আসার সম্ভবত অন্য কোনও উপায় আছে (তবে আমি এটি জানি না)
এবং ওওর একটি স্বতন্ত্র উদাহরণ শুরু করার সম্ভবত কিছু উপায় আছে তবে আমি কীভাবে এটি করতে পারি তাও জানি না, যেমনটি হয়, এটি দরকার যে ওও চলছে না ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.