teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

しゅうせい

2021/08/03 23:34

投稿

Anon_
Anon_

スコア334

title CHANGED
File without changes
body CHANGED
@@ -59,55 +59,4 @@
59
59
  あくまでカラムを囲んでいるダブルクォートのみを取り除きたいです。
60
60
 
61
61
 
62
- ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
62
+ ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
63
-
64
-
65
- うまくいったコード
66
- Paraparseを使ってUTF-8にエンコード。
67
- ```ここに言語を入力
68
- // HTML5 のFile APIに対応している場合
69
- if(window.File && window.FileReader && window.FileList && window.Blob) {
70
- $("#file_input").change(function(event){
71
- // ファイルデータ取得
72
- var file = event.target.files[0];
73
-
74
- // CSVファイルチェック
75
- if(!file.name.match('.csv$')) {
76
- alert('CSVファイルを選択してください');
77
- return;
78
- }
79
-
80
- // ファイル読み込み
81
- var reader = new FileReader();
82
- reader.onload = function(e) {
83
- const codes = new Uint8Array(e.target.result);
84
- const encoding = Encoding.detect(codes);
85
- const unicodeString = Encoding.convert(codes, {
86
- to: 'unicode',
87
- from: encoding,
88
- type: 'string',
89
- });
90
-
91
- var alldata={};
92
- Papa.parse(unicodeString, {
93
- delimiter: ",", // 区切り文字
94
- header: true, // 実データ一行目を項目名とするか
95
- comments: "#", // "#"始まりはコメント行
96
- skipEmptyLines: true, // 空行を飛ばす
97
- //encoding: "UTF8",
98
- complete: function(results, f) {
99
- console.log(results);
100
- },
101
- });
102
-
103
- };
104
- reader.onerror = function() {
105
- alert('ファイルが読めませんでした。');
106
- };
107
-
108
- reader.readAsArrayBuffer(file);
109
- });
110
- } else {
111
- $('#member_import_dialog').text('File APIに対応したブラウザでご確認ください');
112
- }
113
- ```

3

完成コード

2021/08/03 23:34

投稿

Anon_
Anon_

スコア334

title CHANGED
File without changes
body CHANGED
@@ -62,26 +62,52 @@
62
62
  ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
63
63
 
64
64
 
65
+ うまくいったコード
65
- Paraparseを使ってみたがうまく動作せず
66
+ Paraparseを使ってUTF-8にエンコード。
66
67
  ```ここに言語を入力
68
+ // HTML5 のFile APIに対応している場合
69
+ if(window.File && window.FileReader && window.FileList && window.Blob) {
67
- $("#file_input").change(function(event){
70
+ $("#file_input").change(function(event){
71
+ // ファイルデータ取得
72
+ var file = event.target.files[0];
73
+
74
+ // CSVファイルチェック
75
+ if(!file.name.match('.csv$')) {
76
+ alert('CSVファイルを選択してください');
77
+ return;
78
+ }
79
+
80
+ // ファイル読み込み
81
+ var reader = new FileReader();
82
+ reader.onload = function(e) {
83
+ const codes = new Uint8Array(e.target.result);
84
+ const encoding = Encoding.detect(codes);
85
+ const unicodeString = Encoding.convert(codes, {
86
+ to: 'unicode',
87
+ from: encoding,
88
+ type: 'string',
89
+ });
90
+
68
- var alldata={};
91
+ var alldata={};
69
- $('#file_input').parse({
92
+ Papa.parse(unicodeString, {
70
- config:{
71
- delimiter: ",", // 区切り文字
93
+ delimiter: ",", // 区切り文字
72
- header: true, // 実データ一行目を項目名とするか
94
+ header: true, // 実データ一行目を項目名とするか
73
- comments: "#", // "#"始まりはコメント行
95
+ comments: "#", // "#"始まりはコメント行
74
- skipEmptyLines: true, // 空行を飛ばす
96
+ skipEmptyLines: true, // 空行を飛ばす
97
+ //encoding: "UTF8",
98
+ complete: function(results, f) {
99
+ console.log(results);
75
- },
100
+ },
76
- // 完了時
77
- complete:function(res){
78
- console.log(res);
101
+ });
79
-
102
+
80
- },
103
+ };
81
- // エラー時
82
- error:function(err) {
104
+ reader.onerror = function() {
83
-
105
+ alert('ファイルが読めませんでした。');
106
+ };
107
+
108
+ reader.readAsArrayBuffer(file);
109
+ });
110
+ } else {
111
+ $('#member_import_dialog').text('File APIに対応したブラウザでご確認ください');
84
- }
112
+ }
85
- });
86
- });
87
113
  ```

2

追記

2021/08/03 08:49

投稿

Anon_
Anon_

スコア334

title CHANGED
File without changes
body CHANGED
@@ -59,4 +59,29 @@
59
59
  あくまでカラムを囲んでいるダブルクォートのみを取り除きたいです。
60
60
 
61
61
 
62
- ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
62
+ ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
63
+
64
+
65
+ Paraparseを使ってみたがうまく動作せず
66
+ ```ここに言語を入力
67
+ $("#file_input").change(function(event){
68
+ var alldata={};
69
+ $('#file_input').parse({
70
+ config:{
71
+ delimiter: ",", // 区切り文字
72
+ header: true, // 実データ一行目を項目名とするか
73
+ comments: "#", // "#"始まりはコメント行
74
+ skipEmptyLines: true, // 空行を飛ばす
75
+ },
76
+ // 完了時
77
+ complete:function(res){
78
+ console.log(res);
79
+
80
+ },
81
+ // エラー時
82
+ error:function(err) {
83
+
84
+ }
85
+ });
86
+ });
87
+ ```

1

関数定義の追加

2021/08/03 07:53

投稿

Anon_
Anon_

スコア334

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  実際に記述しているコードは下記です。
4
4
  ```ここに言語を入力
5
+
6
+ // CSVテキストを2次元配列にする
7
+ function toArray(csv){
8
+ var result = new Array();
9
+ var rows = csv.split("\n");
10
+ $(rows).each(function(){
11
+ result.push(this.split(","));
12
+ });
13
+ return result;
14
+ }
15
+
5
16
           // HTML5 のFile APIに対応している場合
6
17
  if(window.File && window.FileReader && window.FileList && window.Blob) {
7
18
  $("#file_input").change(function(event){