SheetJS: Parser และ Writer สำหรับรูปแบบสเปรดชีตต่างๆ

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

SheetJS: Parser และ Writer สำหรับรูปแบบสเปรดชีตต่างๆ

SheetJS

Parser และ writer สำหรับรูปแบบสเปรดชีตต่างๆ การใช้งานคลีนรูม Pure-JS จากข้อกำหนดอย่างเป็นทางการ เอกสารที่เกี่ยวข้อง และไฟล์ทดสอบ เน้นที่ความทนทานในการแยกวิเคราะห์และการเขียน ความเข้ากันได้ของฟีเจอร์ข้ามรูปแบบกับการแสดง JS แบบรวม และความเข้ากันได้ของเบราว์เซอร์ ES3/ES5 กลับไปเป็น IE6



การฝากเงินโดยตรงที่รอดำเนินการใช้เวลานานเท่าใดในแอพเงินสด

นี่คือเวอร์ชันชุมชน เรายังเสนอรุ่นโปรพร้อมการปรับปรุงประสิทธิภาพ ฟีเจอร์เพิ่มเติม เช่น การจัดสไตล์ และการสนับสนุนโดยเฉพาะ






การแปลโดยชุมชนของ README นี้:



รูปแบบไฟล์ที่รองรับ



กราฟวงกลมของการสนับสนุนรูปแบบ






แผนภาพตำนาน (คลิกเพื่อแสดง)

กราฟตำนาน

การติดตั้ง

ในเบราว์เซอร์ เพียงเพิ่มแท็กสคริปต์:

|_+_|

ความพร้อมใช้งานของ CDN (คลิกเพื่อแสดง)

CDNURL
|_+_| https://unpkg.com/xlsx/
|_+_| https://jsdelivr.com/package/npm/xlsx
|_+_| https://cdnjs.com/libraries/xlsx
|_+_| https://bundle.run/xlsx@latest?name=XLSX

|_+_| ทำให้มีเวอร์ชันล่าสุดได้ที่:

|_+_|

กับ npm :

|_+_|

กับ bower :

|_+_|

การสาธิตระบบนิเวศ JS

ดิ |_+_| ไดเรกทอรี รวมถึงโครงการตัวอย่างสำหรับ:

กรอบงานและ API

Bundlers และ Tooling

แพลตฟอร์มและการบูรณาการ

ตัวอย่างอื่นๆ รวมอยู่ใน ตู้โชว์ .

โมดูลเสริม

คุณสมบัติเสริม (คลิกเพื่อแสดง)

เวอร์ชันของโหนดต้องการโมดูลสำหรับคุณลักษณะเพิ่มเติมโดยอัตโนมัติ โมดูลเหล่านี้บางส่วนมีขนาดค่อนข้างใหญ่และจำเป็นเฉพาะในสถานการณ์พิเศษเท่านั้น ดังนั้นจึงไม่ได้จัดส่งพร้อมกับแกนหลัก สำหรับการใช้เบราว์เซอร์ จะต้องรวมไว้โดยตรง:

|_+_|

เวอร์ชันที่เหมาะสมสำหรับการพึ่งพาแต่ละรายการจะรวมอยู่ในไดเร็กทอรี dist/

เวอร์ชันไฟล์เดียวที่สมบูรณ์ถูกสร้างขึ้นที่ |_+_|

โครงสร้างที่บางกว่าถูกสร้างขึ้นที่ |_+_| เมื่อเทียบกับบิลด์แบบเต็ม:

  • ข้ามไลบรารี codepage (ไม่รองรับการเข้ารหัส XLS)
  • ตัวเลือกการบีบอัด XLSX ไม่พร้อมใช้งานในขณะนี้
  • ไม่รองรับ XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003
  • node stream utils ถูกลบออก

บิลด์ Webpack และ Browserify มีโมดูลเสริมตามค่าเริ่มต้น Webpack สามารถกำหนดค่าให้ลบการสนับสนุนด้วย |_+_|:

|_+_|

ความเข้ากันได้ของ ECMAScript 5

เนื่องจากไลบรารีใช้ฟังก์ชันเช่น |_+_| เบราว์เซอร์รุ่นเก่าจึงต้องการ แผ่นชิมเพื่อให้ฟังก์ชันที่ขาดหายไป .

หากต้องการใช้แผ่นชิม ให้เพิ่มแผ่นชิมก่อนแท็กสคริปต์ที่โหลด |_+_|:

|_+_|

สคริปต์ยังรวมถึง |_+_| และ |_+_| สำหรับการโหลดและบันทึกไฟล์ใน Internet Explorer เวอร์ชัน 6-9 |_+_| สคริปต์รวมแผ่นชิมในรูปแบบที่เหมาะสำหรับ Photoshop และผลิตภัณฑ์ Adobe อื่นๆ

ปรัชญา

ปรัชญา (คลิกเพื่อแสดง)

ก่อนหน้า SheetJS API สำหรับการประมวลผลไฟล์สเปรดชีตเป็นแบบเฉพาะรูปแบบ ไลบรารีของบุคคลที่สามรองรับรูปแบบเดียวหรือเกี่ยวข้องกับชุดคลาสแยกกันสำหรับไฟล์แต่ละประเภทที่รองรับ แม้ว่า XLSB จะถูกนำมาใช้ใน Excel 2007 แต่ไม่มีอะไรนอก SheetJS หรือ Excel ที่รองรับรูปแบบนี้

ในการโปรโมตมุมมองแบบไม่เชื่อเรื่องพระเจ้า SheetJS เริ่มต้นจากการแทนค่า pure-JS ที่เราเรียกว่า 'รูปแบบสเปรดชีตทั่วไป'

การแสดงอ็อบเจ็กต์อย่างง่ายรวมกับแนวทางปฏิบัติในการเขียนโค้ดอย่างระมัดระวังช่วยให้สามารถใช้งานในเบราว์เซอร์รุ่นเก่าและในสภาพแวดล้อมทางเลือก เช่น ExtendScript และ Web Workers การใช้คุณลักษณะล่าสุดและดีที่สุดเป็นสิ่งที่ดึงดูดใจเสมอ แต่มักต้องใช้เบราว์เซอร์เวอร์ชันล่าสุด ซึ่งจะจำกัดความสามารถในการใช้งาน

ฟังก์ชันยูทิลิตี้จะบันทึกกรณีการใช้งานทั่วไป เช่น การสร้างวัตถุ JS หรือ HTML การดำเนินการง่ายๆ ส่วนใหญ่ควรใช้โค้ดเพียงไม่กี่บรรทัด การดำเนินการที่ซับซ้อนมากขึ้นโดยทั่วไปควรดำเนินการอย่างตรงไปตรงมา

Excel ผลักดันรูปแบบ XLSX เป็นค่าเริ่มต้นโดยเริ่มใน Excel 2007 อย่างไรก็ตาม ยังมีรูปแบบอื่นๆ ที่มีคุณสมบัติที่น่าดึงดูดกว่า ตัวอย่างเช่น รูปแบบ XLSB นั้นคล้ายกับ XLSX ในทางจิตวิญญาณ แต่ไฟล์มักจะใช้พื้นที่น้อยกว่าครึ่งหนึ่งและเปิดได้เร็วกว่ามาก! แม้ว่าจะมีตัวเขียน XLSX แต่ตัวเขียนรูปแบบอื่นๆ ก็พร้อมใช้งาน เพื่อให้ผู้ใช้สามารถใช้ประโยชน์จากคุณลักษณะเฉพาะของแต่ละรูปแบบได้

จุดสนใจหลักของ Community Edition คือการแลกเปลี่ยนข้อมูลที่ถูกต้อง โดยเน้นที่การดึงข้อมูลจากการแสดงข้อมูลที่เข้ากันได้และการส่งออกข้อมูลในรูปแบบต่างๆ ที่เหมาะสมกับอินเทอร์เฟซของบุคคลที่สาม

การแยกวิเคราะห์สมุดงาน

สำหรับการแยกวิเคราะห์ ขั้นตอนแรกคือการอ่านไฟล์ สิ่งนี้เกี่ยวข้องกับการรับข้อมูลและป้อนลงในห้องสมุด ต่อไปนี้คือสถานการณ์ทั่วไปบางประการ:

nodejs อ่านไฟล์ (คลิกเพื่อแสดง)

|_+_| ใช้ได้เฉพาะในสภาพแวดล้อมเซิร์ฟเวอร์ เบราว์เซอร์ไม่มี API สำหรับการอ่านไฟล์โดยพลการที่กำหนดเส้นทาง ดังนั้นต้องใช้กลยุทธ์อื่น

|_+_|

Photoshop ExtendScript อ่านไฟล์ (คลิกเพื่อแสดง)

|_+_| ล้อม |_+_| ตรรกะใน Photoshop และเป้าหมาย ExtendScript อื่นๆ เส้นทางที่ระบุควรเป็นเส้นทางที่แน่นอน:

|_+_|

ดิ |_+_| การสาธิต รวมถึงตัวอย่างที่ซับซ้อนมากขึ้น

เบราว์เซอร์อ่านองค์ประกอบตารางจากหน้า (คลิกเพื่อแสดง)

|_+_| และ |_+_| ฟังก์ชันยูทิลิตี้ใช้องค์ประกอบ DOM TABLE และวนซ้ำผ่านโหนดย่อย

|_+_|

สามารถแปลงหลายตารางบนหน้าเว็บเป็นแผ่นงานแต่ละแผ่นได้:

|_+_|

อีกวิธีหนึ่ง โค้ด HTML สามารถแยกและแยกวิเคราะห์ได้:

|_+_|

ไฟล์ดาวน์โหลดของเบราว์เซอร์ (ajax) (คลิกเพื่อแสดง)

หมายเหตุ: สำหรับตัวอย่างที่สมบูรณ์ยิ่งขึ้นซึ่งใช้ได้กับเบราว์เซอร์รุ่นเก่า ให้ตรวจสอบการสาธิตที่ https://oss.sheetjs.com/sheetjs/ ไฟล์ HTML5 API / ข้อความ Base64 / Web Workers

โปรดทราบว่า IE เวอร์ชันเก่าไม่รองรับ HTML5 File API ดังนั้นจึงใช้โหมด Base64 สำหรับการทดสอบ

รับการเข้ารหัส Base64 บน OSX / Windows (คลิกเพื่อแสดง)

บน OSX คุณสามารถรับการเข้ารหัส Base64 ด้วย:

|_+_|

บน Windows XP ขึ้นไป คุณสามารถรับการเข้ารหัส Base64 โดยใช้ |_+_|:

|_+_|

(หมายเหตุ: คุณต้องเปิดไฟล์และลบบรรทัดส่วนหัวและส่วนท้าย)

  • |_+_| เพื่อสร้างชื่อไฟล์:

    |_+_|

    การทำงานกับสมุดงาน

    รูปแบบอ็อบเจ็กต์แบบเต็มจะอธิบายในภายหลังใน README นี้

    การอ่านเฉพาะเซลล์ (คลิกเพื่อแสดง)

    ตัวอย่างนี้แยกค่าที่เก็บไว้ในเซลล์ A1 จากแผ่นงานแรก:

    |_+_|

    การเพิ่มแผ่นงานใหม่ลงในสมุดงาน (คลิกเพื่อแสดง)

    ตัวอย่างนี้ใช้ |_+_||_+_|

    การสร้างสมุดงานใหม่ตั้งแต่ต้น (คลิกเพื่อแสดง)

    วัตถุสมุดงานประกอบด้วย |_+_| อาร์เรย์ของชื่อและ |_+_| ชื่อแผ่นงานการแมปวัตถุกับวัตถุแผ่นงาน |_+_| ฟังก์ชันยูทิลิตี้สร้างวัตถุสมุดงานใหม่:

    |_+_|

    สมุดงานใหม่ว่างเปล่าและไม่มีแผ่นงาน ฟังก์ชันการเขียนจะเกิดข้อผิดพลาดหากเวิร์กบุ๊กว่างเปล่า

    การแยกวิเคราะห์และการเขียนตัวอย่าง

    https://sheetjs.com/demos/modify.html อ่าน + แก้ไข + เขียนไฟล์

    https://github.com/SheetJS/sheetjs/blob/HEAD/bin/xlsx.njs โหนด

    เวอร์ชันโหนดติดตั้งเครื่องมือบรรทัดคำสั่ง |_+_| ซึ่งสามารถอ่านไฟล์สเปรดชีตและส่งออกเนื้อหาในรูปแบบต่างๆ ที่มาได้ที่ |_+_| ในไดเร็กทอรี bin

    ตัวช่วยบางอย่างทำงานใน |_+_| สร้างมุมมองที่แตกต่างกันของแผ่นงาน:

    • |_+_| สร้าง CSV
    • |_+_| สร้างข้อความที่จัดรูปแบบ UTF16
    • |_+_| สร้าง HTML
    • |_+_| สร้างอาร์เรย์ของวัตถุ
    • |_+_| สร้างรายการสูตร

    การเขียนสมุดงาน

    สำหรับการเขียน ขั้นตอนแรกคือการสร้างข้อมูลผลลัพธ์ ตัวช่วยทำงาน |_+_| และ |_+_| จะจัดทำข้อมูลในรูปแบบต่างๆ ที่เหมาะสมต่อการเผยแพร่ ขั้นตอนที่สองคือการแบ่งปันข้อมูลกับจุดสิ้นสุดจริง สมมติว่า |_+_| เป็นวัตถุสมุดงาน:

    nodejs เขียนไฟล์ (คลิกเพื่อแสดง)

    |_+_| ใช้ |_+_| ในสภาพแวดล้อมเซิร์ฟเวอร์:

    |_+_|

    Photoshop ExtendScript เขียนไฟล์ (คลิกเพื่อแสดง)

    |_+_| ล้อม |_+_| ตรรกะใน Photoshop และเป้าหมาย ExtendScript อื่นๆ เส้นทางที่ระบุควรเป็นเส้นทางที่แน่นอน:

    |_+_|

    ดิ |_+_| การสาธิต รวมถึงตัวอย่างที่ซับซ้อนมากขึ้น

    เบราว์เซอร์เพิ่มองค์ประกอบ TABLE ให้กับเพจ (คลิกเพื่อแสดง)

    |_+_| ฟังก์ชันยูทิลิตี้สร้างโค้ด HTML ที่สามารถเพิ่มลงในองค์ประกอบ DOM ใดก็ได้

    |_+_|

    ไฟล์อัพโหลดเบราว์เซอร์ (ajax) (คลิกเพื่อแสดง)

    ตัวอย่างที่สมบูรณ์โดยใช้ XHR คือ รวมอยู่ในการสาธิต XHR พร้อมด้วยตัวอย่างสำหรับไลบรารีการดึงข้อมูลและแรปเปอร์ ตัวอย่างนี้อนุมานว่าเซิร์ฟเวอร์สามารถจัดการไฟล์ที่เข้ารหัส Base64 (ดูการสาธิตสำหรับเซิร์ฟเวอร์ nodejs พื้นฐาน):

    |_+_|

    เบราว์เซอร์บันทึกไฟล์ (คลิกเพื่อแสดง)

    |_+_| รวมเทคนิคสองสามอย่างในการเรียกการบันทึกไฟล์:

    • |_+_| API ของเบราว์เซอร์สร้าง URL อ็อบเจ็กต์สำหรับไฟล์ ซึ่งไลบรารีใช้โดยการสร้างลิงก์และบังคับให้คลิก ได้รับการสนับสนุนในเบราว์เซอร์ที่ทันสมัย
    • |_+_| เป็น IE10+ API สำหรับเรียกใช้การบันทึกไฟล์
    • |_+_| ใช้ VBScript และ ActiveX เพื่อเขียนไฟล์ใน IE6+ สำหรับ Windows XP และ Windows 7 โดยจะต้องรวมแผ่นชิมไว้ในหน้า HTML ที่มี

    ไม่มีวิธีมาตรฐานในการพิจารณาว่าไฟล์จริงถูกดาวน์โหลดหรือไม่

    |_+_|

    เบราว์เซอร์บันทึกไฟล์ (ความเข้ากันได้) (คลิกเพื่อแสดง)

    |_+_| เทคนิคต่างๆ ใช้ได้กับเบราว์เซอร์รุ่นใหม่ๆ และ IE รุ่นเก่าๆ สำหรับเบราว์เซอร์รุ่นเก่าๆ มีวิธีแก้ปัญหาโดยไลบรารีของ wrapper

    |_+_| ดำเนินการ |_+_|. หมายเหตุ: |_+_| จะเรียก |_+_| . โดยอัตโนมัติ ถ้ามี

    |_+_|

    |_+_| ใช้ปุ่ม Flash SWF เพื่อสร้างไฟล์ในเครื่อง ซึ่งเหมาะสำหรับสภาพแวดล้อมที่ ActiveX ไม่พร้อมใช้งาน:

    |_+_|

    ดิ |_+_| การสาธิต แสดงสถานการณ์ทางเลือกที่เข้ากันได้กับ IE

    ดิ รวมการสาธิต ครอบคลุมแอพมือถือและการปรับใช้พิเศษอื่นๆ

    ตัวอย่างการเขียน

    • https://github.com/sheetjs/sheetaki ไพพ์เขียนสตรีมไปยังการตอบสนองของ nodejs

      อินเตอร์เฟซ

      |_+_| เป็นตัวแปรเปิดเผยในเบราว์เซอร์และตัวแปรโหนดที่ส่งออก

      |_+_| เป็นเวอร์ชันของไลบรารี (เพิ่มโดยสคริปต์บิลด์)

      |_+_| เป็นเวอร์ชันฝังตัวของ ห้องสมุดรูปแบบ .

      ฟังก์ชันการแยกวิเคราะห์

      |_+_| พยายามแยกวิเคราะห์ |_+_|

      |_+_| พยายามอ่าน |_+_| และแยกวิเคราะห์

      ตัวเลือกการแยกวิเคราะห์อธิบายไว้ในตัวเลือกการแยกวิเคราะห์

      ฟังก์ชันการเขียน

      |_+_| พยายามเขียนสมุดงาน |_+_|

      |_+_| พยายามจะเขียน |_+_| ถึง |_+_|. ในสภาพแวดล้อมที่ใช้เบราว์เซอร์ จะพยายามบังคับดาวน์โหลดฝั่งไคลเอ็นต์

      |_+_| พยายามจะเขียน |_+_| ถึง |_+_|. ถ้า |_+_| ละเว้น ผู้เขียนจะใช้อาร์กิวเมนต์ที่สามเป็นการโทรกลับ

      |_+_| มีชุดของฟังก์ชันการเขียนแบบสตรีมมิง

      ตัวเลือกการเขียนอธิบายไว้ในตัวเลือกการเขียน

      สาธารณูปโภค

      ยูทิลิตี้ที่มีอยู่ใน |_+_| วัตถุและอธิบายไว้ใน Utility Functions

      การนำเข้า:

      • |_+_| แปลงอาร์เรย์ของอาร์เรย์ของข้อมูล JS เป็นเวิร์กชีต
      • |_+_| แปลงอาร์เรย์ของวัตถุ JS เป็นเวิร์กชีต
      • |_+_| แปลงองค์ประกอบ DOM TABLE เป็นเวิร์กชีต
      • |_+_| เพิ่มอาร์เรย์ของข้อมูล JS ลงในเวิร์กชีตที่มีอยู่
      • |_+_| เพิ่มอาร์เรย์ของวัตถุ JS ลงในเวิร์กชีตที่มีอยู่

      การส่งออก:

      • |_+_| แปลงวัตถุแผ่นงานเป็นอาร์เรย์ของวัตถุ JSON
      • |_+_| สร้างเอาต์พุตค่าที่คั่นด้วยตัวคั่น
      • |_+_| สร้างข้อความที่จัดรูปแบบ UTF16
      • |_+_| สร้างเอาต์พุต HTML
      • |_+_| สร้างรายการสูตร (พร้อมค่าทางเลือก)

      การจัดการเซลล์และที่อยู่ของเซลล์:

      • |_+_| สร้างค่าข้อความสำหรับเซลล์ (โดยใช้รูปแบบตัวเลข)
      • |_+_| แปลงระหว่างแถวที่จัดทำดัชนี 0 และแถวที่จัดทำดัชนี 1 แถว
      • |_+_| แปลงระหว่างคอลัมน์ที่จัดทำดัชนี 0 และชื่อคอลัมน์
      • |_+_| แปลงที่อยู่ของเซลล์
      • |_+_| แปลงช่วงเซลล์

      รูปแบบสเปรดชีตทั่วไป

      SheetJS สอดคล้องกับรูปแบบสเปรดชีตทั่วไป (CSF):

      โครงสร้างทั่วไป

      วัตถุที่อยู่เซลล์ถูกเก็บไว้เป็น |_+_| โดยที่ |_+_| และ |_+_| คือหมายเลขคอลัมน์และแถวที่จัดทำดัชนี 0 รายการตามลำดับ ตัวอย่างเช่น ที่อยู่เซลล์ |_+_| แสดงโดยอ็อบเจ็กต์ |_+_|

      วัตถุช่วงเซลล์ถูกเก็บไว้เป็น |_+_| โดยที่ |_+_| เป็นเซลล์แรกและ |_+_| เป็นเซลล์สุดท้ายในช่วง รวมช่วงแล้ว ตัวอย่างเช่น ช่วง |_+_| แสดงโดยอ็อบเจ็กต์ |_+_| ฟังก์ชันยูทิลิตี้ดำเนินการตามคำสั่งหลักเดินผ่านช่วงของแผ่นงาน:

      |_+_|

      วัตถุเซลล์

      วัตถุเซลล์เป็นวัตถุ JS ธรรมดาที่มีคีย์และค่าตามแบบแผน:

      สำคัญคำอธิบาย
      |_+_|ค่าดิบ (ดูส่วนประเภทข้อมูลสำหรับข้อมูลเพิ่มเติม)
      |_+_|ข้อความที่จัดรูปแบบ (ถ้ามี)
      |_+_|พิมพ์: |_+_| บูลีน |_+_| ผิดพลาด |_+_| เบอร์ |_+_| วันที่ |_+_| ข้อความ |_+_| สตับ
      |_+_|สูตรเซลล์ที่เข้ารหัสเป็นสตริงสไตล์ A1 (ถ้ามี)
      |_+_|ช่วงของอาร์เรย์ที่ล้อมรอบถ้าสูตรเป็นสูตรอาร์เรย์ (ถ้ามี)
      |_+_|การเข้ารหัสข้อความที่หลากหลาย (ถ้ามี)
      |_+_|การแสดงผล HTML ของ Rich Text (ถ้ามี)
      |_+_|ความคิดเห็นที่เกี่ยวข้องกับเซลล์
      |_+_|สตริงรูปแบบตัวเลขที่เกี่ยวข้องกับเซลล์ (หากได้รับการร้องขอ)
      |_+_|วัตถุไฮเปอร์ลิงก์ของเซลล์ (|_+_| เก็บลิงก์ |_+_| เป็นคำแนะนำเครื่องมือ)
      |_+_|รูปแบบ/ธีมของเซลล์ (ถ้ามี)

      ยูทิลิตี้การส่งออกในตัว (เช่น ตัวส่งออก CSV) จะใช้ |_+_| ข้อความหากมี หากต้องการเปลี่ยนค่า อย่าลืมลบ |_+_| (หรือตั้งค่าเป็น |_+_|) ก่อนที่จะพยายามส่งออก ยูทิลิตีจะสร้าง |_+_| . ขึ้นใหม่ ข้อความจากรูปแบบตัวเลข (|_+_|) และค่าดิบหากเป็นไปได้

      สูตรอาร์เรย์จริงถูกเก็บไว้ใน |_+_| เขตข้อมูลของเซลล์แรกในช่วงอาร์เรย์ เซลล์อื่นๆ ในช่วงจะละเว้น |_+_| สนาม.

      ประเภทข้อมูล

      ค่าดิบถูกเก็บไว้ใน |_+_| คุณสมบัติค่าตีความตาม |_+_| ประเภทคุณสมบัติ การแยกนี้ช่วยให้สามารถแสดงตัวเลขและข้อความที่เป็นตัวเลขได้ มี 6 ประเภทเซลล์ที่ถูกต้อง:

      พิมพ์คำอธิบาย
      |_+_|บูลีน: ค่าที่ตีความว่าเป็น JS |_+_|
      |_+_|ข้อผิดพลาด: ค่าเป็นรหัสตัวเลขและ |_+_| ร้านค้าทรัพย์สิน ชื่อสามัญ **
      |_+_|Number: ค่าคือ JS |_+_| **
      |_+_|วันที่: ค่าเป็น JS |_+_| วัตถุหรือสตริงที่จะแยกวิเคราะห์เป็นวันที่ **
      |_+_|ข้อความ: ค่าที่แปลเป็น JS |_+_| และเขียนเป็นข้อความ**
      |_+_|Stub: เซลล์ stub ว่างที่ถูกละเว้นโดยยูทิลิตี้การประมวลผลข้อมูล **

      ค่าความผิดพลาดและการตีความ (คลิกเพื่อแสดง)

      ค่าความหมายผิดพลาด
      |_+_||_+_|
      |_+_||_+_|
      |_+_||_+_|
      |_+_||_+_|
      |_+_||_+_|
      |_+_||_+_|
      |_+_||_+_|
      |_+_||_+_|

      พิมพ์ |_+_| เป็นประเภทตัวเลข ซึ่งรวมถึงข้อมูลทุกรูปแบบที่ Excel จัดเก็บเป็นตัวเลข เช่น วันที่/เวลา และฟิลด์บูลีน Excel ใช้เฉพาะข้อมูลที่สามารถใส่ลงในเลขทศนิยม IEEE754 เช่นเดียวกับหมายเลข JS ดังนั้น |_+_| ฟิลด์ถือหมายเลขดิบ |_+_| ฟิลด์เก็บข้อความที่จัดรูปแบบ วันที่จะถูกเก็บไว้เป็นตัวเลขโดยค่าเริ่มต้นและแปลงด้วย |_+_|

      พิมพ์ |_+_| เป็นประเภทวันที่ สร้างขึ้นเมื่อตัวเลือก |_+_| . เท่านั้น ผ่านไปแล้ว เนื่องจาก JSON ไม่มีประเภท Date แบบธรรมชาติ โดยทั่วไปแล้ว parsers จึงควรเก็บสตริงวันที่ ISO 8601 เหมือนกับที่คุณจะได้รับจาก |_+_| ในทางกลับกัน ผู้เขียนและผู้ส่งออกควรสามารถจัดการสตริงวันที่และอ็อบเจ็กต์ JS Date ได้ โปรดทราบว่า Excel ไม่สนใจตัวแก้ไขเขตเวลาและถือว่าวันที่ทั้งหมดในเขตเวลาท้องถิ่น ไลบรารีไม่แก้ไขข้อผิดพลาดนี้

      พิมพ์ |_+_| เป็นประเภทสตริง ค่าจะถูกเก็บไว้อย่างชัดเจนเป็นข้อความ Excel จะตีความเซลล์เหล่านี้เป็น 'ตัวเลขที่จัดเก็บเป็นข้อความ' ไฟล์ Excel ที่สร้างขึ้นจะระงับคลาสของข้อผิดพลาดนั้นโดยอัตโนมัติ แต่รูปแบบอื่นๆ อาจก่อให้เกิดข้อผิดพลาด

      พิมพ์ |_+_| หมายถึงเซลล์ต้นขั้วที่ว่างเปล่า สร้างขึ้นในกรณีที่เซลล์ไม่มีค่าที่กำหนดแต่เก็บความคิดเห็นหรือข้อมูลเมตาอื่นๆ พวกเขาจะถูกละเว้นโดยฟังก์ชันยูทิลิตี้การประมวลผลข้อมูลไลบรารีหลัก โดยค่าเริ่มต้น เซลล์เหล่านี้จะไม่ถูกสร้างขึ้น ตัวแยกวิเคราะห์ |_+_| ต้องตั้งค่าตัวเลือกเป็น |_+_|

      วันที่

      รายละเอียดรหัสวันที่ของ Excel (คลิกเพื่อแสดง)

      ตามค่าเริ่มต้น Excel จะจัดเก็บวันที่เป็นตัวเลขด้วยรหัสรูปแบบที่ระบุการประมวลผลวันที่ ตัวอย่างเช่น วันที่ |_+_| ถูกเก็บเป็นตัวเลข |_+_| ด้วยรูปแบบตัวเลข |_+_| |_+_| โมดูลเข้าใจรูปแบบตัวเลขและดำเนินการแปลงที่เหมาะสม

      XLSX ยังรองรับประเภทวันที่พิเศษ |_+_| โดยที่ข้อมูลเป็นสตริงวันที่ ISO 8601 ฟอร์แมตเตอร์แปลงวันที่กลับเป็นตัวเลข

      ลักษณะการทำงานเริ่มต้นสำหรับ parsers ทั้งหมดคือการสร้างเซลล์ตัวเลข การตั้งค่า |_+_| เป็นจริงจะบังคับให้เครื่องกำเนิดไฟฟ้าเก็บวันที่

      เขตเวลาและวันที่ (คลิกเพื่อแสดง)

      Excel ไม่มีแนวคิดดั้งเดิมของเวลาสากล เวลาทั้งหมดระบุไว้ในเขตเวลาท้องถิ่น ข้อจำกัดของ Excel ป้องกันไม่ให้ระบุวันที่แบบสัมบูรณ์ที่แท้จริง

      ตามหลัง Excel ไลบรารีนี้จะถือว่าวันที่ทั้งหมดสัมพันธ์กับเขตเวลาท้องถิ่น

      ยุค: 1900 และ 1904 (คลิกเพื่อแสดง)

      Excel รองรับสองยุค (มกราคม 1900 และมกราคม 11904) ยุคของสมุดงานสามารถกำหนดได้โดยการตรวจสอบ |_+_| . ของสมุดงาน คุณสมบัติ:

      |_+_|

      วัตถุแผ่น

      แต่ละคีย์ที่ไม่ได้ขึ้นต้นด้วย |_+_| แมปไปยังเซลล์ (โดยใช้ |_+_| สัญกรณ์)

      |_+_| ส่งกลับวัตถุเซลล์สำหรับที่อยู่ที่ระบุ

      ปุ่มแผ่นพิเศษ (เข้าถึงได้ในฐานะ |_+_| , แต่ละอันขึ้นต้นด้วย |_+_| ):

      |_+_|: ช่วงตาม A-1 ที่แสดงถึงช่วงชีต ฟังก์ชันที่ทำงานกับชีตควรใช้พารามิเตอร์นี้เพื่อกำหนดช่วง เซลล์ที่กำหนดนอกช่วงจะไม่ถูกประมวลผล โดยเฉพาะอย่างยิ่ง เมื่อเขียนแผ่นงานด้วยมือ เซลล์ที่อยู่นอกช่วงจะไม่รวมอยู่ด้วย

      ฟังก์ชันที่จัดการชีตควรทดสอบว่ามี |_+_| . หรือไม่ สนาม. ถ้า |_+_| ละเว้นหรือไม่ใช่ช่วงที่ถูกต้อง ฟังก์ชันสามารถถือว่าแผ่นงานว่างเปล่าหรือพยายามคาดเดาช่วงได้ฟรี ยูทิลิตีมาตรฐานที่มาพร้อมกับไลบรารีนี้จะถือว่าชีตว่างเปล่า (เช่น เอาต์พุต CSV เป็นสตริงว่าง)

      เมื่ออ่านแผ่นงานด้วย |_+_| ชุดคุณสมบัติ พารามิเตอร์อ้างอิงจะใช้ช่วงที่จำกัด ช่วงเดิมตั้งไว้ที่ |_+_|

      terraform-aws แนทเกตเวย์

      |_+_|: วัตถุที่แสดงระยะขอบของหน้า ค่าเริ่มต้นเป็นไปตามค่าที่ตั้งไว้ 'ปกติ' ของ Excel Excel ยังมีพรีเซ็ต 'กว้าง' และ 'แคบ' แต่จะถูกเก็บไว้เป็นการวัดแบบดิบ คุณสมบัติหลักมีการระบุไว้ด้านล่าง:

      รายละเอียดระยะขอบของหน้า (คลิกเพื่อแสดง)

      กุญแจคำอธิบาย'ปกติ''กว้าง''แคบ'
      |_+_|ระยะขอบซ้าย (นิ้ว)|_+_||_+_||_+_|
      |_+_|ระยะขอบขวา (นิ้ว)|_+_||_+_||_+_|
      |_+_|ระยะขอบบน (นิ้ว)|_+_||_+_||_+_|
      |_+_|ระยะขอบล่าง (นิ้ว)|_+_||_+_||_+_|
      |_+_|ระยะขอบส่วนหัว (นิ้ว)|_+_||_+_||_+_|
      |_+_|ระยะขอบท้ายกระดาษ (นิ้ว)|_+_||_+_||_+_|
      |_+_|

      วัตถุแผ่นงาน

      นอกจากคีย์ชีตฐานแล้ว เวิร์กชีตยังเพิ่ม:

      |_+_|: อาร์เรย์ของอ็อบเจ็กต์คุณสมบัติของคอลัมน์ จริง ๆ แล้วความกว้างของคอลัมน์จะถูกเก็บไว้ในไฟล์ในลักษณะที่เป็นมาตรฐาน โดยวัดในแง่ของ 'ความกว้างของตัวเลขสูงสุด' (ความกว้างที่ใหญ่ที่สุดของตัวเลขที่แสดงผล 0-9 ในหน่วยพิกเซล) เมื่อแยกวิเคราะห์ อ็อบเจ็กต์คอลัมน์จะเก็บความกว้างของพิกเซลใน |_+_| ฟิลด์ ความกว้างของอักขระใน |_+_| และความกว้างของตัวเลขสูงสุดในช่อง |_+_| สนาม.

      |_+_|: อาร์เรย์ของวัตถุคุณสมบัติแถวตามที่อธิบายไว้ในเอกสาร แต่ละแถววัตถุเข้ารหัสคุณสมบัติรวมทั้งความสูงของแถวและการมองเห็น

      |_+_|: อาร์เรย์ของวัตถุช่วงที่สอดคล้องกับเซลล์ที่ผสานในเวิร์กชีต รูปแบบข้อความธรรมดาไม่สนับสนุนการผสานเซลล์ การส่งออก CSV จะเขียนเซลล์ทั้งหมดในช่วงการผสาน หากมี ดังนั้นตรวจสอบให้แน่ใจว่าได้ตั้งค่าเฉพาะเซลล์แรก (ซ้ายบน) ในช่วงที่ถูกตั้งค่าไว้

      |_+_|: กำหนดค่าการทำงานของโครงร่าง ตัวเลือกเริ่มต้นเป็นการตั้งค่าเริ่มต้นใน Excel 2019:

      กุญแจคุณสมบัติ Excelค่าเริ่มต้น
      |_+_|ยกเลิกการเลือก 'สรุปแถวด้านล่างรายละเอียด'|_+_|
      |_+_|ยกเลิกการเลือก 'สรุปแถวทางด้านขวาของรายละเอียด'|_+_|
      • |_+_|: วัตถุของคุณสมบัติการป้องกันแผ่นเขียน |_+_| คีย์ระบุรหัสผ่านสำหรับรูปแบบที่สนับสนุนแผ่นงานที่มีการป้องกันด้วยรหัสผ่าน (XLSX/XLSB/XLS) ผู้เขียนใช้วิธีการทำให้งงงวย XOR ปุ่มต่อไปนี้ควบคุมการป้องกันแผ่นงาน - ตั้งค่าเป็น |_+_| เพื่อเปิดใช้งานคุณสมบัติเมื่อแผ่นงานถูกล็อคหรือตั้งค่าเป็น |_+_| เพื่อปิดการใช้งานคุณสมบัติ:

      รายละเอียดการป้องกันแผ่นงาน (คลิกเพื่อแสดง)

      กุญแจคุณสมบัติ (true=disabled / false=enabled)ค่าเริ่มต้น
      |_+_|เลือกเซลล์ที่ถูกล็อคเปิดใช้งาน
      |_+_|เลือกเซลล์ที่ปลดล็อคเปิดใช้งาน
      |_+_|จัดรูปแบบเซลล์พิการ
      |_+_|จัดรูปแบบคอลัมน์พิการ
      |_+_|จัดรูปแบบแถวพิการ
      |_+_|แทรกคอลัมน์พิการ
      |_+_|แทรกแถวพิการ
      |_+_|แทรกไฮเปอร์ลิงก์พิการ
      |_+_|ลบคอลัมน์พิการ
      |_+_|ลบแถวพิการ
      |_+_|เรียงลำดับพิการ
      |_+_|กรองพิการ
      |_+_|ใช้รายงาน PivotTableพิการ
      |_+_|แก้ไขวัตถุเปิดใช้งาน
      |_+_|แก้ไขสถานการณ์เปิดใช้งาน
      • |_+_|: AutoFilter object ตามสคีมา:
      |_+_|

      วัตถุแผ่นงาน

      แผนภูมิชีตจะแสดงเป็นชีตมาตรฐาน มีความโดดเด่นด้วย |_+_| ตั้งค่าคุณสมบัติเป็น |_+_|

      ข้อมูลพื้นฐานและ |_+_| อ้างถึงข้อมูลแคชในแผ่นงาน แถวแรกของแผ่นแผนภูมิคือส่วนหัวที่อยู่ข้างใต้

      วัตถุ Macrosheet

      Macrosheets จะแสดงเป็นแผ่นงานมาตรฐาน มีความโดดเด่นด้วย |_+_| ตั้งค่าคุณสมบัติเป็น |_+_|

      วัตถุไดอะล็อกชีต

      ไดอะล็อกชีตจะแสดงเป็นชีตมาตรฐาน มีความโดดเด่นด้วย |_+_| ตั้งค่าคุณสมบัติเป็น |_+_|

      วัตถุสมุดงาน

      |_+_| เป็นรายการลำดับของชีตในสมุดงาน

      |_+_| ส่งกลับวัตถุที่เป็นตัวแทนของแผ่นงาน

      |_+_| เป็นวัตถุที่เก็บคุณสมบัติมาตรฐาน |_+_| เก็บคุณสมบัติที่กำหนดเอง เนื่องจากคุณสมบัติมาตรฐาน XLS เบี่ยงเบนจากมาตรฐาน XLSX การแยกวิเคราะห์ XLS จึงเก็บคุณสมบัติหลักไว้ในทั้งสองที่

      |_+_| เก็บแอตทริบิวต์ระดับสมุดงาน

      คุณสมบัติไฟล์สมุดงาน

      รูปแบบไฟล์ต่างๆ ใช้ชื่อภายในที่แตกต่างกันสำหรับคุณสมบัติของไฟล์ สมุดงาน |_+_| วัตถุทำให้ชื่อเป็นปกติ:

      คุณสมบัติไฟล์ (คลิกเพื่อแสดง)

      ชื่อ JSคำอธิบาย Excel
      |_+_|แท็บสรุป 'ชื่อ'
      |_+_|แท็บสรุป 'เรื่อง'
      |_+_|แท็บสรุป 'ผู้เขียน'
      |_+_|แท็บสรุป 'ผู้จัดการ'
      |_+_|แท็บสรุป 'บริษัท'
      |_+_|แท็บสรุป 'หมวดหมู่'
      |_+_|แท็บสรุป 'คำหลัก'
      |_+_|แท็บสรุป 'ความคิดเห็น'
      |_+_|แท็บสถิติ 'บันทึกล่าสุดโดย'
      |_+_|แท็บสถิติ 'สร้างแล้ว'

      ตัวอย่างเช่น ในการตั้งค่าคุณสมบัติชื่อเวิร์กบุ๊ก:

      |_+_|

      คุณสมบัติที่กำหนดเองถูกเพิ่มในสมุดงาน |_+_| วัตถุ:

      |_+_|

      ผู้เขียนจะประมวลผล |_+_| คีย์ของอ็อบเจ็กต์ตัวเลือก:

      |_+_|

      แอตทริบิวต์ระดับสมุดงาน

      |_+_| เก็บแอตทริบิวต์ระดับสมุดงาน

      ชื่อที่กำหนด

      |_+_| เป็นอาร์เรย์ของวัตถุชื่อที่กำหนดซึ่งมีคีย์:

      คุณสมบัติชื่อที่กำหนด (คลิกเพื่อแสดง)

      สำคัญคำอธิบาย
      |_+_|ขอบเขตชื่อ ดัชนีชีต (0 = แผ่นแรก) หรือ |_+_| (สมุดงาน)
      |_+_|ชื่อที่คำนึงถึงขนาดตัวพิมพ์ ใช้กฎมาตรฐาน **
      |_+_|การอ้างอิงแบบ A1 (|_+_|)
      |_+_|ความคิดเห็น (ใช้ได้กับ XLS/XLSX/XLSB เท่านั้น)

      Excel อนุญาตให้ชื่อที่กำหนดขอบเขตแผ่นงานสองชื่อใช้ชื่อเดียวกันร่วมกัน อย่างไรก็ตาม ชื่อที่กำหนดขอบเขตแผ่นงานไม่สามารถชนกับชื่อขอบเขตของสมุดงานได้ ผู้เขียนสมุดงานไม่สามารถบังคับใช้ข้อจำกัดนี้

      มุมมองสมุดงาน

      |_+_| เป็นอาร์เรย์ของวัตถุมุมมองเวิร์กบุ๊กที่มีคีย์:

      สำคัญคำอธิบาย
      |_+_|ถ้าเป็นจริง ให้แสดงขวาไปซ้าย

      คุณสมบัติสมุดงานเบ็ดเตล็ด

      |_+_| มีคุณสมบัติสมุดงานอื่นๆ:

      สำคัญคำอธิบาย
      |_+_|ชื่อรหัสสมุดงานโครงการ VBA
      |_+_|ยุค: 0/เท็จสำหรับระบบ 1900, 1/จริงสำหรับ1904
      |_+_|เตือนหรือถอดข้อมูลระบุตัวบุคคลในบันทึก

      คุณสมบัติเอกสาร

      แม้แต่สำหรับคุณสมบัติพื้นฐาน เช่น การจัดเก็บวันที่ รูปแบบ Excel อย่างเป็นทางการจะจัดเก็บเนื้อหาเดียวกันในรูปแบบต่างๆ ตัวแยกวิเคราะห์คาดว่าจะแปลงจากการแสดงรูปแบบไฟล์พื้นฐานเป็นรูปแบบสเปรดชีตทั่วไป ผู้เขียนคาดว่าจะแปลงจาก CSF กลับไปเป็นรูปแบบไฟล์พื้นฐาน

      สูตร

      สตริงสูตรสไตล์ A1 ถูกเก็บไว้ใน |_+_| สนาม. แม้ว่ารูปแบบไฟล์ต่างๆ จะจัดเก็บสูตรในรูปแบบต่างๆ แต่รูปแบบก็จะถูกแปล แม้ว่าบางรูปแบบจะเก็บสูตรที่มีเครื่องหมายเท่ากับนำหน้า แต่สูตร CSF จะไม่ขึ้นต้นด้วย |_+_|

      ตัวแทนของ A1=1, A2=2, A3=A1+A2 (คลิกเพื่อแสดง)

      |_+_|

      สูตรที่ใช้ร่วมกันจะถูกขยายออก และแต่ละเซลล์มีสูตรที่สอดคล้องกับเซลล์ ผู้เขียนมักไม่พยายามสร้างสูตรที่ใช้ร่วมกัน

      เซลล์ที่มีรายการสูตรแต่ไม่มีค่าใดจะถูกจัดลำดับในลักษณะที่ Excel และเครื่องมือสเปรดชีตอื่นๆ จะรู้จัก ไลบรารีนี้จะไม่คำนวณผลลัพธ์ของสูตรโดยอัตโนมัติ! ตัวอย่างเช่น การคำนวณ |_+_| ในแผ่นงาน:

      สูตรที่ไม่ทราบค่า (คลิกเพื่อแสดง)

      |_+_|

      สูตรอาร์เรย์

      สูตรอาร์เรย์จะจัดเก็บไว้ในเซลล์ด้านซ้ายบนของบล็อกอาร์เรย์ ทุกเซลล์ของสูตรอาร์เรย์มี |_+_| ฟิลด์ที่สอดคล้องกับช่วง สูตรเซลล์เดียวสามารถแยกแยะได้จากสูตรธรรมดาโดยมี |_+_| สนาม.

      ตัวอย่างสูตรอาร์เรย์ (คลิกเพื่อแสดง)

      ตัวอย่างเช่น การตั้งค่าเซลล์ |_+_| ไปที่สูตรอาร์เรย์ |_+_|:

      |_+_|

      สำหรับสูตรอาร์เรย์หลายเซลล์ ทุกเซลล์มีช่วงอาร์เรย์เดียวกัน แต่เฉพาะเซลล์แรกเท่านั้นที่ระบุสูตร พิจารณา |_+_|:

      |_+_|

      ยูทิลิตี้และนักเขียนคาดว่าจะตรวจสอบการมีอยู่ของ |_+_| ฟิลด์และละเว้นองค์ประกอบสูตรที่เป็นไปได้ |_+_| ในเซลล์อื่นที่ไม่ใช่เซลล์เริ่มต้น พวกเขาไม่คาดว่าจะทำการตรวจสอบสูตร!

      ฟังก์ชันยูทิลิตี้เอาท์พุตสูตร (คลิกเพื่อแสดง)

      |_+_| วิธีสร้างหนึ่งบรรทัดต่อสูตรหรือสูตรอาร์เรย์ สูตรอาร์เรย์จะแสดงในรูปแบบ |_+_| ในขณะที่เซลล์ธรรมดาจะแสดงในรูปแบบ |_+_| โปรดทราบว่าตัวอักษรสตริงนำหน้าด้วยเครื่องหมายอะพอสทรอฟี |_+_| ซึ่งสอดคล้องกับการแสดงแถบสูตรของ Excel

      รายละเอียดรูปแบบไฟล์สูตร (คลิกเพื่อแสดง)

      ตัวแทนการจัดเก็บรูปแบบอ่านเขียน
      สายแบบ A1XLSX
      สายแบบ RCXLML และข้อความธรรมดา
      BIFF สูตรแยกวิเคราะห์XLSB และรูปแบบ XLS ทั้งหมด
      สูตร OpenFormulaODS/FODS/UOS
      สูตรแยกดอกบัวรูปแบบ Lotus WK_ ทั้งหมด

      เนื่องจาก Excel ห้ามไม่ให้เซลล์ที่มีชื่อชนกับชื่อการอ้างอิงเซลล์สไตล์ A1 หรือ RC การแปลง regex (ที่ไม่ธรรมดา) จึงเป็นไปได้ ต้องแกะสูตร BIFF Parsed และสูตร Lotus Parsed อย่างชัดเจน สูตร OpenFormula สามารถแปลงได้ด้วยนิพจน์ทั่วไป

      คุณสมบัติของคอลัมน์

      |_+_| array ในแต่ละแผ่นงาน ถ้ามี จะเป็นคอลเลกชั่นของ |_+_| วัตถุที่มีคุณสมบัติดังต่อไปนี้:

      |_+_|

      ทำไมถึงมีความกว้างสามประเภท? (คลิกเพื่อแสดง)

      มีประเภทความกว้างที่แตกต่างกันสามประเภทซึ่งสอดคล้องกับสามวิธีที่สเปรดชีตจัดเก็บความกว้างของคอลัมน์:

      SYLK และรูปแบบข้อความธรรมดาอื่นๆ ใช้การนับอักขระแบบดิบ เครื่องมือร่วมสมัยเช่น Visicalc และ Multiplan นั้นอิงตามอักขระ เนื่องจากอักขระมีความกว้างเท่ากัน จึงเพียงพอที่จะเก็บจำนวน ประเพณีนี้ยังคงดำเนินต่อไปในรูปแบบ BIFF

      SpreadsheetML (2003) พยายามปรับให้เข้ากับ HTML โดยกำหนดมาตรฐานในการนับพิกเซลของหน้าจอตลอดทั้งไฟล์ ความกว้างของคอลัมน์ ความสูงของแถว และการวัดอื่นๆ ใช้พิกเซล เมื่อจำนวนพิกเซลและอักขระไม่สอดคล้องกัน Excel จะปัดเศษค่า

      XLSX เก็บความกว้างของคอลัมน์ไว้ภายในในรูปแบบ 'Max Digit Width' ที่คลุมเครือ Max Digit Width คือความกว้างของตัวเลขที่ใหญ่ที่สุดเมื่อแสดงผล (โดยทั่วไป อักขระ '0' จะกว้างที่สุด) ความกว้างภายในต้องเป็นจำนวนเต็มคูณของความกว้างหารด้วย 256 ECMA-376 อธิบายสูตรสำหรับการแปลงระหว่างพิกเซลและความกว้างภายใน นี่แสดงถึงแนวทางไฮบริด

      ฟังก์ชันอ่านพยายามเติมคุณสมบัติทั้งสาม ฟังก์ชันเขียนจะพยายามวนรอบค่าที่ระบุเป็นประเภทที่ต้องการ เพื่อหลีกเลี่ยงความขัดแย้งที่อาจเกิดขึ้น การจัดการควรลบคุณสมบัติอื่นก่อน ตัวอย่างเช่น เมื่อเปลี่ยนความกว้างของพิกเซล ให้ลบ |_+_| และ |_+_| คุณสมบัติ.

      รายละเอียดการใช้งาน (คลิกเพื่อแสดง)

      ด้วยข้อจำกัด คุณสามารถกำหนด MDW ได้โดยไม่ต้องตรวจสอบแบบอักษรจริง ๆ ! ตัวแยกวิเคราะห์เดาความกว้างของพิกเซลโดยแปลงจากความกว้างเป็นพิกเซลและย้อนกลับ ทำซ้ำสำหรับ MDW ที่เป็นไปได้ทั้งหมด และเลือก MDW ที่ลดข้อผิดพลาดให้น้อยที่สุด XLML เก็บความกว้างของพิกเซลไว้จริง ดังนั้นการเดาจึงทำงานในทิศทางตรงกันข้าม

      แม้ว่าข้อมูลทั้งหมดจะพร้อมใช้งาน แต่ผู้เขียนต้องปฏิบัติตามลำดับความสำคัญ:

      1. ใช้ |_+_| สนามถ้ามี
      2. ใช้ |_+_| ความกว้างของพิกเซลถ้ามี
      3. ใช้ |_+_| จำนวนตัวอักษรถ้ามี

      คุณสมบัติแถว

      |_+_| array ในแต่ละแผ่นงาน ถ้ามี จะเป็นคอลเลกชั่นของ |_+_| วัตถุที่มีคุณสมบัติดังต่อไปนี้:

      |_+_|

      หมายเหตุ: Excel UI แสดงระดับเค้าร่างพื้นฐานเป็น |_+_| และระดับสูงสุดเป็น |_+_| |_+_| ฟิลด์เก็บเค้าร่างฐานเป็น |_+_| และระดับสูงสุดเป็น |_+_|

      รายละเอียดการใช้งาน (คลิกเพื่อแสดง)

      Excel จัดเก็บความสูงของแถวไว้ภายในจุด ความละเอียดเริ่มต้นคือ 72 DPI หรือ 96 PPI ดังนั้นขนาดพิกเซลและจุดควรเห็นด้วย สำหรับความละเอียดที่แตกต่างกันพวกเขาอาจไม่เห็นด้วย ดังนั้นห้องสมุดจึงแยกแนวคิดออกจากกัน

      แม้ว่าข้อมูลทั้งหมดจะพร้อมใช้งาน แต่ผู้เขียนต้องปฏิบัติตามลำดับความสำคัญ:

      1. ใช้ |_+_| ความสูงของพิกเซลถ้ามี
      2. ใช้ |_+_| ความสูงของจุดถ้ามี

      รูปแบบตัวเลข

      |_+_| ข้อความที่จัดรูปแบบสำหรับแต่ละเซลล์สร้างจาก |_+_| และ |_+_| รูปแบบ. หากไม่ได้ระบุรูปแบบ Excel |_+_| มีการใช้รูปแบบ รูปแบบสามารถระบุเป็นสตริงหรือเป็นดัชนีในตารางรูปแบบ Parsers คาดว่าจะเติม |_+_| กับตารางรูปแบบตัวเลข นักเขียนจะต้องจัดลำดับตาราง

      เครื่องมือแบบกำหนดเองควรตรวจสอบให้แน่ใจว่าตารางในเครื่องมีสตริงรูปแบบที่ใช้แต่ละอันในตาราง ข้อตกลงของ Excel กำหนดให้รูปแบบที่กำหนดเองเริ่มต้นที่ดัชนี 164 ตัวอย่างต่อไปนี้สร้างรูปแบบที่กำหนดเองตั้งแต่เริ่มต้น:

      แผ่นงานใหม่ที่มีรูปแบบที่กำหนดเอง (คลิกเพื่อแสดง)

      |_+_|

      กฎแตกต่างเล็กน้อยจากวิธีที่ Excel แสดงรูปแบบตัวเลขที่กำหนดเอง โดยเฉพาะอย่างยิ่ง อักขระตามตัวอักษรต้องอยู่ในเครื่องหมายคำพูดคู่หรือนำหน้าด้วยแบ็กสแลช สำหรับข้อมูลเพิ่มเติม โปรดดูบทความเอกสารของ Excel |_+_| หรือ ECMA-376 18.8.31 (รูปแบบตัวเลข)

      รูปแบบตัวเลขเริ่มต้น (คลิกเพื่อแสดง)

      รูปแบบเริ่มต้นแสดงอยู่ใน ECMA-376 18.8.30:

      ไอดีรูปแบบ
      0|_+_|
      1|_+_|
      สอง|_+_|
      3|_+_|
      4|_+_|
      9|_+_|
      10|_+_|
      สิบเอ็ด|_+_|
      12|_+_|
      13|_+_|
      14|_+_| (ดูด้านล่าง)
      สิบห้า|_+_|
      16|_+_|
      17|_+_|
      18|_+_|
      19|_+_|
      ยี่สิบ|_+_|
      ยี่สิบเอ็ด|_+_|
      22|_+_|
      37|_+_|
      38|_+_|
      39|_+_|
      40|_+_|
      สี่ห้า|_+_|
      46|_+_|
      47|_+_|
      48|_+_|
      49|_+_|

      รูปแบบ 14 (|_+_|) ถูกแปลโดย Excel: แม้ว่าไฟล์จะระบุรูปแบบตัวเลขนั้น แต่จะถูกวาดแตกต่างกันตามการตั้งค่าระบบ เป็นเรื่องที่สมเหตุสมผลเมื่อผู้ผลิตและผู้บริโภคของไฟล์อยู่ในโลแคลเดียวกัน แต่นั่นไม่ใช่กรณีทางอินเทอร์เน็ตเสมอไป เพื่อขจัดความกำกวมนี้ ฟังก์ชันการแยกวิเคราะห์ยอมรับ |_+_| ตัวเลือกเพื่อแทนที่การตีความของสตริงรูปแบบเฉพาะนั้น

      ไฮเปอร์ลิงก์

      รองรับรูปแบบ (คลิกเพื่อแสดง)

      ไฮเปอร์ลิงก์ของเซลล์ : XLSX/M, XLSB, BIFF8 XLS, XLML, ODS

      เคล็ดลับเครื่องมือ : XLSX/M, XLSB, BIFF8 XLS, XLML

      ไฮเปอร์ลิงก์ถูกเก็บไว้ใน |_+_| คีย์ของวัตถุเซลล์ |_+_| ฟิลด์ของอ็อบเจ็กต์ไฮเปอร์ลิงก์เป็นเป้าหมายของลิงก์ รวมถึงส่วน URI คำแนะนำเครื่องมือจะถูกเก็บไว้ใน |_+_| และจะแสดงเมื่อคุณเลื่อนเมาส์ไปเหนือข้อความ

      ตัวอย่างเช่น ตัวอย่างต่อไปนี้สร้างลิงก์จากเซลล์ |_+_| ถึง https://sheetjs.com ด้วยเคล็ดลับ |_+_|:

      |_+_|

      โปรดทราบว่า Excel จะไม่จัดรูปแบบไฮเปอร์ลิงก์โดยอัตโนมัติ โดยทั่วไปจะแสดงเป็นข้อความปกติ

      ลิงค์ระยะไกล

      ลิงก์ HTTP / HTTPS สามารถใช้ได้โดยตรง:

      |_+_|

      Excel ยังรองรับ |_+_| ลิงก์อีเมลที่มีหัวเรื่อง:

      |_+_|

      ลิงค์ท้องถิ่น

      ลิงก์ไปยังเส้นทางที่แน่นอนควรใช้ |_+_| โครงการ URI:

      |_+_|

      ลิงก์ไปยังพาธสัมพัทธ์สามารถระบุได้โดยไม่ต้องใช้โครงร่าง:

      |_+_|

      เส้นทางสัมพัทธ์มีการทำงานที่ไม่ได้กำหนดไว้ในรูปแบบ SpreadsheetML 2003 Excel 2019 จะปฏิบัติต่อ |_+_| เครื่องหมายหลักเป็นสองระดับขึ้น

      ลิงค์ภายใน

      ลิงก์ที่เป้าหมายเป็นเซลล์หรือช่วงหรือชื่อที่กำหนดไว้ในเวิร์กบุ๊กเดียวกัน ('ลิงก์ภายใน') จะถูกทำเครื่องหมายด้วยอักขระแฮชชั้นนำ:

      |_+_|

      ความคิดเห็นของเซลล์

      ความคิดเห็นของเซลล์เป็นวัตถุที่เก็บไว้ใน |_+_| อาร์เรย์ของวัตถุเซลล์ เนื้อหาจริงของความคิดเห็นแบ่งออกเป็นช่วงๆ ตามผู้เขียนความคิดเห็น |_+_| ฟิลด์ของแต่ละอ็อบเจ็กต์ความคิดเห็นคือผู้เขียนความคิดเห็นและ |_+_| field คือการแสดงข้อความธรรมดา

      ตัวอย่างเช่น ตัวอย่างต่อไปนี้จะผนวกความคิดเห็นของเซลล์ลงในเซลล์ |_+_|:

      |_+_|

      หมายเหตุ: XLSB บังคับใช้ขีดจำกัดอักขระ 54 ตัวในชื่อผู้แต่ง ชื่อที่ยาวกว่า 54 อักขระอาจทำให้เกิดปัญหากับรูปแบบอื่น

      หากต้องการทำเครื่องหมายความคิดเห็นว่าถูกซ่อนตามปกติ ให้ตั้งค่า |_+_| คุณสมบัติ:

      |_+_|

      การมองเห็นแผ่น

      Excel เปิดใช้งานการซ่อนแผ่นงานในแถบแท็บด้านล่าง ข้อมูลชีตถูกเก็บไว้ในไฟล์ แต่ UI ไม่พร้อมใช้งาน แผ่นงานที่ซ่อนอยู่มาตรฐานจะปรากฏในเมนู 'เลิกซ่อน' Excel ยังมีแผ่นงานที่ 'ซ่อนอยู่มาก' ซึ่งไม่สามารถเปิดเผยในเมนูได้ สามารถเข้าถึงได้ใน VB Editor เท่านั้น!

      การตั้งค่าการมองเห็นถูกเก็บไว้ใน |_+_| คุณสมบัติของอาร์เรย์อุปกรณ์ประกอบฉาก

      รายละเอียดเพิ่มเติม (คลิกเพื่อแสดง)

      ค่าคำนิยาม
      0มองเห็นได้
      1ที่ซ่อนอยู่
      สองซ่อนเร้นมาก

      กับ https://rawgit.com/SheetJS/test_files/HEAD/sheet_visibility.xlsx :

      |_+_|

      รูปแบบที่ไม่ใช่ Excel ไม่สนับสนุนสถานะ Very Hidden วิธีที่ดีที่สุดในการทดสอบว่ามองเห็นแผ่นงานหรือไม่ คือการตรวจสอบว่า |_+_| คุณสมบัติเป็นความจริงเชิงตรรกะ:

      |_+_|

      VBA และมาโคร

      VBA Macros ถูกจัดเก็บไว้ใน data blob พิเศษที่ถูกเปิดเผยใน |_+_| คุณสมบัติของวัตถุสมุดงานเมื่อ |_+_| ตัวเลือกคือ |_+_| รองรับใน |_+_|, |_+_| และ |_+_| รูปแบบ ตัวเขียนรูปแบบที่รองรับจะแทรก data blobs โดยอัตโนมัติหากมีอยู่ในเวิร์กบุ๊กและเชื่อมโยงกับชื่อเวิร์กชีต

      ชื่อรหัสที่กำหนดเอง (คลิกเพื่อแสดง)

      ชื่อรหัสสมุดงานถูกเก็บไว้ใน |_+_| ตามค่าเริ่มต้น Excel จะเขียน |_+_| หรือคำแปล เช่น |_+_| ชื่อรหัสแผ่นงานและแผ่นงานอยู่ในวัตถุคุณสมบัติแผ่นงานที่ |_+_| Macrosheets และ Dialogsheets จะถูกละเว้น

      ผู้อ่านและผู้เขียนจะรักษาชื่อรหัสไว้ แต่จะต้องตั้งค่าด้วยตนเองเมื่อเพิ่ม VBA blob ลงในเวิร์กบุ๊กอื่น

      Macrosheets (คลิกเพื่อแสดง)

      Excel เวอร์ชันเก่ายังสนับสนุนประเภทชีต 'มาโครชีต' ที่ไม่ใช่ VBA ซึ่งจัดเก็บคำสั่งการทำงานอัตโนมัติ สิ่งเหล่านี้ถูกเปิดเผยในวัตถุด้วย |_+_| ตั้งค่าคุณสมบัติเป็น |_+_|

      การตรวจจับมาโครในสมุดงาน (คลิกเพื่อแสดง)

      |_+_| ฟิลด์จะถูกตั้งค่าเมื่อมีมาโครเท่านั้น ดังนั้นการทดสอบจึงเป็นเรื่องง่าย:

      |_+_|

      ตัวเลือกการแยกวิเคราะห์

      การส่งออก |_+_| และ |_+_| ฟังก์ชั่นยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| การเข้ารหัสข้อมูลอินพุต (ดูประเภทอินพุตด้านล่าง)
      |_+_|เท็จถ้าเป็นจริง การแยกวิเคราะห์ข้อความธรรมดาจะไม่แยกวิเคราะห์ค่า **
      |_+_| หากระบุไว้ ให้ใช้โค้ดเพจตามความเหมาะสม **
      |_+_|จริงบันทึกสูตรลงในช่อง .f
      |_+_|จริงแยกวิเคราะห์ Rich Text และบันทึก HTML ลงใน |_+_| สนาม
      |_+_|เท็จบันทึกสตริงรูปแบบตัวเลขลงใน |_+_| สนาม
      |_+_|เท็จบันทึกข้อมูลรูปแบบ/ธีมไปที่ |_+_| สนาม
      |_+_|จริงสร้างข้อความที่จัดรูปแบบไปยัง |_+_| สนาม
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_| หากระบุไว้ ให้ใช้สตริงสำหรับรหัสวันที่ 14 **
      |_+_|เท็จสร้างวัตถุเซลล์ประเภท |_+_| สำหรับเซลล์ต้นขั้ว
      |_+_|0ถ้า >0 อ่านตัวแรก |_+_| แถว **
      |_+_|เท็จถ้าเป็นจริง ให้แยกวิเคราะห์ลูกโซ่การคำนวณ
      |_+_|เท็จหากเป็น true ให้เพิ่มไฟล์ raw ไปที่ book object **
      |_+_|เท็จหากเป็นจริง ให้แยกวิเคราะห์ให้เพียงพอเพื่อรับข้อมูลเมตาของหนังสือ **
      |_+_|เท็จถ้าจริง ให้แยกพอได้ชื่อชีต
      |_+_|เท็จถ้าเป็นจริง ให้คัดลอก VBA blob ไปที่ |_+_| สนาม **
      |_+_|''หากกำหนดและเข้ารหัสไฟล์แล้ว ให้ใช้รหัสผ่าน **
      |_+_|เท็จหากเป็นจริง ให้แสดงข้อผิดพลาดเกี่ยวกับคุณสมบัติของไฟล์ที่ไม่คาดคิด **
      |_+_| หากกำหนด ให้แยกเฉพาะแผ่นที่ระบุ **
      |_+_|เท็จถ้าเป็นจริง อนุญาตให้แยกวิเคราะห์ไฟล์ PRN **
      |_+_|เท็จถ้าจริงก็เก็บ |_+_| คำนำหน้าในสูตร **
      |_+_| แทนที่ตัวคั่นฟิลด์ DSV
      • แม้ว่า |_+_| เป็นเท็จ ข้อความที่จัดรูปแบบจะถูกสร้างขึ้นและบันทึกใน |_+_|
      • ในบางกรณี แผ่นงานอาจถูกแยกวิเคราะห์แม้ว่า |_+_| เป็นเท็จ
      • Excel พยายามตีความค่าจาก CSV และข้อความธรรมดาอื่นๆ อย่างจริงจัง นี้นำไปสู่พฤติกรรมที่น่าแปลกใจ! |_+_| ตัวเลือกระงับการแยกวิเคราะห์ค่า
      • |_+_| และ |_+_| รวมกันเพื่อให้ข้อมูลทั้งสองชุด
      • |_+_| จะเป็นวัตถุว่างถ้า |_+_| เป็นเท็จ
      • |_+_| พฤติกรรมขึ้นอยู่กับประเภทไฟล์:
        • |_+_| อาร์เรย์ (เส้นทางใน ZIP) สำหรับรูปแบบที่ใช้ ZIP
        • |_+_| แฮช (เส้นทางการแมปไปยังวัตถุที่เป็นตัวแทนของไฟล์) สำหรับ ZIP
        • |_+_| วัตถุสำหรับรูปแบบโดยใช้คอนเทนเนอร์ CFB
      • |_+_| แถวจะถูกสร้างขึ้นเมื่อดูที่เอาต์พุตออบเจ็กต์ JSON (เนื่องจากแถวส่วนหัวถูกนับเป็นแถวเมื่อแยกวิเคราะห์ข้อมูล)
      • ตามค่าเริ่มต้น แผ่นงานทั้งหมดจะถูกแยกวิเคราะห์ |_+_| จำกัดตามประเภทอินพุต:
        • number: ดัชนีศูนย์ของแผ่นงานที่จะแยกวิเคราะห์ (|_+_| เป็นแผ่นงานแรก)
        • string: ชื่อของแผ่นงานที่จะแยกวิเคราะห์ (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่)
        • อาร์เรย์ของตัวเลขและสตริงเพื่อเลือกหลายแผ่นงาน
      • |_+_| เพียงเปิดเผยวัตถุ VBA CFB ดิบ มันไม่ได้แยกวิเคราะห์ข้อมูล XLSM และ XLSB เก็บวัตถุ VBA CFB ใน |_+_| BIFF8 XLS จะผสมรายการ VBA ควบคู่ไปกับรายการเวิร์กบุ๊กหลัก ดังนั้นไลบรารีจึงสร้าง Blob ที่เข้ากันได้กับ XLSB ใหม่จากคอนเทนเนอร์ XLS CFB
      • |_+_| ใช้กับไฟล์ BIFF2 - BIFF5 ที่ไม่มี |_+_| บันทึกและไปยังไฟล์ CSV ที่ไม่มี BOM ใน |_+_| BIFF8 XLS มีค่าเริ่มต้นเป็น 1200 เสมอ
      • |_+_| มีผลกับการแยกวิเคราะห์ไฟล์ข้อความโดยไม่มีอักขระตัวคั่นร่วม
      • ปัจจุบันรองรับการเข้ารหัส XOR เท่านั้น ข้อผิดพลาดที่ไม่รองรับจะถูกส่งออกไปสำหรับไฟล์ที่ใช้วิธีการเข้ารหัสอื่น
      • ฟังก์ชัน Excel ที่ใหม่กว่าจะถูกจัดลำดับด้วย |_+_| คำนำหน้าซ่อนจากผู้ใช้ SheetJS จะดึง |_+_| โดยทั่วไป. |_+_| ตัวเลือกจะรักษาไว้
      • WTF มีไว้เพื่อการพัฒนาเป็นหลัก โดยค่าเริ่มต้น parser จะระงับข้อผิดพลาดในการอ่านบนเวิร์กชีตเดียว ช่วยให้คุณอ่านจากเวิร์กชีตที่แยกวิเคราะห์ได้อย่างถูกต้อง การตั้งค่า |_+_| บังคับให้ข้อผิดพลาดเหล่านั้นถูกโยนทิ้งไป

      ประเภทอินพุต

      สตริงสามารถตีความได้หลายวิธี |_+_| พารามิเตอร์สำหรับ |_+_| บอกไลบรารีถึงวิธีแยกวิเคราะห์อาร์กิวเมนต์ข้อมูล:

      |_+_|ข้อมูลที่คาดหวัง
      |_+_|สตริง: การเข้ารหัส Base64 ของไฟล์
      |_+_|สตริง: สตริงไบนารี (ไบต์ |_+_| คือ |_+_|)
      |_+_|สตริง: สตริง JS (อักขระที่ตีความว่าเป็น UTF8)
      |_+_|nodejs บัฟเฟอร์
      |_+_|อาร์เรย์: อาร์เรย์ของ int ที่ไม่ได้ลงชื่อ 8 บิต (ไบต์ |_+_| คือ |_+_|)
      |_+_|string: เส้นทางของไฟล์ที่จะอ่าน (nodejs เท่านั้น)

      เดาประเภทไฟล์

      รายละเอียดการใช้งาน (คลิกเพื่อแสดง)

      Excel และเครื่องมือสเปรดชีตอื่นๆ จะอ่านสองสามไบต์แรกและใช้การวิเคราะห์พฤติกรรมอื่นๆ เพื่อกำหนดประเภทไฟล์ ซึ่งช่วยให้สามารถเล่นไฟล์ประเภท: เปลี่ยนชื่อไฟล์ด้วย |_+_| นามสกุลจะบอกให้คอมพิวเตอร์ของคุณใช้ Excel เพื่อเปิดไฟล์ แต่ Excel จะรู้วิธีจัดการกับมัน ห้องสมุดนี้ใช้ตรรกะที่คล้ายกัน:

      ไบต์ 0ประเภทไฟล์ดิบประเภทสเปรดชีต
      |_+_|คอนเทนเนอร์ CFBBIFF 5/8 หรือ XLSX/XLSB ที่ได้รับการป้องกัน หรือ WQ3/QPW หรือ XLR
      |_+_|BIFF สตรีมBIFF 2/3/4/5
      |_+_|XML/HTMLSpreadsheetML / Flat ODS / UOS1 / HTML / ข้อความธรรมดา
      |_+_|ZIP ArchiveXLSB หรือ XLSX/M หรือ ODS หรือ UOS2 หรือข้อความธรรมดา
      |_+_|ข้อความธรรมดาSYLK หรือข้อความธรรมดา
      |_+_|ข้อความธรรมดาDIF หรือข้อความธรรมดา
      |_+_|เข้ารหัส UTF8 แล้วSpreadsheetML / Flat ODS / UOS1 / HTML / ข้อความธรรมดา
      |_+_|เข้ารหัส UTF16 แล้วSpreadsheetML / Flat ODS / UOS1 / HTML / ข้อความธรรมดา
      |_+_|บันทึกสตรีมLotus WK* หรือ Quattro Pro หรือข้อความธรรมดา
      |_+_|ข้อความธรรมดาRTF หรือข้อความธรรมดา
      |_+_|ข้อความธรรมดาSpreadsheetML / Flat ODS / UOS1 / HTML / ข้อความธรรมดา
      |_+_|ข้อความธรรมดาSpreadsheetML / Flat ODS / UOS1 / HTML / ข้อความธรรมดา
      |_+_|ข้อความธรรมดาSpreadsheetML / Flat ODS / UOS1 / HTML / ข้อความธรรมดา

      ตรวจพบไฟล์ DBF ตามไบต์แรกเช่นเดียวกับไบต์ที่สามและสี่ (ตรงกับเดือนและวันที่ของไฟล์)

      ตรวจพบการทำงานสำหรับไฟล์ Windows ตามบันทึก BOF ที่มีประเภท |_+_|

      การเดารูปแบบข้อความธรรมดาจะเรียงลำดับตามลำดับความสำคัญ:

      รูปแบบทดสอบ
      XML|_+_| ปรากฏในอักขระ 1024 ตัวแรก
      HTMLเริ่มต้นด้วย |_+_| และแท็ก HTML ปรากฏในอักขระ 1024 ตัวแรก *
      XMLเริ่มต้นด้วย |_+_| และแท็กแรกถูกต้อง
      RTFเริ่มต้นด้วย |_+_|
      DSVเริ่มต้นด้วย |_+_| ตัวคั่นคืออักขระที่ระบุ
      DSVไม่มีคำพูดเพิ่มเติม `
      DSVไม่มีคำบรรยาย |_+_| ตัวอักษรมากกว่า |_+_| หรือ |_+_| ใน 1024 . แรก
      TSVไม่มีคำบรรยาย |_+_| ตัวอักษรมากกว่า |_+_| ตัวอักษรใน 1024 . แรก
      CSVหนึ่งใน 1024 อักขระแรกคือเครื่องหมายจุลภาค |_+_|
      ผลประโยชน์ทับซ้อนเริ่มต้นด้วย |_+_|
      PRN|_+_| ตั้งค่าตัวเลือกเป็น true
      CSV(รั้งท้าย)
      • แท็ก HTML ประกอบด้วย: |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_|

      เหตุใดไฟล์ข้อความแบบสุ่มจึงใช้ได้ (คลิกเพื่อแสดง)

      Excel มีความก้าวร้าวอย่างมากในการอ่านไฟล์ การเพิ่มส่วนขยาย XLS ลงในไฟล์ข้อความที่แสดง (โดยที่อักขระเพียงตัวเดียวคืออักขระแสดง ANSI) ทำให้ Excel คิดว่าไฟล์ดังกล่าวอาจเป็นไฟล์ CSV หรือ TSV แม้ว่าจะเป็นเพียงคอลัมน์เดียวก็ตาม! ไลบรารีนี้พยายามจำลองลักษณะการทำงานนั้น

      วิธีที่ดีที่สุดคือการตรวจสอบเวิร์กชีตที่ต้องการและให้แน่ใจว่ามีจำนวนแถวหรือคอลัมน์ที่คาดไว้ การแยกช่วงนั้นง่ายมาก:

      |_+_|

      ตัวเลือกการเขียน

      การส่งออก |_+_| และ |_+_| ฟังก์ชั่นยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| การเข้ารหัสข้อมูลเอาต์พุต (ดูประเภทเอาต์พุตด้านล่าง)
      |_+_||_+_|เก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_||_+_|สร้างตารางสตริงที่ใช้ร่วมกัน **
      |_+_||_+_|ประเภทของสมุดงาน (ดูด้านล่างสำหรับรูปแบบที่รองรับ)
      |_+_||_+_|ชื่อเวิร์กชีตสำหรับรูปแบบแผ่นเดียว **
      |_+_||_+_|ใช้การบีบอัดไฟล์ ZIP สำหรับรูปแบบไฟล์ ZIP **
      |_+_| แทนที่คุณสมบัติของเวิร์กบุ๊กเมื่อเขียน **
      |_+_| แทนที่ XML ของธีมเมื่อเขียน XLSX/XLSB/XLSM **
      |_+_||_+_|ระงับข้อผิดพลาด 'ตัวเลขเป็นข้อความ' **
      • |_+_| ช้ากว่าและใช้หน่วยความจำมากกว่า แต่มีความเข้ากันได้ดีกว่ากับ iOS Numbers เวอร์ชันเก่า
      • ข้อมูลดิบเป็นสิ่งเดียวที่รับประกันว่าจะได้รับการบันทึก คุณลักษณะที่ไม่ได้อธิบายไว้ใน README นี้อาจไม่ได้รับการจัดลำดับ
      • |_+_| ใช้กับเอาต์พุต XLSX เท่านั้นและไม่รับประกันว่าจะทำงานกับผู้อ่านบุคคลที่สาม ปกติ Excel จะไม่เขียนเซลล์ด้วยประเภท |_+_| ดังนั้นเครื่องมือที่ไม่ใช่ของ Excel อาจเพิกเฉยต่อข้อมูลหรือข้อผิดพลาดในการแสดงวันที่
      • |_+_| เป็นวัตถุที่สะท้อนสมุดงาน |_+_| สนาม. ดูตารางจากคุณสมบัติของไฟล์สมุดงาน
      • หากระบุไว้ สตริงจาก |_+_| จะถูกบันทึกเป็นธีมหลักสำหรับไฟล์ XLSX/XLSB/XLSM (เป็น |_+_| ใน ZIP)
      • เนื่องจากข้อบกพร่องในโปรแกรม คุณลักษณะบางอย่าง เช่น 'ข้อความเป็นคอลัมน์' จะทำให้ Excel ขัดข้องในเวิร์กชีตที่เงื่อนไขข้อผิดพลาดถูกละเว้น ผู้เขียนจะทำเครื่องหมายไฟล์เพื่อละเว้นข้อผิดพลาดโดยค่าเริ่มต้น ตั้ง |_+_| ถึง |_+_| เพื่อปราบปราม

      รองรับรูปแบบเอาต์พุต

      สำหรับความเข้ากันได้อย่างกว้างขวางกับเครื่องมือของบริษัทอื่น ไลบรารีนี้สนับสนุนรูปแบบเอาต์พุตมากมาย ประเภทไฟล์เฉพาะถูกควบคุมด้วย |_+_| ตัวเลือก:

      |_+_|นามสกุลไฟล์คอนเทนเนอร์แผ่นคำอธิบาย
      |_+_||_+_|ZIPหลายรูปแบบ Excel 2007+ XML
      |_+_||_+_|ZIPหลายExcel 2007+ รูปแบบ Macro XML
      |_+_||_+_|ZIPหลายExcel 2007+ รูปแบบไบนารี
      |_+_||_+_|CFBหลายรูปแบบสมุดงาน Excel 97-2004
      |_+_||_+_|CFBหลายรูปแบบสมุดงาน Excel 5.0/95
      |_+_||_+_|ไม่มีเดี่ยวรูปแบบแผ่นงาน Excel 4.0
      |_+_||_+_|ไม่มีเดี่ยวรูปแบบแผ่นงาน Excel 3.0
      |_+_||_+_|ไม่มีเดี่ยวรูปแบบแผ่นงาน Excel 2.0
      |_+_||_+_|ไม่มีหลายExcel 2003-2004 (สเปรดชีตML)
      |_+_||_+_|ZIPหลายสเปรดชีต OpenDocument
      |_+_||_+_|ไม่มีหลายสเปรดชีต OpenDocument แบบเรียบ
      |_+_||_+_|ไม่มีเดี่ยวสมุดงานโลตัส (WK3)
      |_+_||_+_|ไม่มีเดี่ยวค่าที่คั่นด้วยจุลภาค
      |_+_||_+_|ไม่มีเดี่ยวข้อความ Unicode UTF-16 (TXT)
      |_+_||_+_|ไม่มีเดี่ยวลิงค์สัญลักษณ์ (SYLK)
      |_+_||_+_|ไม่มีเดี่ยวเอกสาร HTML
      |_+_||_+_|ไม่มีเดี่ยวรูปแบบการแลกเปลี่ยนข้อมูล (DIF)
      |_+_||_+_|ไม่มีเดี่ยวdBASE II + ส่วนขยาย VFP (DBF)
      |_+_||_+_|ไม่มีเดี่ยวใบงานโลตัส (WK1)
      |_+_||_+_|ไม่มีเดี่ยวรูปแบบ Rich Text (RTF)
      |_+_||_+_|ไม่มีเดี่ยวข้อความที่จัดรูปแบบโลตัส
      |_+_||_+_|ไม่มีเดี่ยวรูปแบบบันทึก Ethercalc (ETH)
      • |_+_| ใช้กับรูปแบบที่มีคอนเทนเนอร์ ZIP เท่านั้น
      • รูปแบบที่รองรับแผ่นงานเดียวต้องใช้ |_+_| ตัวเลือกระบุแผ่นงาน ถ้าสตริงว่างเปล่า จะใช้แผ่นงานแรก
      • |_+_| จะเดารูปแบบไฟล์เอาต์พุตโดยอัตโนมัติตามนามสกุลไฟล์หาก |_+_| ไม่ได้ระบุไว้ มันจะเลือกรูปแบบแรกในตารางดังกล่าวที่ตรงกับนามสกุล

      ประเภทเอาต์พุต

      |_+_| อาร์กิวเมนต์สำหรับ |_+_| สะท้อน |_+_| อาร์กิวเมนต์สำหรับ |_+_|:

      |_+_|ผลผลิต
      |_+_|สตริง: การเข้ารหัส Base64 ของไฟล์
      |_+_|สตริง: สตริงไบนารี (ไบต์ |_+_| คือ |_+_|)
      |_+_|สตริง: สตริง JS (อักขระที่ตีความว่าเป็น UTF8)
      |_+_|nodejs บัฟเฟอร์
      |_+_|ArrayBuffer อาร์เรย์สำรองของ int . ที่ไม่ได้ลงชื่อ 8 บิต
      |_+_|string: เส้นทางของไฟล์ที่จะถูกสร้างขึ้น (nodejs เท่านั้น)

      ฟังก์ชั่นยูทิลิตี้

      |_+_| ฟังก์ชันยอมรับเวิร์กชีตและออบเจ็กต์ตัวเลือกเสริม

      |_+_| ฟังก์ชันยอมรับออบเจ็กต์ข้อมูลและออบเจ็กต์ตัวเลือกเสริม

      ตัวอย่างจะขึ้นอยู่กับแผ่นงานต่อไปนี้:

      |_+_|

      อาร์เรย์ของอินพุตอาร์เรย์

      |_+_| รับอาร์เรย์ของอาร์เรย์ของค่า JS และส่งคืนเวิร์กชีตที่คล้ายกับข้อมูลที่ป้อน ตัวเลข บูลีน และสตริงจะถูกจัดเก็บในรูปแบบที่สอดคล้องกัน วันที่จะถูกเก็บไว้เป็นวันที่หรือตัวเลข หลุมอาเรย์และชัดเจน |_+_| ค่าจะถูกข้าม |_+_| ค่าอาจจะสะดุด ค่าอื่นๆ ทั้งหมดจะถูกเก็บไว้เป็นสตริง ฟังก์ชันรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_|เท็จสร้างวัตถุเซลล์ประเภท |_+_| สำหรับ |_+_| ค่า
      |_+_|เท็จถ้าเป็นจริงให้ปล่อย |_+_| เซลล์ข้อผิดพลาดสำหรับ |_+_| ค่า

      ตัวอย่าง (คลิกเพื่อแสดง)

      ในการสร้างแผ่นงานตัวอย่าง:

      |_+_|

      |_+_| รับอาร์เรย์ของค่า JS และอัปเดตวัตถุเวิร์กชีตที่มีอยู่ มันเป็นไปตามกระบวนการเดียวกับ |_+_| และยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_|เท็จสร้างวัตถุเซลล์ประเภท |_+_| สำหรับ |_+_| ค่า
      |_+_|เท็จถ้าเป็นจริงให้ปล่อย |_+_| เซลล์ข้อผิดพลาดสำหรับ |_+_| ค่า
      |_+_| ใช้เซลล์ที่ระบุเป็นจุดเริ่มต้น (ดูด้านล่าง)

      |_+_| คาดว่าจะเป็นหนึ่งใน:

      |_+_|คำอธิบาย
      (วัตถุเซลล์)ใช้เซลล์ที่ระบุ (วัตถุเซลล์)
      (สตริง)ใช้เซลล์ที่ระบุ (เซลล์สไตล์ A1)
      (ตัวเลข >= 0)เริ่มจากคอลัมน์แรกที่แถวที่ระบุ (ดัชนี 0 รายการ)
      -1ต่อท้ายแผ่นงานโดยเริ่มจากคอลัมน์แรก
      (ค่าเริ่มต้น)เริ่มจากเซลล์ A1

      ตัวอย่าง (คลิกเพื่อแสดง)

      พิจารณาแผ่นงาน:

      |_+_|

      แผ่นงานนี้สามารถสร้างขึ้นตามลำดับ |_+_|:

      |_+_|

      อาร์เรย์ของออบเจ็กต์อินพุต

      |_+_| รับอาร์เรย์ของออบเจ็กต์และส่งคืนเวิร์กชีตที่มี 'ส่วนหัว' ที่สร้างขึ้นโดยอัตโนมัติตามคีย์ของออบเจ็กต์ ลำดับคอลัมน์เริ่มต้นจะถูกกำหนดโดยการปรากฏตัวครั้งแรกของฟิลด์โดยใช้ |_+_| ฟังก์ชันยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| ใช้ลำดับฟิลด์ที่ระบุ (ค่าเริ่มต้น |_+_|) **
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_|เท็จถ้าเป็นจริง อย่ารวมแถวส่วนหัวในเอาต์พุต
      |_+_|เท็จถ้าเป็นจริงให้ปล่อย |_+_| เซลล์ข้อผิดพลาดสำหรับ |_+_| ค่า
      • ฟิลด์ทั้งหมดจากแต่ละแถวจะถูกเขียน ถ้า |_+_| เป็นอาร์เรย์และไม่มีฟิลด์เฉพาะ คีย์จะถูกผนวกเข้ากับอาร์เรย์
      • ประเภทเซลล์จะอนุมานจากประเภทของแต่ละค่า ตัวอย่างเช่น |_+_| วัตถุจะสร้างเซลล์วันที่ในขณะที่สตริงจะสร้างเซลล์ข้อความ
      • ค่า Null จะถูกข้ามไปโดยค่าเริ่มต้น ถ้า |_+_| เป็นจริง เซลล์ข้อผิดพลาดที่สอดคล้องกับ |_+_| จะถูกเขียนลงในใบงาน

      ตัวอย่าง (คลิกเพื่อแสดง)

      ไม่สามารถทำซ้ำแผ่นงานต้นฉบับโดยใช้วัตถุธรรมดาได้ เนื่องจากคีย์วัตถุ JS ต้องไม่ซ้ำกัน หลังจากเปลี่ยนอันที่สอง |_+_| และ |_+_| กับ |_+_| และ |_+_|:

      |_+_|

      อีกวิธีหนึ่ง สามารถข้ามแถวส่วนหัวได้:

      |_+_|

      |_+_| รับอาร์เรย์ของออบเจ็กต์และอัปเดตออบเจ็กต์เวิร์กชีตที่มีอยู่ มันเป็นไปตามกระบวนการเดียวกับ |_+_| และยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| ใช้ลำดับคอลัมน์ที่ระบุ (ค่าเริ่มต้น |_+_|)
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_|เท็จถ้าเป็นจริง อย่ารวมแถวส่วนหัวในเอาต์พุต
      |_+_|เท็จถ้าเป็นจริงให้ปล่อย |_+_| เซลล์ข้อผิดพลาดสำหรับ |_+_| ค่า
      |_+_| ใช้เซลล์ที่ระบุเป็นจุดเริ่มต้น (ดูด้านล่าง)

      |_+_| คาดว่าจะเป็นหนึ่งใน:

      |_+_|คำอธิบาย
      (วัตถุเซลล์)ใช้เซลล์ที่ระบุ (วัตถุเซลล์)
      (สตริง)ใช้เซลล์ที่ระบุ (เซลล์สไตล์ A1)
      (ตัวเลข >= 0)เริ่มจากคอลัมน์แรกที่แถวที่ระบุ (ดัชนี 0 รายการ)
      -1ต่อท้ายแผ่นงานโดยเริ่มจากคอลัมน์แรก
      (ค่าเริ่มต้น)เริ่มจากเซลล์ A1

      ตัวอย่าง (คลิกเพื่อแสดง)

      พิจารณาแผ่นงาน:

      |_+_|

      แผ่นงานนี้สามารถสร้างขึ้นตามลำดับ |_+_|:

      |_+_|

      อินพุตตาราง HTML

      |_+_| รับองค์ประกอบ DOM ของตารางและส่งคืนเวิร์กชีตที่คล้ายกับตารางอินพุต ตัวเลขจะถูกแยกวิเคราะห์ ข้อมูลอื่นๆ ทั้งหมดจะถูกจัดเก็บเป็นสตริง

      |_+_| สร้างสมุดงานขั้นต่ำตามแผ่นงาน

      แฟล็กคุณสมบัติการกำหนดค่าแอพ Azure

      ฟังก์ชันทั้งสองยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| ถ้าเป็นจริง ทุกเซลล์จะเก็บสตริงดิบ
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_|0ถ้า >0 อ่านตัวแรก |_+_| แถวโต๊ะ
      |_+_|เท็จถ้าเป็นจริง แถวและเซลล์ที่ซ่อนอยู่จะไม่ถูกแยกวิเคราะห์

      ตัวอย่าง (คลิกเพื่อแสดง)

      ในการสร้างแผ่นงานตัวอย่าง ให้เริ่มต้นด้วยตาราง HTML:

      |_+_|

      ในการประมวลผลตาราง:

      |_+_|

      หมายเหตุ: |_+_| สามารถจัดการ HTML ที่แสดงเป็นสตริงได้

      |_+_| รับองค์ประกอบ DOM ของตารางและอัปเดตวัตถุเวิร์กชีตที่มีอยู่ มันเป็นไปตามกระบวนการเดียวกับ |_+_| และยอมรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| ถ้าเป็นจริง ทุกเซลล์จะเก็บสตริงดิบ
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จเก็บวันที่ตามแบบ |_+_| (ค่าเริ่มต้นคือ |_+_|)
      |_+_|0ถ้า >0 อ่านตัวแรก |_+_| แถวโต๊ะ
      |_+_|เท็จถ้าเป็นจริง แถวและเซลล์ที่ซ่อนอยู่จะไม่ถูกแยกวิเคราะห์

      |_+_| คาดว่าจะเป็นหนึ่งใน:

      |_+_|คำอธิบาย
      (วัตถุเซลล์)ใช้เซลล์ที่ระบุ (วัตถุเซลล์)
      (สตริง)ใช้เซลล์ที่ระบุ (เซลล์สไตล์ A1)
      (ตัวเลข >= 0)เริ่มจากคอลัมน์แรกที่แถวที่ระบุ (ดัชนี 0 รายการ)
      -1ต่อท้ายแผ่นงานโดยเริ่มจากคอลัมน์แรก
      (ค่าเริ่มต้น)เริ่มจากเซลล์ A1

      ตัวอย่าง (คลิกเพื่อแสดง)

      ฟังก์ชันตัวช่วยขนาดเล็กสามารถสร้างช่องว่างระหว่างตารางได้:

      |_+_|

      ผลลัพธ์ของสูตร

      |_+_| สร้างอาร์เรย์ของคำสั่งที่แสดงวิธีที่บุคคลจะป้อนข้อมูลลงในแอปพลิเคชัน แต่ละรายการอยู่ในรูปแบบ |_+_| ตัวอักษรสตริงนำหน้าด้วย |_+_| ตามเอกเซล

      ตัวอย่าง (คลิกเพื่อแสดง)

      สำหรับแผ่นงานตัวอย่าง:

      |_+_|

      เอาต์พุตที่คั่นด้วยตัวคั่น

      เป็นทางเลือกแทน |_+_| ประเภท CSV |_+_| ยังสร้างเอาต์พุต CSV ฟังก์ชันรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_||_+_|'ตัวคั่นฟิลด์' ตัวคั่นระหว่างฟิลด์
      |_+_||_+_|'ตัวคั่นเรกคอร์ด' ตัวคั่นระหว่างแถว
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_|เท็จลบตัวคั่นฟิลด์ต่อท้ายในแต่ละเร็กคอร์ด **
      |_+_|จริงรวมบรรทัดว่างในเอาต์พุต CSV
      |_+_|เท็จข้ามแถว/คอลัมน์ที่ซ่อนอยู่ในเอาต์พุต CSV
      |_+_|เท็จบังคับราคารอบสนาม
      • |_+_| จะลบเครื่องหมายจุลภาคต่อท้ายออกจากแต่ละบรรทัดภายใต้ค่าเริ่มต้น |_+_|
      • |_+_| ต้องตั้งค่าเป็น |_+_| เพื่อข้ามบรรทัดว่าง
      • ฟิลด์ที่มีเรกคอร์ดหรือตัวคั่นฟิลด์จะถูกตัดด้วยเครื่องหมายคำพูดคู่โดยอัตโนมัติ |_+_| บังคับให้เซลล์ทั้งหมดถูกห่อด้วยเครื่องหมายคำพูด

      ตัวอย่าง (คลิกเพื่อแสดง)

      สำหรับแผ่นงานตัวอย่าง:

      |_+_|

      UTF-16 Unicode Text

      |_+_| ประเภทเอาต์พุตใช้อักขระแท็บเป็นตัวคั่นฟิลด์ ถ้า |_+_| มีไลบรารี่ (รวมอยู่ในการกระจายแบบเต็ม แต่ไม่ใช่คอร์) เอาต์พุตจะถูกเข้ารหัสใน |_+_| และ BOM จะถูกนำหน้า

      |_+_| ใช้อาร์กิวเมนต์เดียวกับ |_+_|

      เอาต์พุต HTML

      เป็นทางเลือกแทน |_+_| ประเภท HTML |_+_| ยังสร้างเอาต์พุต HTML ฟังก์ชันรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_| ระบุ |_+_| แอตทริบิวต์สำหรับ |_+_| ธาตุ
      |_+_|เท็จถ้าเป็นจริง ให้ตั้งค่า |_+_| สำหรับทุกๆ TD
      |_+_| แทนที่ส่วนหัว (ค่าเริ่มต้น |_+_|)
      |_+_| แทนที่ส่วนท้าย (ค่าเริ่มต้น |_+_|)

      ตัวอย่าง (คลิกเพื่อแสดง)

      สำหรับแผ่นงานตัวอย่าง:

      |_+_|

      JSON

      |_+_| สร้างวัตถุ JS ประเภทต่างๆ ฟังก์ชันรับอาร์กิวเมนต์ตัวเลือก:

      ตัวเลือกชื่อค่าเริ่มต้นคำอธิบาย
      |_+_||_+_|ใช้ค่าดิบ (จริง) หรือสตริงที่จัดรูปแบบ (เท็จ)
      |_+_|จาก WSช่วงแทนที่ (ดูตารางด้านล่าง)
      |_+_| รูปแบบเอาต์พุตควบคุม (ดูตารางด้านล่าง)
      |_+_|FMT 14ใช้รูปแบบวันที่ที่ระบุในเอาต์พุตสตริง
      |_+_| ใช้ค่าที่ระบุแทนค่า null หรือ undefined
      |_+_|**รวมบรรทัดว่างในผลลัพธ์ **
      • |_+_| มีผลเฉพาะกับเซลล์ที่มีฟิลด์รหัสรูปแบบ (|_+_|) หรือฟิลด์ข้อความที่จัดรูปแบบ (|_+_|)
      • ถ้า |_+_| ถูกระบุ แถวแรกถือเป็นแถวข้อมูล ถ้า |_+_| ไม่ได้ระบุ แถวแรกเป็นแถวส่วนหัวและไม่ถือเป็นข้อมูล
      • เมื่อ |_+_| ไม่ได้ระบุ การแปลงจะแก้ความกำกวมรายการส่วนหัวโดยอัตโนมัติโดยติด ​​|_+_| และนับเริ่มต้นที่ |_+_| ตัวอย่างเช่น หากสามคอลัมน์มีส่วนหัว |_+_| ฟิลด์เอาต์พุตคือ |_+_|, |_+_|, |_+_|
      • |_+_| ค่าจะถูกส่งกลับเมื่อ |_+_| เป็นจริง แต่จะข้ามไปเมื่อเป็นเท็จ
      • ถ้า |_+_| ไม่ได้ระบุ ค่าว่างและค่าที่ไม่ได้กำหนดจะถูกข้ามไปตามปกติ หากระบุไว้ จุดว่างและจุดที่ไม่ได้กำหนดทั้งหมดจะถูกเติมด้วย |_+_|
      • เมื่อ |_+_| คือ |_+_| ค่าเริ่มต้นคือการสร้างแถวว่าง |_+_| ต้องตั้งค่าเป็น |_+_| เพื่อข้ามแถวว่าง
      • เมื่อ |_+_| ไม่ใช่ |_+_| ค่าเริ่มต้นคือการข้ามแถวว่าง |_+_| ต้องเป็นจริงเพื่อสร้างแถวว่าง

      |_+_| คาดว่าจะเป็นหนึ่งใน:

      |_+_|คำอธิบาย
      (ตัวเลข)ใช้ช่วงเวิร์กชีต แต่ตั้งค่าแถวเริ่มต้นเป็นค่า
      (สตริง)ใช้ช่วงที่ระบุ (สตริงช่วงที่มีขอบเขตแบบ A1)
      (ค่าเริ่มต้น)ใช้ช่วงเวิร์กชีต (|_+_|)

      |_+_| คาดว่าจะเป็นหนึ่งใน:

      |_+_|คำอธิบาย
      |_+_|สร้างอาร์เรย์ของอาร์เรย์ ('2D Array')
      |_+_|ปุ่มวัตถุแถวคือป้ายชื่อคอลัมน์ตามตัวอักษร
      อาร์เรย์ของสตริงใช้สตริงที่ระบุเป็นคีย์ในวัตถุแถว
      (ค่าเริ่มต้น)อ่านและแก้ความกำกวมแถวแรกเป็นคีย์

      หากส่วนหัวไม่ใช่ |_+_| ออบเจ็กต์แถวจะมีคุณสมบัติที่ไม่สามารถระบุได้ |_+_| ที่แสดงถึงแถวของแผ่นงานที่สอดคล้องกับรายการ

      ตัวอย่าง (คลิกเพื่อแสดง)

      สำหรับแผ่นงานตัวอย่าง:

      |_+_|

      ตัวอย่างแสดงผลของ |_+_|:

      |_+_|

      รูปแบบไฟล์

      แม้จะมีชื่อไลบรารี |_+_| แต่ก็สนับสนุนรูปแบบไฟล์สเปรดชีตมากมาย:

      รูปแบบอ่านเขียน
      รูปแบบแผ่นงาน/สมุดงาน Excel :-----::-----:
      รูปแบบ XML ของ Excel 2007+ (XLSX/XLSM)
      รูปแบบไบนารี Excel 2007+ (XLSB BIFF12)
      รูปแบบ XML ของ Excel 2003-2004 (XML 'SpreadsheetML')
      เอ็กเซล 97-2004 (XLS BIFF8)
      Excel 5.0/95 (XLS BIFF5)
      เอ็กเซล 4.0 (XLS/XLW BIFF4)
      Excel 3.0 (XLS BIFF3)
      Excel 2.0/2.1 (XLS BIFF2)
      รูปแบบข้อความที่รองรับ Excel :-----::-----:
      ค่าที่คั่นด้วยตัวคั่น (CSV/TXT)
      รูปแบบการแลกเปลี่ยนข้อมูล (DIF)
      ลิงก์สัญลักษณ์ (SYLK/SLK)
      ข้อความที่จัดรูปแบบโลตัส (PRN)
      ข้อความ Unicode UTF-16 (TXT)
      รูปแบบสมุดงาน/แผ่นงานอื่นๆ :-----::-----:
      สเปรดชีต OpenDocument (ODS)
      สเปรดชีต ODF XML แบบแบน (FODS)
      สเปรดชีตรูปแบบสำนักงานที่เหมือนกัน (UOS1 / UOS2)
      dBASE II/III/IV / Visual FoxPro (DBF)
      โลตัส 1-2-3 (WK1/WK3)
      โลตัส 1-2-3 (WKS/WK2/WK4/123)
      สเปรดชีต Quattro Pro (WQ1/WQ2/WB1/WB2/WB3/QPW)
      ทำงาน 1.x-3.x DOS / 2.x-5.x Windows Spreadsheet (WKS)
      ทำงาน 6.x-9.x สเปรดชีต (XLR)
      รูปแบบเอาต์พุตสเปรดชีตทั่วไปอื่นๆ :-----::-----:
      ตาราง HTML
      ตารางรูปแบบ Rich Text (RTF)
      รูปแบบบันทึก Ethercalc (ETH)

      คุณสมบัติที่ไม่รองรับโดยรูปแบบไฟล์ที่กำหนดจะไม่ถูกเขียนขึ้น รูปแบบที่มีขีดจำกัดช่วงจะถูกตัดให้สั้นลง:

      รูปแบบเซลล์สุดท้ายMax ColsMax Rows
      รูปแบบ XML ของ Excel 2007+ (XLSX/XLSM)XFD1048576163841048576
      รูปแบบไบนารี Excel 2007+ (XLSB BIFF12)XFD1048576163841048576
      เอ็กเซล 97-2004 (XLS BIFF8)IV6553625665536
      Excel 5.0/95 (XLS BIFF5)IV1638425616384
      เอ็กเซล 4.0 (XLS BIFF4)IV1638425616384
      Excel 3.0 (XLS BIFF3)IV1638425616384
      Excel 2.0/2.1 (XLS BIFF2)IV1638425616384
      โลตัส 1-2-3 R2 - R5 (WK1/WK3/WK4)IV81922568192
      โลตัส 1-2-3 R1 (WKS)IV20482562048

      ขีดจำกัดช่วง Excel 2003 SpreadsheetML ถูกควบคุมโดยเวอร์ชันของ Excel และไม่ได้บังคับใช้โดยตัวเขียน

      javascript หากเลือกช่องทำเครื่องหมาย

      Excel 2007+ XML (XLSX/XLSM)

      (คลิกเพื่อแสดง)

      ไฟล์ XLSX และ XLSM เป็นคอนเทนเนอร์ ZIP ที่มีชุดไฟล์ XML ตาม Open Packaging Conventions (OPC) รูปแบบ XLSM ซึ่งเกือบจะเหมือนกับ XLSX นั้นใช้สำหรับไฟล์ที่มีมาโคร

      รูปแบบนี้เป็นมาตรฐานใน ECMA-376 และใหม่กว่าใน ISO/IEC 29500 Excel ไม่เป็นไปตามข้อกำหนด และมีเอกสารเพิ่มเติมที่อธิบายวิธีที่ Excel เบี่ยงเบนไปจากข้อกำหนด

      Excel 2.0-95 (BIFF2/BIFF3/BIFF4/BIFF5)

      (คลิกเพื่อแสดง)

      BIFF 2/3 XLS เป็นสตรีมแผ่นเดียวของระเบียนไบนารี Excel 4 แนะนำแนวคิดของเวิร์กบุ๊ก (|_+_| ไฟล์) แต่ยังมีชีตเดียว |_+_| รูปแบบ. โครงสร้างส่วนใหญ่คล้ายกับรูปแบบไฟล์ Lotus 1-2-3 BIFF5/8/12 ขยายรูปแบบในรูปแบบต่างๆ แต่ส่วนใหญ่ติดอยู่กับรูปแบบบันทึกเดียวกัน

      ไม่มีข้อกำหนดอย่างเป็นทางการสำหรับรูปแบบเหล่านี้ Excel 95 สามารถเขียนไฟล์ในรูปแบบเหล่านี้ได้ ดังนั้นความยาวของบันทึกและฟิลด์จึงถูกกำหนดโดยการเขียนในรูปแบบที่รองรับทั้งหมดและเปรียบเทียบไฟล์ Excel 2016 สามารถสร้างไฟล์ BIFF5 ได้ ทำให้สามารถทดสอบไฟล์ได้เต็มรูปแบบตั้งแต่ XLSX หรือ BIFF2

      Excel 97-2004 ไบนารี (BIFF8)

      (คลิกเพื่อแสดง)

      BIFF8 ใช้เฉพาะรูปแบบคอนเทนเนอร์ไบนารีไฟล์แบบผสม โดยแยกเนื้อหาบางส่วนออกเป็นสตรีมภายในไฟล์ แกนหลักยังคงใช้รูปแบบบันทึกไบนารีเวอร์ชันขยายจาก BIFF เวอร์ชันเก่า

      |_+_| ข้อมูลจำเพาะครอบคลุมพื้นฐานของรูปแบบไฟล์ และข้อกำหนดอื่นๆ จะขยายไปสู่การทำให้เป็นอนุกรมของคุณสมบัติ เช่น คุณสมบัติ

      Excel 2003-2004 (สเปรดชีตML)

      (คลิกเพื่อแสดง)

      ไฟล์ SpreadsheetML เวอร์ชันก่อน XLSX เป็นไฟล์ XML อย่างง่าย ไม่มีข้อกำหนดที่เป็นทางการและครอบคลุม แม้ว่า MS ได้เผยแพร่เอกสารเกี่ยวกับรูปแบบแล้ว เนื่องจาก Excel 2016 สามารถสร้างไฟล์ SpreadsheetML ได้ คุณลักษณะการทำแผนที่จึงค่อนข้างตรงไปตรงมา

      Excel 2007+ ไบนารี (XLSB, BIFF12)

      (คลิกเพื่อแสดง)

      เปิดตัวควบคู่ไปกับ XLSX รูปแบบ XLSB รวมสถาปัตยกรรม BIFF กับการแยกเนื้อหาและคอนเทนเนอร์ ZIP ของ XLSX สำหรับโหนดส่วนใหญ่ในไฟล์ย่อย XLSX สามารถจับคู่กับระเบียน XLSB ในไฟล์ย่อยที่เกี่ยวข้องได้

      |_+_| ข้อมูลจำเพาะครอบคลุมพื้นฐานของรูปแบบไฟล์ และข้อกำหนดอื่นๆ จะขยายไปสู่การทำให้เป็นอนุกรมของคุณสมบัติ เช่น คุณสมบัติ

      ค่าที่คั่นด้วยตัวคั่น (CSV/TXT)

      (คลิกเพื่อแสดง)

      Excel CSV เบี่ยงเบนจาก RFC4180 ด้วยวิธีที่สำคัญหลายประการ ไฟล์ CSV ที่สร้างขึ้นโดยทั่วไปควรทำงานใน Excel แม้ว่าอาจไม่ทำงานในโปรแกรมอ่านที่เข้ากันได้กับ RFC4180 โปรแกรมแยกวิเคราะห์ควรเข้าใจ Excel CSV โดยทั่วไป ผู้เขียนจะสร้างเซลล์ในเชิงรุกสำหรับสูตรหากไม่มีค่า

      Excel TXT ใช้แท็บเป็นตัวคั่นและหน้าโค้ด 1200

      หมายเหตุ:

      • เช่นเดียวกับใน Excel ไฟล์ที่ขึ้นต้นด้วย |_+_| จะถือว่าเป็นไฟล์ Symbolic Link ต่างจาก Excel หากไฟล์ไม่มีส่วนหัว SYLK ที่ถูกต้อง ไฟล์นั้นจะถูกตีความใหม่ในเชิงรุกเป็น CSV มีไฟล์บางไฟล์ที่มีตัวคั่นอัฒภาคที่สอดคล้องกับไฟล์ SYLK ที่ถูกต้อง เพื่อความเข้ากันได้อย่างกว้างที่สุด ทุกเซลล์ที่มีค่า |_+_| จะถูกห่อด้วยเครื่องหมายคำพูดคู่โดยอัตโนมัติ

      รูปแบบสมุดงานอื่นๆ

      (คลิกเพื่อแสดง)

      การสนับสนุนสำหรับรูปแบบอื่นๆ มักจะห่างไกลจากการสนับสนุน XLS/XLSB/XLSX เนื่องจากส่วนใหญ่ขาดเอกสารที่เปิดเผยต่อสาธารณะ ไฟล์ทดสอบถูกสร้างขึ้นในแอพที่เกี่ยวข้อง และเปรียบเทียบกับการส่งออก XLS เพื่อกำหนดโครงสร้าง จุดสนใจหลักคือการดึงข้อมูล

      โลตัส 1-2-3 (WKS/WK1/WK2/WK3/WK4/123)

      (คลิกเพื่อแสดง)

      รูปแบบ Lotus ประกอบด้วยระเบียนไบนารีที่คล้ายกับโครงสร้าง BIFF Lotus ได้เผยแพร่ข้อกำหนดเมื่อหลายสิบปีก่อนซึ่งครอบคลุมรูปแบบ WK1 ดั้งเดิม คุณสมบัติอื่นๆ ถูกอนุมานโดยการสร้างไฟล์และเปรียบเทียบกับการรองรับของ Excel

      แผ่นงาน WK1 ที่สร้างขึ้นเข้ากันได้กับ Lotus 1-2-3 R2 และ Excel 5.0

      เวิร์กบุ๊ก WK3 ที่สร้างขึ้นนั้นเข้ากันได้กับ Lotus 1-2-3 R9 และ Excel 5.0

      ควอทโทร โปร (WQ1/WQ2/WB1/WB2/WB3/QPW)

      (คลิกเพื่อแสดง)

      รูปแบบ Quattro Pro ใช้ไบนารีเร็กคอร์ดในลักษณะเดียวกับ BIFF และ Lotus รูปแบบที่ใหม่กว่าบางรูปแบบ (เช่น WB3 และ QPW) ใช้กล่องหุ้ม CFB เช่นเดียวกับ BIFF8 XLS

      ใช้งานได้กับสเปรดชีต DOS / Windows (WKS/XLR)

      (คลิกเพื่อแสดง)

      งานทุกเวอร์ชันถูกจำกัดให้อยู่ในแผ่นงานเดียว

      ใช้งานได้กับ DOS 1.x - 3.x และ Works for Windows 2.x ขยายรูปแบบ Lotus WKS ด้วยประเภทระเบียนเพิ่มเติม

      ใช้งานได้กับ Windows 3.x - 5.x ใช้รูปแบบเดียวกันและนามสกุล WKS ระเบียน BOF มีประเภท |_+_|

      ใช้งานได้กับ Windows 6.x - 9.x ใช้รูปแบบ XLR XLR เกือบจะเหมือนกับ BIFF8 XLS: ใช้คอนเทนเนอร์ CFB กับสตรีมเวิร์กบุ๊ก Works 9 บันทึกสตรีมเวิร์กบุ๊กที่แน่นอนสำหรับ XLR และการส่งออก XLS 97-2003 Works 6 XLS มีแผ่นงานเปล่าสองแผ่น แต่แผ่นงานหลักมีการเข้ารหัสเหมือนกัน XLR ยังรวมถึง |_+_| สตรีมคล้ายกับไฟล์ Lotus FM3/FMT

      สเปรดชีต OpenDocument (ODS/FODS)

      (คลิกเพื่อแสดง)

      ODS เป็นรูปแบบ XML-in-ZIP ที่คล้ายกับ XLSX ในขณะที่ FODS เป็นรูปแบบ XML ที่คล้ายกับ SpreadsheetML ทั้งสองมีรายละเอียดอยู่ในมาตรฐาน OASIS แต่เครื่องมืออย่าง LO/OO เพิ่มส่วนขยายที่ไม่มีเอกสาร ตัวแยกวิเคราะห์และตัวเขียนไม่ได้ใช้มาตรฐานทั้งหมด แต่เน้นที่ส่วนที่จำเป็นในการแยกและจัดเก็บข้อมูลดิบ

      สเปรดชีตสำนักงานเครื่องแบบ (UOS1/2)

      (คลิกเพื่อแสดง)

      UOS เป็นรูปแบบที่คล้ายกันมาก และมี 2 รูปแบบที่สอดคล้องกับ ODS และ FODS ตามลำดับ โดยส่วนใหญ่ ความแตกต่างระหว่างรูปแบบจะอยู่ในชื่อของแท็กและแอตทริบิวต์

      รูปแบบแผ่นงานเดี่ยวอื่นๆ

      รูปแบบที่เก่ากว่าจำนวนมากรองรับแผ่นงานเดียวเท่านั้น:

      dBASE และ Visual FoxPro (DBF)

      (คลิกเพื่อแสดง)

      DBF เป็นรูปแบบตารางที่พิมพ์จริงๆ: แต่ละคอลัมน์สามารถเก็บประเภทข้อมูลได้เพียงประเภทเดียวเท่านั้นและแต่ละระเบียนละเว้นข้อมูลประเภท parser จะสร้างแถวส่วนหัวและแทรกระเบียนโดยเริ่มจากแถวที่สองของเวิร์กชีต ผู้เขียนทำให้ไฟล์เข้ากันได้กับส่วนขยาย Visual FoxPro

      นามสกุลไฟล์หลายไฟล์ เช่น บันทึกและตารางภายนอกไม่ได้รับการสนับสนุนในขณะนี้ โดยถูกจำกัดโดยความสามารถทั่วไปในการอ่านไฟล์ตามอำเภอใจในเว็บเบราว์เซอร์ ผู้อ่านเข้าใจส่วนขยาย DBF ระดับ 7 เช่น DATETIME

      ลิงค์สัญลักษณ์ (SYLK)

      (คลิกเพื่อแสดง)

      ไม่มีเอกสารจริง ความรู้ทั้งหมดถูกรวบรวมโดยการบันทึกไฟล์ใน Excel เวอร์ชันต่างๆ เพื่อสรุปความหมายของฟิลด์ หมายเหตุ:

      • สูตรธรรมดาจะถูกเก็บไว้ในรูปแบบ RC
      • ความกว้างของคอลัมน์ถูกปัดเศษเป็นอักขระหนึ่งตัว

      ข้อความจัดรูปแบบโลตัส (PRN)

      (คลิกเพื่อแสดง)

      ไม่มีเอกสารจริง และที่จริงแล้ว Excel ถือว่า PRN เป็นรูปแบบไฟล์เอาต์พุตเท่านั้น อย่างไรก็ตาม เราสามารถเดาความกว้างของคอลัมน์และทำวิศวกรรมย้อนกลับรูปแบบเดิมได้ ขีดจำกัดความกว้าง 240 อักขระของ Excel ไม่ได้บังคับใช้

      รูปแบบการแลกเปลี่ยนข้อมูล (DIF)

      (คลิกเพื่อแสดง)

      ไม่มีคำจำกัดความที่เป็นหนึ่งเดียว Visicalc DIF ต่างจาก Lotus DIF และทั้งคู่ต่างจาก Excel DIF ในกรณีที่คลุมเครือ parser/writer จะติดตามพฤติกรรมที่คาดไว้จาก Excel โดยเฉพาะอย่างยิ่ง Excel ขยาย DIF ด้วยวิธีที่เข้ากันไม่ได้:

      • เนื่องจาก Excel จะแปลงตัวเลขแบบสตริงเป็นตัวเลขโดยอัตโนมัติ ค่าคงที่สตริงตัวเลขจึงถูกแปลงเป็นสูตร: |_+_|
      • ในทางเทคนิค DIF คาดว่าเซลล์ตัวเลขจะเก็บข้อมูลตัวเลขดิบ แต่ Excel อนุญาตให้มีรูปแบบตัวเลข (รวมถึงวันที่)
      • ในทางเทคนิค DIF ไม่รองรับ formulae แต่ Excel จะแปลงสูตรธรรมดาโดยอัตโนมัติ สูตรอาร์เรย์จะไม่ถูกเก็บรักษาไว้

      HTML

      (คลิกเพื่อแสดง)

      แผ่นงาน Excel HTML มีข้อมูลเมตาพิเศษที่เข้ารหัสในรูปแบบต่างๆ ตัวอย่างเช่น |_+_| เป็นสตริงที่แปลแล้วซึ่งมีรูปแบบตัวเลข แม้จะมีข้อมูลเมตา แต่เอาต์พุตก็ยังเป็น HTML ที่ถูกต้อง แม้ว่าจะยอมรับเปลือย |_+_| สัญลักษณ์

      ผู้เขียนเพิ่มข้อมูลเมตาของประเภทไปยังองค์ประกอบ TD ผ่าน |_+_| แท็ก parser จะค้นหาแท็กเหล่านั้นและแทนที่การตีความเริ่มต้น ตัวอย่างเช่น ข้อความเช่น |_+_| จะถูกแยกวิเคราะห์เป็นตัวเลข แต่ |_+_| จะถูกแยกวิเคราะห์เป็นข้อความ

      รูปแบบ Rich Text (RTF)

      (คลิกเพื่อแสดง)

      แผ่นงาน Excel RTF จะถูกเก็บไว้ในคลิปบอร์ดเมื่อคัดลอกเซลล์หรือช่วงจากแผ่นงาน รหัสที่รองรับเป็นส่วนย่อยของการสนับสนุน Word RTF

      รูปแบบบันทึก Ethercalc (ETH)

      (คลิกเพื่อแสดง)

      Ethercalc เป็นสเปรดชีตเว็บโอเพ่นซอร์สที่ขับเคลื่อนโดยรูปแบบบันทึกที่ชวนให้นึกถึง SYLK ที่ห่อหุ้มด้วยข้อความ MIME แบบหลายส่วน

      การทดสอบ

      โหนด

      (คลิกเพื่อแสดง)

      |_+_| จะทำการทดสอบตามโหนด โดยค่าเริ่มต้น จะทำการทดสอบกับไฟล์ในทุกรูปแบบที่รองรับ หากต้องการทดสอบประเภทไฟล์เฉพาะ ให้ตั้งค่า |_+_| ในรูปแบบที่คุณต้องการทดสอบ การทดสอบคุณลักษณะเฉพาะสามารถใช้ได้กับ |_+_|

      |_+_|

      หากต้องการเปิดใช้งานข้อผิดพลาดทั้งหมด ให้ตั้งค่าตัวแปรสภาพแวดล้อม |_+_|:

      |_+_|

      |_+_| และ |_+_| มีเช็ค:

      |_+_|

      เบราว์เซอร์

      (คลิกเพื่อแสดง)

      การทดสอบหลักในเบราว์เซอร์มีอยู่ที่ |_+_| ภายใน repo นี้ เริ่มเซิร์ฟเวอร์ภายในเครื่องและไปที่ไดเร็กทอรีนั้นเพื่อรันการทดสอบ |_+_| จะเริ่มต้นเซิร์ฟเวอร์บนพอร์ต 8000

      |_+_| จะสร้างโปรแกรมติดตั้งเบราว์เซอร์ หากต้องการเพิ่มไฟล์ ให้แก้ไข |_+_| ไฟล์และเพิ่มเส้นทาง

      หากต้องการเรียกใช้การทดสอบในเบราว์เซอร์แบบเต็ม ให้โคลน repo สำหรับ |_+_| และแทนที่ |_+_| ไฟล์ (จากนั้นเปิดหน้าต่างเบราว์เซอร์และไปที่ |_+_|):

      |_+_|

      สภาพแวดล้อมที่ผ่านการทดสอบ

      (คลิกเพื่อแสดง)

      • NodeJS |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_|, |_+_|
      • IE 6/7/8/9/10/11 (IE 6-9 ต้องใช้แผ่นชิม)
      • Chrome 24+ (รวมถึง Android 4.0+)
      • Safari 6+ (iOS และเดสก์ท็อป)
      • Edge 13+, FF 18+ และ Opera 12+

      การทดสอบใช้กรอบการทดสอบมอคค่า

      ชุดทดสอบยังรวมการทดสอบโซนเวลาต่างๆ หากต้องการเปลี่ยนเขตเวลาในเครื่อง ให้ตั้งค่าตัวแปรสภาพแวดล้อม TZ:

      |_+_|

      ไฟล์ทดสอบ

      ไฟล์ทดสอบอยู่ใน repo อื่น .

      วิ่ง |_+_| จะรีเฟรช |_+_| submodule และรับไฟล์ โปรดทราบว่าสิ่งนี้ต้องการ |_+_|, |_+_|, |_+_| และคำสั่งอื่นๆ ที่อาจใช้ไม่ได้ ถ้า |_+_| ล้มเหลว โปรดดาวน์โหลดสแน็ปช็อตไฟล์ทดสอบเวอร์ชันล่าสุดจาก repo

      สแนปชอตล่าสุด (คลิกเพื่อแสดง)

      สแนปชอตไฟล์ทดสอบล่าสุด: https://github.com/SheetJS/sheetjs
      ใบอนุญาต: ใบอนุญาต Apache-2.0