fichier d'analyse à partir d'une entrée avec papaparse

Je suis en train de mettre à jour un tableau avec un fichier d'entrée. Je lis le fichier avec Papaparse.

le graphique.composante.ts:

  update_chart(csvdata) {

    const jsonData = Papa.parse(csvdata);
    this.data1 = this.prepareData(jsonData.data);


    const self = this,
      chart = this.chart;

    chart.showLoading();

    setTimeout(() => {
      chart.hideLoading();

      self.chartOptions.series = [
        self.chartOptions.series[0],
        {
          data: self.data1
        }
      ];

      self.updateFromInput = true;
    }, 2000);
  }
}

chart.component.html:

<div class="boxChart__container">
    <div>
        <highcharts-chart
            id="container" 
            [Highcharts]="Highcharts"
            [constructorType]="chartConstructor"
            [options]="chartOptions"
            [callbackFunction]="chartCallback"
            [(update)]=updateFromInput
            [oneToOne]="true"
            style="width: 100%%; height: 400px; display: block;">
        </highcharts-chart>

        <div class="form-group">
            <label for="file">Choose File</label>
            <input type="file" id="file" (change)="update_chart($event)">
        </div>
    </div>
</div>

Cependant, dès que je choisis mon fichier, j'obtiens cette erreur:

ERROR TypeError: Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'. at _global.. [as readAsText] (zone-evergreen.js:1354) at c._readChunk (papaparse.min.js:7) at c._nextChunk (papaparse.min.js:7) at c.stream (papaparse.min.js:7) at Object.parse (papaparse.min.js:7) at ChartComponent.update_chart (chart.component.ts:138) at Object.eval [as handleEvent] (ChartComponent.html:16) at handleEvent (core.js:38098) at callWithDebugContext (core.js:39716) at Object.debugHandleEvent [as handleEvent] (core.js:39352)

Je ne sais pas ce que l'on entend par "n'est pas de type blob" et pourquoi cela concerne ma demande. Quelqu'un aurait-il une idée de ce qui est mal?

Le Fichier CSV:

enter image description here

Tasks,Run,Count
task1,4.96,150
task2,156.166666666667,150
task3,279.369565217391,92
task4,1718,16
task5,2.375,16

Je ne peux pas changer le format csv, il doit être comme ça.

J'ai reproduit l'erreur ici: https://codesandbox.io/s/angular-mntjy

0
2019-09-17 09:58:34
source
2 réponses

Pour le linéaire de mises en page et texte faire:

android:layout_gravity="center" 
android:gravity="center" 

pas de center_vertical ou center_horizontal

+1
2019-09-17 10:50:05

android:layout_weight="1"

tant que vous utilisez le layout_weight bien,si vous définissez android:layout_width="wrap_content",Le système affecte les trois textviews leur largeur wrap_content (assez large pour contenir leur contenu), et attribue ensuite le reste d'espace à l'écran pour les trois textviews selon le ratio 1:1:1,de sorte que votre contenu n'est pas la même largeur, il n'apparaîtra pas alignés.

vous avez juste besoin de changer TextView

android:layout_width="wrap_content"

pour

android:layout_width="0dp" 

dans ce cas,il va diviser la largeur par 1:1:1 d'abord

+1
2019-09-17 10:50:05

Voir d'autres questions sur les étiquettes