12

I am new in latex and I have some issues. I want to read a .csv file in latex to create a table, but I don't know how. I heard that datatool package can do this, but I don't know how to use it.

My input is smth like this:

,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24
,25,23,13,14,15,39,36,4,37,11,26,13,34,39,40,22,33,32,9,5
,56,31,45,31,38,41,59,26,,44,52,33,,42,,28,51,41,28,36

Thank you!

Update:

I think I found the answer of how to create a table based on a csv file. The name of the packages is actually csvtools.

lockstep
  • 250,273

1 Answers1

14

Assuming that the first row is the name of the columns, then you simply need to load the database via \DTLloaddb{myDB}{MyData.csv} where the file MyData.csv contains the contents as shown above, and the you can use the internal function \DTLdisplaydb{myDB} to print it as a table.

This table is very wide so I used the geometry package to extend the width of the paper. Here is the first few columns of the table:

enter image description here

If the first row is not the header row, then you can specify the key for each column as:

\DTLloaddb[noheader,keys={,ColW5, ColW6, ColW7}]{myDB}{MyData.csv}

where only keys for the first three columns have been included.

Code:

\documentclass{article}
\usepackage[showframe,paperwidth=32cm]{geometry}
\usepackage{datatool}

\begin{document} \DTLloaddb{myDB}{MyData.csv} \noindent\DTLdisplaydb{myDB} \end{document}

Peter Grill
  • 223,288