วิธีการแปลง. xlsx เป็น. txt


6

ฉันต้องการทราบว่ามีเครื่องมือ Linux หรือสคริปต์ที่สามารถแปลงได้ .xlsx ไฟล์ไปที่ .txt.


2
ไม่ใช่คำถามที่ชัดเจนมากที่จะซื่อสัตย์ คุณมีอะไรในไฟล์บ้าง เพียงแค่ข้อมูล หรือมีแผนภูมิมาโคร ฯลฯ ด้วยหรือไม่

มีจำนวนมากออนไลน์ xlsx เป็นรูปแบบที่เป็นกรรมสิทธิ์ (และค่อนข้างใหม่) ดังนั้นประสิทธิภาพของเครื่องมือโอเพนซอร์สจะถูก จำกัด ฉันคิดว่า ลอง tinyurl.com/2vbb7m5
Noufal Ibrahim

1
สิ่งที่ต้องการ wizard.ae.krakow.pl/~jb/xls2txt แต่สำหรับ xlsx

คำตอบ:


8

อีกวิธีหนึ่งคือเปลี่ยนชื่อเป็น. zip และคลายซิปเป็นไฟล์. *** x ทั้งหมดเป็นเพียงโฟลเดอร์ซิปที่บรรจุ xml ข้างในคุณจะพบโฟลเดอร์ "xl" พร้อมโฟลเดอร์ย่อย "แผ่นงาน" ด้านในเป็นไฟล์ xml สำหรับแต่ละแผ่น รูปแบบของไฟล์เหล่านี้ค่อนข้างเรียบง่ายและควรแยกวิเคราะห์ได้ง่ายด้วยแพ็คเกจ xml ใด ๆ


3
+1 น่าสนใจ ฉันกำลังดูไฟล์ XML เหล่านี้ในตอนนี้และอย่างน้อยก็ในกรณีนี้มันซับซ้อนกว่าที่คุณบอกไว้ - sheet1.xml ไม่มีข้อความจริง แต่ดูเหมือนจะอ้างถึงไฟล์ XML อื่นที่ชื่อว่า sharedStrings.xml ซึ่งเป็นที่เก็บเนื้อหา "" ของไฟล์
handsofaten

6

ssconvert เครื่องมือที่มาพร้อมกับ Gnumeric สามารถแปลงไฟล์ xlsx เป็นข้อความ:

ssconvert Book1.xlsx file.csv

และมีความยืดหยุ่นและรวดเร็ว! #recommended
knb

3

ฉันไม่รู้เกี่ยวกับเครื่องมือใน linux แต่คุณสามารถใช้ Google Docs .

คุณอัปโหลดสเปรดชีตที่นั่นและจากนั้นคุณสามารถส่งออกเป็น txt


3

หากเป็นเพียงข้อมูลต้นฉบับ / ตัวเลข (ซึ่งฉันต้องถือว่ามันมิฉะนั้นไฟล์ข้อความจะทะเยอทะยานเล็กน้อย) จากนั้นคุณสามารถลอง xlsx2csv เพื่อสร้างไฟล์ CSV จากสเปรดชีตของคุณ

ฉันไม่สามารถรับรองประสิทธิภาพได้ แต่ควรลองใช้ดู


2

ไม่ใช่เชลล์สคริปต์ (ไม่เหมือนกับสคริปต์ที่กล่าวถึงในโพสต์ของ Andy ตั้งแต่วันที่ 20 ต.ค. 53 เวลา 8:44) แต่เป็นสคริปต์ไพ ธ อน:

ด้วยชื่อเดียวกัน xlsx2csv

การส่งออกค่าวันที่เป็นลอยแม้ว่า:

2012/07/01 = & gt; 41091,

"2012/07/01 01:00:00" = & gt; 41,091.0416666667

xlsx2csv.py --help 
Usage: xlsx2csv.py [options] infile [outfile]

Options:
  --version             show program's version number and exit


     -h, --help            show this help message and exit
      -s SHEETID, --sheet=SHEETID
                            sheet no to convert (0 for all sheets)
      -d DELIMITER, --delimiter=DELIMITER
                            delimiter - csv columns delimiter, 'tab' or 'x09' for
                            tab (comma is default)
      -p SHEETDELIMITER, --sheetdelimiter=SHEETDELIMITER
                            sheets delimiter used to separate sheets, pass '' if
                            you don't want delimiters (default '--------')
      -f DATEFORMAT, --dateformat=DATEFORMAT
                            override date/time format (ex. %Y/%m/%d)
      -i, --ignoreempty     skip empty lines
      -r, --recursive       convert recursively

1

ไม่ใช่บรรทัดคำสั่ง แต่ OpenOffice สามารถอ่านไฟล์. xlsx และบันทึกเป็น csv อาจมีอยู่แล้วในเครื่อง Linux ของคุณ


1

ฉันใช้คำสั่งด้านล่างเพื่อแปลงไฟล์ xlsx ทั้งหมดของฉันในไดเรกทอรีปัจจุบัน (ต้องติดตั้ง Libre Office):

for i   in *.xlsx; do  libreoffice --headless --convert-to csv "$i" ; done

ใน LibreOffice เวอร์ชันของฉัน (สำหรับ Mac) เป็นของฉัน scalc แทน libreoffice.
Mario Camou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.