So you want to have multiple files which contain part of the entries in the main file and each contains the table header?
If that is what you want, one could write a simple script that takes the first file and the number of files that you want (or the number of lines in each file) and creates those files.
If it does not need to be graphical and you tell me what parameters you want to set, I can try to make such a script for you.
This is my quick and dirty solution:
#!/usr/bin/python
import optparse
import sys
import os
parser = optparse.OptionParser(usage="csv-splitter infile", description="Takes a CSV file and splits it into smaller files. The header of the infile is written to each file.")
parser.add_option("-p", "--parts", dest="parts", type="int", default=3, help="number of resulting files")
(options, args) = parser.parse_args()
del parser
infile = args[0]
lines = 0
if not os.path.exists(infile):
print "file does not exist"
sys.exit(1)
print "counting lines ..."
with open(infile) as h:
for line in h:
lines += 1
lines_per_file = lines/options.parts
print "found %d lines, that makes %d lines per file" % (lines, lines_per_file)
with open(infile) as h:
header = h.readline()
read = h.readline()
for filenumber in xrange(options.parts):
written_lines = 0
print "writing to file %d of %d ..." % (filenumber+1, options.parts)
with open(infile+"-part-"+str(filenumber)+".csv", "w") as outfile:
outfile.write(header)
while read != '' and (written_lines <= lines_per_file or filenumber+1 == options.parts):
outfile.write(read)
written_lines += 1
read = h.readline()
print "done"