How to generate a new spreadsheet from existing ones

I need to convert a family of curves for an electronic component into a different family of curves. For that, I use Engauge Digitizer to convert the original curves into several csv files. I found how to import them into calc, one sheet per file, and now I want to generate new sheets from the old ones. For that I must apply some filters.

The goal is to be abble to use it with curves from different manufacturers and different components of that type (vaccuum tubes). The main issue here is that digitizer will give me files with different numbers of columns and rows.

The existing data are for the constant voltage family of curves. I want to transform these datas in order to get the constant current family of curves. It is trivial to make it on a paper sheet, but very time consuming. For each value of current and each wanted new curve, you have to take in account the same point on 3 of the original curves/sheets. But I am new to calc and spreasheets in general, I didn’t figured out how I can automatize that.

It will be another calculation from these new sheets in order to generate the parameters used by a SPICE model to simulate these components. But I first need to make these new sheets. Any help or suggestion will be appreciated.

To resume, I will import csv files to create one sheet per file. As Mariosv explain it in the first answer, these sheets will be updated automaticaly. They are by groups of 3, the first sheet is the Ia=F(Ua) curves, the second sheet is the Ig2=f(Ua) curves, and the third one is the Ig1=f(Ua) curves. All 3 have the Ua voltage on the x axys, and a current on the y axys, that for the same and constant Ug2 and different and constant Ug1.

From these, I want to get new curves and their data with the G1 voltage on the y axys, and Ua on the x axys, that for the same Ug2, and different and constant Ig1, Ig2 and Ia. For that, I must take the same point, as example at Ua=300 V on the 3 original curves. First issue, I can have points at 300 V on the first curve, at 299 and 301 V on the second one, and at 299.5 and 302 on the third one. This will necessitate a little callculation. These 3 values togheter with the value of the x axys 300 V will feed the new sheet.

But the second. issue is the most important one. The csv files will not have to same amount of row and columns between 2 consecutive runs of the spreadsheet. And this is that my biggest concern and where I have no idea on how to do that.

If somebody ask why I want to do this, the answer is simple. The different constant parameters of a vaccuum tube are constant at a given current, and vary with that current much more than with the tension. That imply the current SPICE tubes models are good for consumer audio, but not as good for guitar amps. And such amps are my main concern with theses tubes. And I invent nothing, the model I use is allready used to simulate high power high frequency tubes like the 4CW150’000, a little baby of 150’000 watts. -:slight_smile: If that model is reliable at such high power in class C, it must work for guitar amps.

BIGEDIT: After importing the third csv into calc, I constated the interpolation made by Engauge was not good. It was necessary to export the raw data. The result is a file in which almost no points coincide beween the curves, and with more holes in the cells than data. I begin to think it will be better with a database. And I know nothing to data base either. I made a bash script that extrapolate directly the data for the new curves and create csv files, but much SPICE users are on windows, and their console is so limited that’s a shame. In consequence, libreoffice will be a better alternative.

Or is it possible to create custom filter rules and to apply them when importing a csv file?

When importing the csv in calc, you can mark the option for link the file, and when you want, change the linked file in:
Menu/Edit/Link select the link and edit to change the source csv file.

In this way you can copy the spreadsheet file and change the linked csv files.

Thank you, that’s a good trick and I will use it.

But that doesn’t answer how, from 3 of these imported sheets, I can generate a new sheet, and get it updated when the csv files are changing. The main issue is that the numbers of rows and columns will not be constant in these csv files. I will put a little more explanation into my top message.

I try with Insert → Link to external data,. It open the file, but when I click to continue, I am back to the first windows, the file name appear, but the window show no sheet, and the OK button didn’t work. From File → Open, calc open the file, but it is not synchronized in case of changes.

@Dominique, link to external data is for use with html, to link with a CSV files use Menu/Insert/Sheet or Sheet from file.

@Dominique
First my understanding of your situation and task;

  • you have I=f(Ua) curves with Ug2 and Ug1 as a constant voltage parameters on paper
  • you digitized these curves, got csv-file and imported these into Calc leading to 1 sheet per csv-file
  • you want to create curves Ug2=f(Ua) for a certain Ia values and for each curve the Ia value is constant
  • you consider it as difficult to work when the data are across spreadsheet to create you Ug2=f(Ua) curves

I don’t know yet if the digitized result of each I=f(Ua) curve creates a separate csv-file or if you have several digitized curves in one csv-file. This means I don’t understand yet your data structure on one calc sheet. Maybe you can explain this by making some sketches on a paper, scan and attach them here. Additionally you might be able to attach a calc file with your data. (Please make sure no company name or other confidential information is included; this is a public site.)

Currently I feel that it might be the best to move all I-F(Ua) data into one calc sheet (maybe separated by different background colors) and can start from here. To me the tricky thing seems to be that the I values are not exactly the same across your curve/data tables. If this is correct, you need to create I-bins and assigning Ua values (averaging?) to each I-bin. Thereafter you can create your Ug2=f(Ua) curves for certain I-values. Depending on the resolution of the digitized curves in respect to the I- and Ua-values, the I-value bins can be very small or a big rough.

This answer might not be the final solution for your problem but I hope a could give you some hints.