Thep Excel

Compression.Typeระบุประเภทการบีบอัดข้อมูล

Compression.Type เป็น enumeration ใน Power Query ที่ช่วยกำหนดประเภทการบีบอัดข้อมูล เช่น GZip, Deflate, Snappy, Brotli, LZ4, Zstandard เมื่อทำงานกับ Binary.Compress หรือ Binary.Decompress

fx
={{ Compression.[Type] }}

ความนิยม4/10
ความยาก2/10
ประโยชน์4/10

อัปเดต 4 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
Type text ชนิดการบีบอัดจากรายการต่อไปนี้: None, GZip, Deflate, Snappy, Brotli, LZ4, Zstandard

Additional Notes

ทำงานกับข้อมูลบีบอัดใน Power Query แล้วสงสัยว่า “เอาไปบีบอัดแบบไหนเนี่ย” หรอกครับ เอาล่ะ Compression.Type มันเลยคือ ‘ลิสต์เมนู’ ของประเภทการบีบอัดที่ Power Query รองรับนั่นเอง ทุกครั้งที่คุณใช้ Binary.Compress หรือ Binary.Decompress คุณต้องบอก Power Query ว่าจะใช้ประเภทการบีบอัดไหน

ที่เจ๋งคือ Compression.Type มันให้ค่า enum ที่มีชื่อหรูหรา มากกว่าต้องเขียนตัวเลข ตัวอย่างเช่น เขียน `Compression.GZip` แทนเลข `0` สะอาดมาก สะดวกสำหรับการอ่านโค้ด และไม่ต้องจำตัวเลขนี่แน่ะ

ส่วนตัวผมแนะนำให้เลือก GZip หากไม่แน่ใจ มันใช้ได้ทั่วไป ความเข้ากันได้ดี และบีบอัดได้เหมาะสม ถ้า API ที่คุณใช้บอกมาว่าใช้ Brotli หรือ Zstandard ก็ใช้ตามนั้นได้เลย 😎

Examples

ใช้ GZip ในการบีบอัดlet TextData = "Hello World", BinaryData = Text.ToBinary(TextData, BinaryEncoding.Utf8), Compressed = Binary.Compress(BinaryData, Compression.GZip) in Compresse…

แปลง text เป็น binary จากนั้นบีบอัดด้วย Compression.GZip ผลลัพธ์คือ binary ที่เล็กลง สะดวกสำหรับส่งข้อมูลทางเครือข่าย

fx
let
TextData = "Hello World",
BinaryData = Text.ToBinary(TextData, BinaryEncoding.Utf8),
Compressed = Binary.Compress(BinaryData, Compression.GZip)
in
Compressed

ผลลัพธ์ข้อมูล binary ที่บีบอัดด้วย GZip
ยกเลิกการบีบอัด Deflatelet CompressedBinary = #binary({115, 103, 200, 7, 194, 20, 134, 36}), Decompressed = Binary.Decompress(CompressedBinary, Compression.Deflate), TextResult = Bina…

ใช้ Compression.Deflate เพื่อบอก Binary.Decompress ว่าข้อมูลถูกบีบอัดด้วย Deflate จากนั้นแปลง binary กลับเป็น text ด้วย Binary.ToText

fx
let
CompressedBinary = #binary({115, 103, 200, 7, 194, 20, 134, 36}),
Decompressed = Binary.Decompress(CompressedBinary, Compression.Deflate),
TextResult = Binary.ToText(Decompressed, BinaryEncoding.Utf8)
in
TextResult

ผลลัพธ์ข้อความต้นฉบับที่ยกเลิกการบีบอัดแล้ว
ตรวจสอบข้อมูล API ที่บีบอัดด้วย Brotlilet ApiResponse = Json.Document(Web.Contents("https://api.example.com/data")), CompressedData = ApiResponse[data], Decompressed = Binary.Decompress(CompressedDa…

บางตัว API ส่งข้อมูลบีบอัดด้วย Brotli เพื่อประหยัด bandwidth ใช้ Compression.Brotli เพื่อแตกไฟล์ให้ใช้งานได้

fx
let
ApiResponse = Json.Document(Web.Contents("https://api.example.com/data")),
CompressedData = ApiResponse[data],
Decompressed = Binary.Decompress(CompressedData, Compression.Brotli),
Result = Binary.ToText(Decompressed, BinaryEncoding.Utf8)
in
Result

ผลลัพธ์ข้อมูล JSON ที่ยกเลิกการบีบอัดแล้ว
เลือกประเภทการบีบอัดแบบไดนามิกlet BinaryData = #binary({31, 139, 8, 0, 0, 0, 0, 0, 0, 255}), CompressionType = Compression.GZip, SafeDecompress = try Binary.Decompress(BinaryData, Compressio…

บันทึก Compression.Type ไว้ในตัวแปรเพื่อให้เปลี่ยนได้ง่าย และใช้ try…otherwise เพื่อจัดการข้อผิดพลาดถ้าชนิดบีบอัดไม่ตรงกัน

fx
let
BinaryData = #binary({31, 139, 8, 0, 0, 0, 0, 0, 0, 255}),
CompressionType = Compression.GZip,
SafeDecompress = try
Binary.Decompress(BinaryData, CompressionType)
otherwise
#binary({})
in
SafeDecompress

ผลลัพธ์ข้อมูลที่ยกเลิกการบีบอัด หรือ empty binary ถ้าเกิดข้อผิดพลาด

FAQs

ต้องเลือกประเภทการบีบอัดไหน GZip หรือ Deflate?+

มันขึ้นอยู่กับว่าข้อมูลของคุณถูกบีบอัดด้วยวิธีไหนมา ผมแนะนำให้ดูเอกสาร API หรือถามผู้ให้บริการข้อมูล ถ้าไม่แน่ใจให้เริ่มจาก GZip ก่อน เพราะใช้ได้กว้างที่สุด

ใช้ Compression.None สำหรับอะไร?+

ผมใช้ Compression.None เวลาข้อมูลไม่ได้บีบอัดเลย แต่ว่า Binary.Decompress ต้องการค่า enum นี้ อย่างไรก็ตาม ถ้าข้อมูลไม่ได้บีบอัด ก็ไม่จำเป็นต้องใช้ Binary.Decompress หลายที

Snappy vs LZ4 vs Zstandard ต่างกันยังไง?+

ผมพูดให้เข้าใจง่ายๆ: Snappy เร็วสุด แต่บีบอัดไม่ได้ดีเท่า LZ4 สมดุล Zstandard เจ๋งสุด บีบอัดดีและเร็ว แต่บางระบบอาจไม่รองรับ ถ้าลูกค้าบอกมา ก็ใช้ที่พวกเขาต้องการ

จะรู้ได้ยังไงว่าข้อมูลที่ได้มาบีบอัดด้วยแบบไหน?+

ดู file header หรือขอเอกสารจาก API provider ส่วนตัวผมมักถามถึง Slack หรือ email ถ้าไม่แน่ใจ ใช้เวลานิดหน่อยแต่ดีกว่า Error ร่วมราม

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Compression.Type จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Compression.Typeenumerations
Binary functions (4)
Binary.Compress

Binary.Compress บีบอัดข้อมูลไบนารี่โดยใช้อัลกอริทึมการบีบอัด (เช่น GZIP)

Binary.Decompress

Binary.Decompress ยกเลิกการบีบอัดข้อมูลไบนารี่ที่ถูกบีบอัดด้วย GZip หรือ Deflate กลับเป็นข้อมูลต้นฉบับ

Binary.FromText

Binary.FromText แปลงสตริงข้อความเป็นข้อมูลไบนารี่ที่สามารถใช้กับการเข้ารหัส Base64 หรือ Hex ได้

Binary.ToText

Binary.ToText แปลงข้อมูลไบนารี่เป็นข้อความโดยระบุวิธีการเข้ารหัส ใช้ได้ทั้ง Base64 และ Hex

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่