ToolActToolAct

Excel Data Generator

Define columns by rule, batch generate structured test data and export a .xlsx file

Up to 50,000 rows

Column definitions

Data preview

Showing the first 10 rows only; export generates all rows

Showing the first 10 rows only; export generates all rows

What is the Excel Data Generator?

The Excel Data Generator is an online tool for batch-generating structured test data. For each column you pick a data type — name, phone, ID, date, money, UUID and more — set the number of rows, and it produces rule-based mock data and exports a standard .xlsx file in one click. All data is generated locally in your browser and never uploaded to any server, making it ideal for populating databases during development and testing, fleshing out demo interfaces, or supporting teaching and presentations. The tool supports localized fake data in ten languages: once you choose a data language, fields like name, company, city and phone are generated in the real conventions of that language's region — Japanese names for Japanese, Korean company names for Korean, and so on.

How to use

Steps

  1. Choose a "Data language" at the top to set the style of localized fields like name and company
  2. Set the number of rows to generate, or pick a quick preset: 100 / 1K / 10K / 50K
  3. Add columns one by one under "Column definitions": enter a name, choose a data type, and fill in options as needed (such as a number range or date span)
  4. Click "Generate preview" to check the first 10 rows, then click "Export .xlsx" to download the file

Tips

  • Use the Enum type with comma-separated options for fixed values like gender, status or tier
  • The Regex type generates strings from a custom pattern, covering cases the built-in types do not
  • Money, percent and date types export with correct Excel cell formats, so you can sort and calculate them directly
  • The ID card type is for the Chinese scenario and produces 18-digit numbers with a valid checksum

Use cases

Database development & testingGenerate sample rows for a new table to verify field types, constraints, indexes and query performance without hand-writing INSERT statements.
UI prototypes & demosFill prototypes, reports and dashboards with realistic data so demos feel close to real business instead of empty tables.
Performance & load testingGenerate tens of thousands of rows at once and import them to test how pagination, export and aggregation behave under real volume.
Teaching & trainingQuickly prepare practice datasets for database, Excel or data-analysis classes so students can start hands-on right away.
Format validationGenerate phones, emails and dates in various edge formats to check how your system handles unusual and boundary inputs.

Technical principle

The core of the tool is a set of column-type dispatchers. Each column is bound to a type; during generation the tool walks every row and calls the matching generator function, producing a two-dimensional array that is then written into an Excel worksheet. Types fall into two groups. The first is localized fake data, powered by the multi-language locale modules of @faker-js/faker: based on the chosen data language it calls the region-specific name, company, city and phone generators, so Japanese yields Japanese names and Korean yields Korean addresses. The second is formatted data — numbers, dates, money, UUID, IP, ID cards and the like — produced by the tool's own pure functions, with the Chinese ID card following the GB 11643 standard to compute the 18-digit checksum. The faker locale module for the selected language is loaded dynamically, importing only the one currently needed instead of bundling all ten languages into the page. Export uses SheetJS (xlsx) to build the workbook in the browser: for number, date and similar types it writes native cell types and sets number-format codes (such as yyyy-mm-dd, #,##0.00, 0.00%), so Excel opens the file with correct types that can join formulas right away, rather than everything becoming plain text. All generation and export happen locally in the browser with nothing uploaded. The random source is the browser's built-in pseudo-random generator: results within a single run do not repeat but are not reproducible; for reproducible data you can fix a seed (supported in a future version). The 50,000-row cap balances memory usage against export time and covers the vast majority of testing and demo needs.

  • Dispatch by column type: localized data via faker locale, formatted data via self-implemented pure functions
  • faker locale is loaded dynamically, importing only the current language to control bundle size
  • Excel cells are written with native types and number-format codes so they stay calculable
  • Chinese ID cards are generated per the GB 11643 checksum algorithm for valid numbers
  • Everything runs locally in the browser — no data leaves your device, protecting privacy

Examples

Users table sample

Columns:
  ID          -> Auto index (start 1, step 1)
  Name        -> Full name
  Email       -> Email
  Phone       -> Phone
  Signup time -> Date & time

Rows: 1000
Output: users.xlsx (1000 rows, each column correctly typed)

Order amounts sample

Columns:
  Order ID -> UUID
  Amount   -> Money (min 10, max 9999, 2 decimals)
  Discount -> Percent (min 0, max 50)
  Status   -> Enum (pending, paid, shipped, done)

After export, the amount column carries a currency format and the discount column a percent format, both summable directly.

FAQ

Is the generated data uploaded to a server?

No. All data is generated and exported locally in your browser. The tool never sends your column definitions or results to any server, which makes it suitable for confidential table structures.

What is the maximum number of rows?

Up to 50,000 rows per run. This balances browser memory against export time and covers most testing and demo scenarios. For larger volumes, generate in batches or use a database script instead.

Why do name and company fields need a "Data language"?

Fields like name, company, city and phone are strongly region-specific. Choosing a data language makes the tool generate them in the real conventions of that region — Japanese names for Japanese, Korean company names for Korean — so test data feels closer to real business.

Why aren't numbers and dates plain text in the exported Excel?

The tool writes native cell types and number-format codes for number, money, percent and date types, so Excel opens them with correct types that you can sort and use in formulas directly, rather than non-calculable text.

Does the ID card type work for non-Chinese languages?

The ID card type generates 18-digit numbers following the Chinese mainland standard (GB 11643) with a valid checksum, mainly for the Chinese scenario. For other regions, use UUID or a custom regex to produce ID numbers in the matching format.

How do I generate a format the built-in types don't cover?

Use the Regex type to generate strings from a custom pattern. For example, [A-Z]{3}\d{4} produces a code of three uppercase letters followed by four digits, flexibly covering cases the built-in types don't.