Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
Protocol Buffers (Protobuf) is Google's language-neutral, platform-neutral extensible mechanism for serializing structured data. You define data structures in .proto files, then use the Protocol Buffers compiler (protoc) to generate source code in Java, Python, Go, C++, C#, JavaScript, Ruby, and many other languages.
Protobuf is the default serialization format for gRPC, the high-performance RPC framework used by Google, Netflix, Square, and thousands of microservice architectures worldwide. Converting Excel data to Protobuf schemas lets you generate .proto message definitions from existing spreadsheet structures, jumpstarting API and data pipeline development.
| Element | Syntax | Description |
|---|---|---|
| Syntax declaration | syntax = "proto3"; | Required first line |
| Package | package myapp; | Namespace for message types |
| Message | message Employee { ... } | Data structure definition |
| Field | string name = 1; | Type, name, and field number |
| Repeated | repeated string tags = 4; | List / array field |
| Proto Type | Description | Excel Column Use Case |
|---|---|---|
string | UTF-8 text | Names, descriptions, addresses |
int32 | 32-bit signed integer | IDs, quantities, counts |
int64 | 64-bit signed integer | Timestamps, large IDs |
float | 32-bit floating point | Prices, measurements |
double | 64-bit floating point | Precise financial values |
bool | Boolean (true/false) | Flags, active/inactive |
bytes | Raw byte array | Binary data, encoded blobs |
gRPC service definitions — Generate .proto message schemas from existing data catalogs to define gRPC request and response types.
API contract-first design — Convert spreadsheet-based data models into formal Protobuf schemas that serve as API contracts across teams.
Data pipeline migration — Move from spreadsheet-based configurations to Protobuf-serialized data in Kafka, Beam, or Spark pipelines.
Multi-language consistency — Protobuf generates code for 10+ languages from a single .proto file, ensuring type consistency across your stack.
Schema evolution — Protobuf supports backward- and forward-compatible schema changes — add new fields without breaking existing clients.
Drag-and-drop upload — Drop any .xlsx, .xls, or .xlsm file onto the upload zone.
Built-in table editor — Modify cell values, add or delete rows and columns, transpose, deduplicate, and apply case transformations before conversion.
Multi-sheet support — Switch between worksheets in multi-sheet workbooks via the sheet selector dropdown.
First Row as Header toggle — Control whether the first row is treated as column headers or regular data.
Find & Replace — Bulk-replace cell values with optional regex and case-sensitive matching.
Undo / Redo — Full edit history so you can revert mistakes.
Copy to clipboard — One-click copy of the generated .proto definition.
100% client-side — Your spreadsheet data never leaves your device. No files are uploaded to any server.
Upload your file — Drag an .xlsx, .xls, or .xlsm file onto the upload area, or click Click here to choose to browse.
Edit if needed — Use the built-in table editor to modify values, add or remove rows and columns, transpose, deduplicate, or apply case changes.
Set header row — Toggle First Row as Header on or off. With it enabled, the header row defines the Protobuf field names.
Click Convert — Press the Convert button in the Properties panel. The .proto output appears in the Output Data area.
Copy the result — Click Copy to Clipboard and paste the Protobuf definition into your project.
Input spreadsheet (employees.xlsx):
| name | department | salary |
|---|---|---|
| Alice | Engineering | 95000 |
| Bob | Marketing | 72000 |
Generated Protobuf output (proto3):
syntax = "proto3";
package excel_data;
message Employee {
string name = 1;
string department = 2;
string salary = 3;
}
message EmployeeList {
repeated Employee items = 1;
}
| Aspect | Protocol Buffers | JSON | Apache Avro |
|---|---|---|---|
| Format | Binary | Text (human-readable) | Binary |
| Schema | Required (.proto) | Optional (schema-less) | Required (JSON schema) |
| Serialization speed | Very fast | Moderate | Fast |
| Payload size | Small (binary + field numbers) | Large (keys repeated) | Small (binary, no field tags) |
| Code generation | Yes (protoc) | No | Yes (Avro tools) |
| Best for | gRPC, microservices, APIs | Web APIs, config files | Big data, Kafka, Hadoop |
Field numbers 1–15 use one byte in the wire format — use these for frequently occurring fields.
Field numbers 16–2047 use two bytes — reserve for less common fields.
Field numbers 19000–19999 are reserved by Protobuf — do not use.
Once a field number is assigned, it cannot be reused after deletion (use reserved instead).
The tool accepts Microsoft Excel files in .xlsx, .xls, and .xlsm formats. LibreOffice and Google Sheets files exported as .xlsx also work.
No. All processing happens entirely in your browser using client-side JavaScript. Your file never leaves your device. There are no server uploads, transfers, or storage of any kind.
The tool generates proto3 syntax, which is the latest and most widely used version of Protocol Buffers. Proto3 simplifies the syntax by removing required fields, field presence tracking, and default values.
All fields are generated as string type to preserve the original data from Excel. You can manually refine field types in the generated .proto file — for example, change numeric columns to int32, int64, float, or double as appropriate.
Yes. After uploading, a full table editor appears. You can modify individual cells, add or delete rows and columns, transpose, deduplicate, apply case transformations (UPPERCASE, lowercase, Capitalize), and perform find-and-replace operations.
Yes. When your workbook contains multiple sheets, a dropdown selector appears in the editor header. Choose the sheet you want to convert. Each conversion generates one message definition and a corresponding list message.
Since processing is entirely client-side, the limit depends on your browser's memory. Most modern browsers handle workbooks with tens of thousands of rows without issues.
Proto2 supports required and optional field labels, default values, and field presence tracking. Proto3 simplifies the language by removing these features — all fields are implicitly optional. Proto3 is the recommended syntax for new projects.