Might Script on File

Try it out!

Start a free trial to see if esProc is the right tool for you.

Run SQL on File

No matter large or multiple

Loading data into the database is not always convenient. So tools that can directly execute SQL on files were designed to avoid troubles.

Convenient IDE

Desktop level data computing tool, ready to use, perfect debugging, inline with natural thinking, simpler than other languages.

Unique coding environment

Write code in the cell, not in a traditional text editor.
The cell value is the result calculated by an expression.
The cell name is used as a natural variable to refer to the cell value.

Easy to learn

Cookbook - Various Practical reference

Through hundreds of samples covering most of the scenarios the data analysts may encounter in real-world businesses. Once you learn how to implement these tasks, you can handle the tabular data effortlessly and enjoy the daily work.

Course - Business Programming with SPL

With simple syntax and moderate learning curve, esProc enables business people who are only familiar with Excel and have never writen a single line of code to experience an automatic and efficient data processing through programming.

Why esProc

10 times easier than python

Compare with:

  • Sorting and filtering of grouped subsets
  • Filter according to cumulative value
  • Grouped subsets iteration loop
  • Sort grouped results
  • Group by specified order
  • Repeated conditional grouping
  • ...


1 import pandas as pd
2 sale_file = 'E:\\txt\\SalesRecord.txt'
3 sale_info = pd.read_csv(sale_file,sep = '\t')
4 sale_info['month']=pd.to_datetime(sale_info['sale_date']).dt.month
5 sale_group = sale_info.groupby(by=['clerk_name','month'],as_index=False).sum()
6 sale_group_month = sale_group.groupby(by='month')
7 set_name = set(sale_info['clerk_name'])
8 for index,sale_g_m in sale_group_month:
9     sale_g_m = sale_g_m.sort_values(by='sale_amt',ascending = False)
10     sale_g_max_8 = sale_g_m.iloc[:8]
11     sale_g_max_8_name = sale_g_max_8['clerk_name']
12     set_name = set_name.intersection(set(sale_g_max_8_name))
13 print(set_name)


1 E:\\txt\\SalesRecord.txt
2 =file(A1).import@t()
3 =A2.groups(clerk_name:name,month(sale_date):month;sum(sale_amt):amount)
4 =A3.group(month)
5 =A4.(~.sort(-amount).to(8))
6 =A5.isect(~.(name))

More References

Here are articles you can read:

Looking for suitable tools for querying and calculating large files .

This paper analyzes and compares the advantages and disadvantages of several common methods.

Looking for the Best Lightweight Data Analysis Script Tools.

Let me walk you through four top script tools to experience and compare their usability, dev efficiency, types of supported data sources, functions for performing structured computations, and, particularly, algorithm implementation performances to find the best one.

Looking for the Best SQL-On-File Tool.

SQL is database-based. That means files need to be first loaded into the database before we can process them with the popular query language. The data loading is not always convenient. So tools that can directly execute SQL on files were designed to avoid troubles.