Some CSV files cannot be rendered #12803

Closed
opened 2025-11-02 10:21:27 -06:00 by GiteaMirror · 12 comments
Owner

Originally created by @xiaoxinpro on GitHub (Apr 9, 2024).

Description

Some CSV files cannot be rendered:

image

Source file content:

Designator	Device	Footprint	Mid X	Mid Y	Ref X	Ref Y	Pad X	Pad Y	Pins	Layer	Rotation	SMD	Comment
"CN1"	"ZX-XH2.54-2PZZ"	"CONN-TH_2P-P2.50_HX25003-2A"	"36.85mm"	"5.52mm"	"36.85mm"	"5.52mm"	"35.6mm"	"5.52mm"	"2"	"T"	"0"	"No"	"ZX-XH2.54-2PZZ"	
"D2"	"SMF5.0CA_C908214"	"SOD-123_L2.8-W1.8-LS3.7-BI"	"32.91mm"	"12.69mm"	"32.91mm"	"12.69mm"	"32.91mm"	"11.005mm"	"2"	"T"	"270"	"Yes"	"SMF5.0CA"	
"C1"	"CL10A105KB8NNNC"	"C0603"	"38.09mm"	"12.46mm"	"38.09mm"	"12.46mm"	"38.09mm"	"11.76mm"	"2"	"T"	"90"	"Yes"	"1uF"	
"R1"	"0603WAF1002T5E"	"R0603"	"28mm"	"13.67mm"	"28mm"	"13.67mm"	"28mm"	"14.423mm"	"2"	"T"	"270"	"Yes"	"10kΩ"	
"R2"	"0603WAF1002T5E"	"R0603"	"39.8mm"	"13.5mm"	"39.8mm"	"13.5mm"	"39.8mm"	"14.253mm"	"2"	"T"	"270"	"Yes"	"10kΩ"	
"R3"	"0603WAF1002T5E"	"R0603"	"39.79mm"	"10.44mm"	"39.79mm"	"10.44mm"	"39.79mm"	"9.687mm"	"2"	"T"	"90"	"Yes"	"10kΩ"	
"R4"	"0603WAF1002T5E"	"R0603"	"45.04mm"	"12.73mm"	"45.04mm"	"12.73mm"	"45.793mm"	"12.73mm"	"2"	"T"	"180"	"Yes"	"10kΩ"	
"D1"	"SS34_C8678"	"SMA_L4.3-W2.6-LS5.2-RD"	"35.59mm"	"11.77mm"	"35.59mm"	"11.77mm"	"35.59mm"	"13.97mm"	"2"	"T"	"270"	"Yes"	"SS34"	
"U1"	"PY32F002AF15P6TU"	"TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BL"	"49.62mm"	"17.16mm"	"49.62mm"	"17.16mm"	"46.749mm"	"20.085mm"	"20"	"T"	"270"	"Yes"	"PY32F002AF15P6TU"	
"C2"	"CC0603KRX7R9BB104"	"C0603"	"51.65mm"	"21.72mm"	"51.65mm"	"21.72mm"	"50.95mm"	"21.72mm"	"2"	"T"	"0"	"Yes"	"100nF"	
"C3"	"CC0603KRX7R9BB104"	"C0603"	"44.19mm"	"15.16mm"	"44.19mm"	"15.16mm"	"44.19mm"	"15.86mm"	"2"	"T"	"270"	"Yes"	"100nF"	
"R5"	"0603WAF1002T5E"	"R0603"	"41.6mm"	"13.5mm"	"41.6mm"	"13.5mm"	"41.6mm"	"14.253mm"	"2"	"T"	"270"	"Yes"	"10kΩ"	
"H1"	"PZ254V-11-04P"	"HDR-TH_4P-P2.54-V-M"	"49mm"	"24.5mm"	"49mm"	"24.5mm"	"45.19mm"	"24.5mm"	"4"	"T"	"0"	"No"	"PZ254V-11-04P"	
"H2"	"PZ254V-11-04P"	"HDR-TH_4P-P2.54-V-M"	"38mm"	"24.5mm"	"38mm"	"24.5mm"	"34.19mm"	"24.5mm"	"4"	"T"	"0"	"No"	"PZ254V-11-04P"	
"K1"	"ZX-QC36-4.3TPWD"	"KEY-SMD_L6.0-W3.5-LS8.0"	"22.61mm"	"24.06mm"	"22.61mm"	"24.06mm"	"26.36mm"	"24.06mm"	"2"	"T"	"180"	"Yes"	"ZX-QC36-4.3TPWD"	
"R7"	"0603WAF1002T5E"	"R0603"	"28.21mm"	"24.78mm"	"28.21mm"	"24.78mm"	"28.21mm"	"24.027mm"	"2"	"T"	"90"	"Yes"	"10kΩ"	
"U2"	"XN297LBW"	"SOP-8_L5.0-W4.0-P1.27-LS6.0-BL"	"62.98mm"	"18.16mm"	"62.98mm"	"18.16mm"	"60.212mm"	"20.065mm"	"8"	"T"	"270"	"Yes"	"XN297LBW"	
"X1"	"X322516MLB4SI"	"OSC-SMD_4P-L3.2-W2.5-BL"	"71.24mm"	"15.37mm"	"71.24mm"	"15.37mm"	"72.115mm"	"14.27mm"	"4"	"T"	"90"	"Yes"	"16MHz"	
"C7"	"CL10A105KB8NNNC"	"C0603"	"62.73mm"	"23.95mm"	"62.73mm"	"23.95mm"	"63.43mm"	"23.95mm"	"2"	"T"	"180"	"Yes"	"1uF"	
"C8"	"CC0603KRX7R9BB104"	"C0603"	"62.73mm"	"22.27mm"	"62.73mm"	"22.27mm"	"63.43mm"	"22.27mm"	"2"	"T"	"180"	"Yes"	"100nF"	
"C9"	"0402CG180J500NT"	"C0402"	"68.64mm"	"14.52mm"	"68.64mm"	"14.52mm"	"68.64mm"	"13.975mm"	"2"	"T"	"90"	"Yes"	"18pF"	
"C10"	"0402CG180J500NT"	"C0402"	"70.84mm"	"18.16mm"	"70.84mm"	"18.16mm"	"71.385mm"	"18.16mm"	"2"	"T"	"180"	"Yes"	"18pF"	
"C4"	"GJM1555C1HR50WB01D"	"C0402"	"70.86mm"	"22.04mm"	"70.86mm"	"22.04mm"	"71.405mm"	"22.04mm"	"2"	"T"	"180"	"Yes"	"0.5pF"	
"C6"	"GJM1555C1HR50WB01D"	"C0402"	"76.42mm"	"22.24mm"	"76.42mm"	"22.24mm"	"76.805mm"	"21.855mm"	"2"	"T"	"135"	"Yes"	"0.5pF"	
"C5"	"GJM1555C1H1R2WB01D"	"C0402"	"69.15mm"	"20.91mm"	"69.15mm"	"20.91mm"	"69.535mm"	"20.525mm"	"2"	"T"	"135"	"Yes"	"1.2pF"	
"L1"	"LQG15HS3N6S02D"	"L0402"	"73.55mm"	"22.03mm"	"73.55mm"	"22.03mm"	"73.005mm"	"22.03mm"	"2"	"T"	"0"	"Yes"	"3.6nH"	
"ANT"	"PZ254V-11-01P"	"HDR-TH_1P-P2.54-V-M"	"77.01mm"	"25.24mm"	"77.01mm"	"25.24mm"	"77.01mm"	"25.24mm"	"1"	"T"	"0"	"No"	"PZ254V-11-01P"	
"R8"	"0603WAF5100T5E"	"R0603"	"68.68mm"	"17.26mm"	"68.68mm"	"17.26mm"	"68.68mm"	"18.013mm"	"2"	"T"	"270"	"Yes"	"510Ω"	
"SW1"	"SK12F14G5"	"SW-TH_SK12F14G5"	"20.25mm"	"3mm"	"20.25mm"	"3mm"	"17.25mm"	"3mm"	"5"	"T"	"0"	"No"	"SK12F14G5"	
"S1"	"KH-6X6X5H-STM"	"SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2"	"23.495mm"	"18.602mm"	"23.495mm"	"18.602mm"	"28.045mm"	"16.352mm"	"4"	"T"	"180"	"Yes"	"KH-6X6X5H-STM"	
"S2"	"KH-6X6X5H-STM"	"SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2"	"37.5mm"	"18.602mm"	"37.5mm"	"18.602mm"	"42.05mm"	"16.352mm"	"4"	"T"	"180"	"Yes"	"KH-6X6X5H-STM"	
"S3"	"KH-6X6X5H-STM"	"SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2"	"49.7mm"	"7.1mm"	"49.7mm"	"7.1mm"	"45.15mm"	"9.35mm"	"4"	"T"	"0"	"Yes"	"KH-6X6X5H-STM"	
"S4"	"KH-6X6X5H-STM"	"SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2"	"63.2mm"	"7.1mm"	"63.2mm"	"7.1mm"	"58.65mm"	"9.35mm"	"4"	"T"	"0"	"Yes"	"KH-6X6X5H-STM"	
"LED1"	"204-10SURD/S530-A3-L"	"LED-TH_BD3.0-P2.54-FD"	"30.7mm"	"3mm"	"30.7mm"	"3mm"	"29.43mm"	"3mm"	"2"	"T"	"0"	"No"	"204-10SURD/S530-A3-L"	
"R6"	"0603WAF2200T5E"	"R0603"	"28.01mm"	"10.47mm"	"28.01mm"	"10.47mm"	"28.01mm"	"11.223mm"	"2"	"T"	"270"	"Yes"	"220Ω"	
"LED2"	"XL-1606SURC"	"LED-SMD_L1.7-W1.1-RD_RED-SIDE"	"30.7mm"	"1mm"	"30.7mm"	"1mm"	"31.547mm"	"1mm"	"2"	"T"	"180"	"Yes"	"XL-1606SURC"	


Gitea Version

1.21.10

Can you reproduce the bug on the Gitea demo site?

Yes

Log Gist

https://try.gitea.io/xiaoxinpro/TestCSV/src/branch/main/ZJ01-HW-B-000115-C_COORDINATE.csv

Screenshots

image

Git Version

No response

Operating System

Debian12

How are you running Gitea?

Docker gitea/gitea:1.21.10

Database

MySQL/MariaDB

Originally created by @xiaoxinpro on GitHub (Apr 9, 2024). ### Description Some CSV files cannot be rendered: ![image](https://github.com/go-gitea/gitea/assets/11443745/dc72adc9-f3d3-40a1-9764-45cc88da8f82) Source file content: ``` Designator Device Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y Pins Layer Rotation SMD Comment "CN1" "ZX-XH2.54-2PZZ" "CONN-TH_2P-P2.50_HX25003-2A" "36.85mm" "5.52mm" "36.85mm" "5.52mm" "35.6mm" "5.52mm" "2" "T" "0" "No" "ZX-XH2.54-2PZZ" "D2" "SMF5.0CA_C908214" "SOD-123_L2.8-W1.8-LS3.7-BI" "32.91mm" "12.69mm" "32.91mm" "12.69mm" "32.91mm" "11.005mm" "2" "T" "270" "Yes" "SMF5.0CA" "C1" "CL10A105KB8NNNC" "C0603" "38.09mm" "12.46mm" "38.09mm" "12.46mm" "38.09mm" "11.76mm" "2" "T" "90" "Yes" "1uF" "R1" "0603WAF1002T5E" "R0603" "28mm" "13.67mm" "28mm" "13.67mm" "28mm" "14.423mm" "2" "T" "270" "Yes" "10kΩ" "R2" "0603WAF1002T5E" "R0603" "39.8mm" "13.5mm" "39.8mm" "13.5mm" "39.8mm" "14.253mm" "2" "T" "270" "Yes" "10kΩ" "R3" "0603WAF1002T5E" "R0603" "39.79mm" "10.44mm" "39.79mm" "10.44mm" "39.79mm" "9.687mm" "2" "T" "90" "Yes" "10kΩ" "R4" "0603WAF1002T5E" "R0603" "45.04mm" "12.73mm" "45.04mm" "12.73mm" "45.793mm" "12.73mm" "2" "T" "180" "Yes" "10kΩ" "D1" "SS34_C8678" "SMA_L4.3-W2.6-LS5.2-RD" "35.59mm" "11.77mm" "35.59mm" "11.77mm" "35.59mm" "13.97mm" "2" "T" "270" "Yes" "SS34" "U1" "PY32F002AF15P6TU" "TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BL" "49.62mm" "17.16mm" "49.62mm" "17.16mm" "46.749mm" "20.085mm" "20" "T" "270" "Yes" "PY32F002AF15P6TU" "C2" "CC0603KRX7R9BB104" "C0603" "51.65mm" "21.72mm" "51.65mm" "21.72mm" "50.95mm" "21.72mm" "2" "T" "0" "Yes" "100nF" "C3" "CC0603KRX7R9BB104" "C0603" "44.19mm" "15.16mm" "44.19mm" "15.16mm" "44.19mm" "15.86mm" "2" "T" "270" "Yes" "100nF" "R5" "0603WAF1002T5E" "R0603" "41.6mm" "13.5mm" "41.6mm" "13.5mm" "41.6mm" "14.253mm" "2" "T" "270" "Yes" "10kΩ" "H1" "PZ254V-11-04P" "HDR-TH_4P-P2.54-V-M" "49mm" "24.5mm" "49mm" "24.5mm" "45.19mm" "24.5mm" "4" "T" "0" "No" "PZ254V-11-04P" "H2" "PZ254V-11-04P" "HDR-TH_4P-P2.54-V-M" "38mm" "24.5mm" "38mm" "24.5mm" "34.19mm" "24.5mm" "4" "T" "0" "No" "PZ254V-11-04P" "K1" "ZX-QC36-4.3TPWD" "KEY-SMD_L6.0-W3.5-LS8.0" "22.61mm" "24.06mm" "22.61mm" "24.06mm" "26.36mm" "24.06mm" "2" "T" "180" "Yes" "ZX-QC36-4.3TPWD" "R7" "0603WAF1002T5E" "R0603" "28.21mm" "24.78mm" "28.21mm" "24.78mm" "28.21mm" "24.027mm" "2" "T" "90" "Yes" "10kΩ" "U2" "XN297LBW" "SOP-8_L5.0-W4.0-P1.27-LS6.0-BL" "62.98mm" "18.16mm" "62.98mm" "18.16mm" "60.212mm" "20.065mm" "8" "T" "270" "Yes" "XN297LBW" "X1" "X322516MLB4SI" "OSC-SMD_4P-L3.2-W2.5-BL" "71.24mm" "15.37mm" "71.24mm" "15.37mm" "72.115mm" "14.27mm" "4" "T" "90" "Yes" "16MHz" "C7" "CL10A105KB8NNNC" "C0603" "62.73mm" "23.95mm" "62.73mm" "23.95mm" "63.43mm" "23.95mm" "2" "T" "180" "Yes" "1uF" "C8" "CC0603KRX7R9BB104" "C0603" "62.73mm" "22.27mm" "62.73mm" "22.27mm" "63.43mm" "22.27mm" "2" "T" "180" "Yes" "100nF" "C9" "0402CG180J500NT" "C0402" "68.64mm" "14.52mm" "68.64mm" "14.52mm" "68.64mm" "13.975mm" "2" "T" "90" "Yes" "18pF" "C10" "0402CG180J500NT" "C0402" "70.84mm" "18.16mm" "70.84mm" "18.16mm" "71.385mm" "18.16mm" "2" "T" "180" "Yes" "18pF" "C4" "GJM1555C1HR50WB01D" "C0402" "70.86mm" "22.04mm" "70.86mm" "22.04mm" "71.405mm" "22.04mm" "2" "T" "180" "Yes" "0.5pF" "C6" "GJM1555C1HR50WB01D" "C0402" "76.42mm" "22.24mm" "76.42mm" "22.24mm" "76.805mm" "21.855mm" "2" "T" "135" "Yes" "0.5pF" "C5" "GJM1555C1H1R2WB01D" "C0402" "69.15mm" "20.91mm" "69.15mm" "20.91mm" "69.535mm" "20.525mm" "2" "T" "135" "Yes" "1.2pF" "L1" "LQG15HS3N6S02D" "L0402" "73.55mm" "22.03mm" "73.55mm" "22.03mm" "73.005mm" "22.03mm" "2" "T" "0" "Yes" "3.6nH" "ANT" "PZ254V-11-01P" "HDR-TH_1P-P2.54-V-M" "77.01mm" "25.24mm" "77.01mm" "25.24mm" "77.01mm" "25.24mm" "1" "T" "0" "No" "PZ254V-11-01P" "R8" "0603WAF5100T5E" "R0603" "68.68mm" "17.26mm" "68.68mm" "17.26mm" "68.68mm" "18.013mm" "2" "T" "270" "Yes" "510Ω" "SW1" "SK12F14G5" "SW-TH_SK12F14G5" "20.25mm" "3mm" "20.25mm" "3mm" "17.25mm" "3mm" "5" "T" "0" "No" "SK12F14G5" "S1" "KH-6X6X5H-STM" "SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2" "23.495mm" "18.602mm" "23.495mm" "18.602mm" "28.045mm" "16.352mm" "4" "T" "180" "Yes" "KH-6X6X5H-STM" "S2" "KH-6X6X5H-STM" "SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2" "37.5mm" "18.602mm" "37.5mm" "18.602mm" "42.05mm" "16.352mm" "4" "T" "180" "Yes" "KH-6X6X5H-STM" "S3" "KH-6X6X5H-STM" "SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2" "49.7mm" "7.1mm" "49.7mm" "7.1mm" "45.15mm" "9.35mm" "4" "T" "0" "Yes" "KH-6X6X5H-STM" "S4" "KH-6X6X5H-STM" "SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2" "63.2mm" "7.1mm" "63.2mm" "7.1mm" "58.65mm" "9.35mm" "4" "T" "0" "Yes" "KH-6X6X5H-STM" "LED1" "204-10SURD/S530-A3-L" "LED-TH_BD3.0-P2.54-FD" "30.7mm" "3mm" "30.7mm" "3mm" "29.43mm" "3mm" "2" "T" "0" "No" "204-10SURD/S530-A3-L" "R6" "0603WAF2200T5E" "R0603" "28.01mm" "10.47mm" "28.01mm" "10.47mm" "28.01mm" "11.223mm" "2" "T" "270" "Yes" "220Ω" "LED2" "XL-1606SURC" "LED-SMD_L1.7-W1.1-RD_RED-SIDE" "30.7mm" "1mm" "30.7mm" "1mm" "31.547mm" "1mm" "2" "T" "180" "Yes" "XL-1606SURC" ``` ### Gitea Version 1.21.10 ### Can you reproduce the bug on the Gitea demo site? Yes ### Log Gist https://try.gitea.io/xiaoxinpro/TestCSV/src/branch/main/ZJ01-HW-B-000115-C_COORDINATE.csv ### Screenshots ![image](https://github.com/go-gitea/gitea/assets/11443745/dc72adc9-f3d3-40a1-9764-45cc88da8f82) ### Git Version _No response_ ### Operating System Debian12 ### How are you running Gitea? Docker `gitea/gitea:1.21.10` ### Database MySQL/MariaDB
GiteaMirror added the issue/needs-feedbacktype/upstream labels 2025-11-02 10:21:27 -06:00
Author
Owner

@lunny commented on GitHub (Apr 9, 2024):

Please upload your file as attachment.

@lunny commented on GitHub (Apr 9, 2024): Please upload your file as attachment.
Author
Owner

@xiaoxinpro commented on GitHub (Apr 9, 2024):

Please upload your file as attachment.

ZJ01-HW-B-000115-C_COORDINATE.csv

@xiaoxinpro commented on GitHub (Apr 9, 2024): > Please upload your file as attachment. [ZJ01-HW-B-000115-C_COORDINATE.csv](https://github.com/go-gitea/gitea/files/14915853/ZJ01-HW-B-000115-C_COORDINATE.csv)
Author
Owner

@lunny commented on GitHub (Apr 9, 2024):

The file you provided cannot be recognized as a normal csv by Golang's CSV library. Because all the lines ended with a \t except the first one. So the first one is 14 fields but other lines are 15 fields.

@lunny commented on GitHub (Apr 9, 2024): The file you provided cannot be recognized as a normal csv by Golang's CSV library. Because all the lines ended with a `\t` except the first one. So the first one is 14 fields but other lines are 15 fields.
Author
Owner

@silverwind commented on GitHub (Apr 9, 2024):

Does it work if your rename to .tsv extension?

@silverwind commented on GitHub (Apr 9, 2024): Does it work if your rename to `.tsv` extension?
Author
Owner

@xiaoxinpro commented on GitHub (Apr 10, 2024):

The file you provided cannot be recognized as a normal csv by Golang's CSV library. Because all the lines ended with a \t except the first one. So the first one is 14 fields but other lines are 15 fields.

It is normal for excel to recognize this csv file, should you submit issues to Golang's CSV library

@xiaoxinpro commented on GitHub (Apr 10, 2024): > The file you provided cannot be recognized as a normal csv by Golang's CSV library. Because all the lines ended with a `\t` except the first one. So the first one is 14 fields but other lines are 15 fields. It is normal for excel to recognize this csv file, should you submit issues to Golang's CSV library
Author
Owner

@xiaoxinpro commented on GitHub (Apr 10, 2024):

Does it work if your rename to .tsv extension?

The same problem

image

@xiaoxinpro commented on GitHub (Apr 10, 2024): > Does it work if your rename to `.tsv` extension? The same problem ![image](https://github.com/go-gitea/gitea/assets/11443745/913eb3ef-571a-48c5-b043-71e1a8c2f68c)
Author
Owner

@lunny commented on GitHub (Apr 10, 2024):

So the first one is 14 fields but other lines are 15 fields.

@lunny commented on GitHub (Apr 10, 2024): > So the first one is 14 fields but other lines are 15 fields.
Author
Owner

@xiaoxinpro commented on GitHub (Apr 10, 2024):

@lunny Sorry, I didn't explain the purge

This csv file is the SMT coordinate file generated by LCEDA software, which is used by the mounter to place components. The file cannot be modified, otherwise the mounter may not work normally.

@xiaoxinpro commented on GitHub (Apr 10, 2024): @lunny Sorry, I didn't explain the purge This csv file is the SMT coordinate file generated by LCEDA software, which is used by the mounter to place components. The file cannot be modified, otherwise the mounter may not work normally.
Author
Owner

@lunny commented on GitHub (Apr 10, 2024):

@lunny Sorry, I didn't explain the purge

This csv file is the SMT coordinate file generated by LCEDA software, which is used by the mounter to place components. The file cannot be modified, otherwise the mounter may not work normally.

So the generate program maybe make a mistake. If you add a \t in the end of first line, then it will work.

@lunny commented on GitHub (Apr 10, 2024): > @lunny Sorry, I didn't explain the purge > > This csv file is the SMT coordinate file generated by LCEDA software, which is used by the mounter to place components. The file cannot be modified, otherwise the mounter may not work normally. So the generate program maybe make a mistake. If you add a \t in the end of first line, then it will work.
Author
Owner

@xiaoxinpro commented on GitHub (Apr 10, 2024):

Well, I don't think there's a problem with the generator, because either Excel or the mounter can read the data correctly.

@xiaoxinpro commented on GitHub (Apr 10, 2024): Well, I don't think there's a problem with the generator, because either Excel or the mounter can read the data correctly.
Author
Owner

@lunny commented on GitHub (Apr 10, 2024):

Well, I don't think there's a problem with the generator, because either Excel or the mounter can read the data correctly.

I think so. But since Gitea depends on Golang's standard library encoding/csv, so maybe this should be reported to upstream.

@lunny commented on GitHub (Apr 10, 2024): > Well, I don't think there's a problem with the generator, because either Excel or the mounter can read the data correctly. I think so. But since Gitea depends on Golang's standard library `encoding/csv`, so maybe this should be reported to upstream.
Author
Owner

@silverwind commented on GitHub (Apr 10, 2024):

There's certain heuristics that can be applied to detect partially broken CSV, like auto-detecting the dominant separator character. But better to fix the document.

@silverwind commented on GitHub (Apr 10, 2024): There's certain heuristics that can be applied to detect partially broken CSV, like auto-detecting the dominant separator character. But better to fix the document.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#12803