質問編集履歴

4

しゅうせい

2021/08/03 23:34

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -121,105 +121,3 @@
121
121
 
122
122
 
123
123
  ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
124
-
125
-
126
-
127
-
128
-
129
- うまくいったコード
130
-
131
- Paraparseを使ってUTF-8にエンコード。
132
-
133
- ```ここに言語を入力
134
-
135
- // HTML5 のFile APIに対応している場合
136
-
137
- if(window.File && window.FileReader && window.FileList && window.Blob) {
138
-
139
- $("#file_input").change(function(event){
140
-
141
- // ファイルデータ取得
142
-
143
- var file = event.target.files[0];
144
-
145
-
146
-
147
- // CSVファイルチェック
148
-
149
- if(!file.name.match('.csv$')) {
150
-
151
- alert('CSVファイルを選択してください');
152
-
153
- return;
154
-
155
- }
156
-
157
-
158
-
159
- // ファイル読み込み
160
-
161
- var reader = new FileReader();
162
-
163
- reader.onload = function(e) {
164
-
165
- const codes = new Uint8Array(e.target.result);
166
-
167
- const encoding = Encoding.detect(codes);
168
-
169
- const unicodeString = Encoding.convert(codes, {
170
-
171
- to: 'unicode',
172
-
173
- from: encoding,
174
-
175
- type: 'string',
176
-
177
- });
178
-
179
-
180
-
181
- var alldata={};
182
-
183
- Papa.parse(unicodeString, {
184
-
185
- delimiter: ",", // 区切り文字
186
-
187
- header: true, // 実データ一行目を項目名とするか
188
-
189
- comments: "#", // "#"始まりはコメント行
190
-
191
- skipEmptyLines: true, // 空行を飛ばす
192
-
193
- //encoding: "UTF8",
194
-
195
- complete: function(results, f) {
196
-
197
- console.log(results);
198
-
199
- },
200
-
201
- });
202
-
203
-
204
-
205
- };
206
-
207
- reader.onerror = function() {
208
-
209
- alert('ファイルが読めませんでした。');
210
-
211
- };
212
-
213
-
214
-
215
- reader.readAsArrayBuffer(file);
216
-
217
- });
218
-
219
- } else {
220
-
221
- $('#member_import_dialog').text('File APIに対応したブラウザでご確認ください');
222
-
223
- }
224
-
225
- ```

3

完成コード

2021/08/03 23:34

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -126,48 +126,100 @@
126
126
 
127
127
 
128
128
 
129
+ うまくいったコード
130
+
129
- Paraparseを使ってみたがうまく動作せず
131
+ Paraparseを使ってUTF-8にエンコード。
130
132
 
131
133
  ```ここに言語を入力
132
134
 
133
- $("#file_input").change(function(event){
134
-
135
- var alldata={};
136
-
137
- $('#file_input').parse({
138
-
139
- config:{
140
-
141
- delimiter: ",", // 区切り文字
142
-
143
- header: true, // 実データ一行目を項目名とするか
144
-
145
- comments: "#", // "#"始まりはコメント行
146
-
147
- skipEmptyLines: true, // 空行を飛ばす
148
-
149
- },
150
-
151
- // 完了時
152
-
153
- complete:function(res){
154
-
155
- console.log(res);
156
-
157
-
158
-
159
- },
160
-
161
- // エラー時
162
-
163
- error:function(err) {
164
-
165
-
166
-
167
- }
168
-
169
- });
170
-
171
- });
135
+ // HTML5 のFile APIに対応している場合
136
+
137
+ if(window.File && window.FileReader && window.FileList && window.Blob) {
138
+
139
+ $("#file_input").change(function(event){
140
+
141
+ // ファイルデータ取得
142
+
143
+ var file = event.target.files[0];
144
+
145
+
146
+
147
+ // CSVファイルチェック
148
+
149
+ if(!file.name.match('.csv$')) {
150
+
151
+ alert('CSVファイルを選択してください');
152
+
153
+ return;
154
+
155
+ }
156
+
157
+
158
+
159
+ // ファイル読み込み
160
+
161
+ var reader = new FileReader();
162
+
163
+ reader.onload = function(e) {
164
+
165
+ const codes = new Uint8Array(e.target.result);
166
+
167
+ const encoding = Encoding.detect(codes);
168
+
169
+ const unicodeString = Encoding.convert(codes, {
170
+
171
+ to: 'unicode',
172
+
173
+ from: encoding,
174
+
175
+ type: 'string',
176
+
177
+ });
178
+
179
+
180
+
181
+ var alldata={};
182
+
183
+ Papa.parse(unicodeString, {
184
+
185
+ delimiter: ",", // 区切り文字
186
+
187
+ header: true, // 実データ一行目を項目名とするか
188
+
189
+ comments: "#", // "#"始まりはコメント行
190
+
191
+ skipEmptyLines: true, // 空行を飛ばす
192
+
193
+ //encoding: "UTF8",
194
+
195
+ complete: function(results, f) {
196
+
197
+ console.log(results);
198
+
199
+ },
200
+
201
+ });
202
+
203
+
204
+
205
+ };
206
+
207
+ reader.onerror = function() {
208
+
209
+ alert('ファイルが読めませんでした。');
210
+
211
+ };
212
+
213
+
214
+
215
+ reader.readAsArrayBuffer(file);
216
+
217
+ });
218
+
219
+ } else {
220
+
221
+ $('#member_import_dialog').text('File APIに対応したブラウザでご確認ください');
222
+
223
+ }
172
224
 
173
225
  ```

2

追記

2021/08/03 08:49

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -121,3 +121,53 @@
121
121
 
122
122
 
123
123
  ![イメージ説明](7ed44a296c2c2f00bb5f0c54c415ae23.png)
124
+
125
+
126
+
127
+
128
+
129
+ Paraparseを使ってみたがうまく動作せず
130
+
131
+ ```ここに言語を入力
132
+
133
+ $("#file_input").change(function(event){
134
+
135
+ var alldata={};
136
+
137
+ $('#file_input').parse({
138
+
139
+ config:{
140
+
141
+ delimiter: ",", // 区切り文字
142
+
143
+ header: true, // 実データ一行目を項目名とするか
144
+
145
+ comments: "#", // "#"始まりはコメント行
146
+
147
+ skipEmptyLines: true, // 空行を飛ばす
148
+
149
+ },
150
+
151
+ // 完了時
152
+
153
+ complete:function(res){
154
+
155
+ console.log(res);
156
+
157
+
158
+
159
+ },
160
+
161
+ // エラー時
162
+
163
+ error:function(err) {
164
+
165
+
166
+
167
+ }
168
+
169
+ });
170
+
171
+ });
172
+
173
+ ```

1

関数定義の追加

2021/08/03 07:53

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,28 @@
5
5
  実際に記述しているコードは下記です。
6
6
 
7
7
  ```ここに言語を入力
8
+
9
+
10
+
11
+ // CSVテキストを2次元配列にする
12
+
13
+ function toArray(csv){
14
+
15
+ var result = new Array();
16
+
17
+ var rows = csv.split("\n");
18
+
19
+ $(rows).each(function(){
20
+
21
+ result.push(this.split(","));
22
+
23
+ });
24
+
25
+ return result;
26
+
27
+ }
28
+
29
+
8
30
 
9
31
           // HTML5 のFile APIに対応している場合
10
32