WPS Office icon WPS Office

Spreadsheet

Open and save CSV in WPS Spreadsheet without mojibake

CSV is a text dump pretending to be a spreadsheet. Encoding and locale are the whole game. Get them wrong and “José” becomes “José” and 1.5 becomes the first of May.

Opening

  1. Do not double-click the CSV if you can help it. In Spreadsheet: Data → From text / Open, then pick UTF-8. Double-click uses the OS default encoding, which on many Windows locales is still not UTF-8.
  2. Confirm the delimiter: comma, semicolon, or tab. European exports often use semicolon because comma is the decimal. If every row lands in column A, you picked the wrong delimiter.
  3. Preview column types. IBANs and phone numbers must be text or you lose leading zeros. Dates: pick a format that matches the file, not your wish.

Saving

Save As CSV UTF-8 if the other system is any modern web app. If a 1998 ERP wants ANSI/Windows-1252, you will have to speak its dialect — and you should document that in the filename: invoices-1252.csv. Spreadsheet will warn that it drops sheets, formulas, and formatting. Believe the warning. Keep the XLSX as the brain, CSV as the mouth.

The Excel-on-the-other-end trap

You send UTF-8 CSV. They open it in Excel by double-click. Excel in some regions assumes local ANSI. They call you and say the file is corrupt. Tell them to Data → From text → UTF-8, or send XLSX. This is not a WPS bug.

BOM

A UTF-8 BOM (the invisible first bytes) helps old Excel guess UTF-8 and hurts some Linux tools. If a script complains about Name in the header, you have a BOM. Re-export without it, or skip one character in the parser. Neither option is “wrong”; they are incompatible cultures.

Newlines inside fields

A comment column with Enter in the cell will split rows if someone saved without quotes. Re-open in Spreadsheet, inspect row count vs known-good, fix the cell, export again. Never fix a 40,000-row dump in Notepad.

More: Spreadsheet · formulas.

One file, many tables

A dump with a blank row then a second header is two CSVs wearing a trench coat. Split before import, or you will teach Spreadsheet that “Total” is a payee. If the bank adds a 3-line letterhead, skip those rows in the import wizard every month until you automate — and when you automate, assert the header equals Date,Description,Amount or abort.

Round-trip test

Save UTF-8 CSV, close, reopen with the wizard. Row count must match. Spot-check José, a negative amount, and a long description with a comma. If the comma split a field, quotes were dropped — export again from XLSX, do not hand-edit 4,000 rows.