---
title: CsvStyle.Type – ระบุวิธีจัดการเครื่องหมายคำพูดใน CSV
url: https://www.thepexcel.com/functions/power-query/enumerations/csvstyle-type/
type: function-explainer
program: Power Query
syntax: "CsvStyle.QuoteAfterDelimiter | CsvStyle.QuoteAlways"
date: 2025-12-04
updated: 2025-12-26
scores:
  popularity: 4
  difficulty: 2
  usefulness: 4
---

# CsvStyle.Type – ระบุวิธีจัดการเครื่องหมายคำพูดใน CSV

> Enumeration type ที่ระบุว่าเครื่องหมายคำพูด (quote) ในไฟล์ CSV จะมีความสำคัญเมื่อไหร่ ใช้กับ Csv.Doc

## คำอธิบาย

Enumeration type ที่ระบุว่าเครื่องหมายคำพูด (quote) ในไฟล์ CSV จะมีความสำคัญเมื่อไหร่ ใช้กับ Csv.Document เพื่อควบคุมการแยกวิเคราะห์ข้อมูล

## Syntax

```excel
CsvStyle.QuoteAfterDelimiter | CsvStyle.QuoteAlways
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| CsvStyle.QuoteAfterDelimiter | No | number (0) |  | เครื่องหมายคำพูดมีความสำคัญเฉพาะหลังตัวคั่น (delimiter) เท่านั้น เป็นค่าเริ่มต้น |
| CsvStyle.QuoteAlways | No | number (1) |  | เครื่องหมายคำพูดมีความสำคัญทุกที่ในช่อง ไม่ว่าจะอยู่ตรงไหนก็ตาม |

## ตัวอย่าง

### 1. ใช้ QuoteAfterDelimiter (ค่าเริ่มต้น)

```excel
let
    csv = "Name,Description#(cr)#(lf)John,""Sales Report""#(cr)#(lf)Jane,Normal",
    options = [Delimiter = ",", CsvStyle = Csv.Style.QuoteAfterDelimiter]
in
    Csv.Document(csv, options)
```

**ผลลัพธ์:** `ตารางที่มี 2 คอลัมน์: Name (John, Jane) และ Description (Sales Report, Normal)`

ผม Import CSV ที่มี quote อยู่หลัง comma นะครับ ด้วย QuoteAfterDelimiter มันจะทำงานดีตามปกติ

### 2. ใช้ QuoteAlways สำหรับ CSV ที่ไม่ standard

```excel
let
    csv = "Item,Price#(cr)#(lf)""Widget"",9.99#(cr)#(lf)Tool,19.99",
    options = [Delimiter = ",", CsvStyle = Csv.Style.QuoteAlways]
in
    Csv.Document(csv, options)
```

**ผลลัพธ์:** `ตารางที่มี 2 คอลัมน์: Item (Widget, Tool) และ Price (9.99, 19.99)`

เวลา quote ปรากฏทุกที่ ผม ใช้ QuoteAlways เพื่อให้ Power Query จัดการ quote ได้ถูกต้อง

### 3. เปรียบเทียบสองแบบกับ CSV ที่มี quote ตรงกลาง

```excel
let
    csv = "Code,Name#(cr)#(lf)A,Item ""Special"" Type#(cr)#(lf)B,Regular",
    withQuoteAfter = Csv.Document(csv, [Delimiter = ",", CsvStyle = Csv.Style.QuoteAfterDelimiter]),
    withQuoteAlways = Csv.Document(csv, [Delimiter = ",", CsvStyle = Csv.Style.QuoteAlways])
in
    { QuoteAfter = withQuoteAfter, QuoteAlways = withQuoteAlways }
```

**ผลลัพธ์:** `สองตารางที่แสดงผลต่างกัน เนื่องจาก quote อยู่กลางข้อมูล`

ผม เลือก QuoteAfterDelimiter จะอ่าน quote ตรงกลางเป็นตัวอักษรปกติ แต่ QuoteAlways จะตีความว่าเป็น escaped quote

## หมายเหตุเพิ่มเติม

- ผม แนะนำให้เริ่มด้วย QuoteAfterDelimiter ก่อน เพราะเป็นค่าเริ่มต้นที่สาม CSV ส่วนใหญ่ใช้

- ส่วนตัวผม ชอบใช้ Power Query Editor เพื่อ preview ข้อมูลก่อน จะได้เห็นว่า CsvStyle ที่เลือกให้ผลถูกต้องหรือไม่

- ผม เตือนว่าถ้า CSV มี quote escape ที่ standard (double quote) เลือก QuoteAfterDelimiter ก่อนเสมอ

## คำถามที่พบบ่อย

**Q: ผม ต้องใช้ CsvStyle.Type ทุกครั้งหรือ?**

ไม่จำเป็นครับ ส่วนใหญ่ QuoteAfterDelimiter (ค่าเริ่มต้น) ก็พอดี ผม ใช้เฉพาะเวลา CSV มี quote แปลกๆ ที่ไม่ follow standard CSV format

**Q: ผลต่างระหว่าง QuoteAfterDelimiter กับ QuoteAlways คืออะไร?**

QuoteAfterDelimiter ให้ quote มีความสำคัญเฉพาะหลัง delimiter (เช่น comma) เท่านั้น ส่วน QuoteAlways ให้ quote มีความสำคัญทุกที่ ผม ใช้ QuoteAlways เวลา CSV format ของข้อมูลแปลกๆ

**Q: ถ้าเลือก CsvStyle ไม่ถูก จะเกิดอะไรขึ้น?**

ข้อมูลอาจจะ parse ผิด เช่น quote ที่ควรจะ escaped กลายเป็นตัวอักษรปกติ หรือตัวอักษรปกติกลายเป็น quote ผม แนะนำว่าให้ลองทั้งสองแบบแล้วดู preview ว่าแบบไหนให้ผลที่ถูกต้อง

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: Csv.Document](https://learn.microsoft.com/en-us/powerquery-m/Csv.Document) _(official)_
- [Microsoft Learn: CsvStyle.Type](https://learn.microsoft.com/en-us/powerquery-m/CsvStyle.Type) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/enumerations/csvstyle-type/](https://www.thepexcel.com/functions/power-query/enumerations/csvstyle-type/)_
