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

質問編集履歴

1

修正

2020/08/30 10:42

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,1 +1,77 @@
1
- 実行時に列の入れ替えを可能にするために、AllowUserToOrderColumns プロパティを true にしたのですが、出力する時に入れ替えたはずの列が入れ替わらないのですが、AllowUserToOrderColumnsですが、見た目が変わっているだけでデータの順番は変わっていないということなんでしょうか?
1
+ 実行時に列の入れ替えを可能にするために、AllowUserToOrderColumns プロパティを true にしたのですが、出力する時に入れ替えたはずの列が入れ替わらないのですが、AllowUserToOrderColumnsですが、見た目が変わっているだけでデータの順番は変わっていないということなんでしょうか?
2
+
3
+ 読み込み
4
+ ```ここに言語を入力
5
+ private DataTable Read(string filepath)
6
+ {
7
+ DataTable dataTable = new DataTable();
8
+ string[] lines = File.ReadAllLines(filepath, Encoding.GetEncoding("Shift_JIS"));
9
+ if (lines.Length > 0)
10
+ {
11
+ string firstline = lines[0];
12
+ string[] strHeader = firstline.Split(',');
13
+ foreach (string strWorld in strHeader)
14
+ {
15
+ //dataGridView1.Columns.Clear();
16
+ dataTable.Columns.Add(new DataColumn(strWorld));
17
+ }
18
+ for (int row = 1; row < lines.Length; row++)
19
+ {
20
+ string[] word = lines[row].Split(',');
21
+ DataRow dataRow = dataTable.NewRow();
22
+ int columindex = 0;
23
+ foreach (string strWorld in strHeader)
24
+ {
25
+ dataRow[strWorld] = word[columindex++];
26
+ }
27
+ dataTable.Rows.Add(dataRow);
28
+ }
29
+ }
30
+ //if (dataTable.Rows.Count > 0)
31
+ //{
32
+ // dataGridView1.DataSource = dataTable;
33
+ //}
34
+ return dataTable;
35
+ }
36
+
37
+ private void button1_Click(object sender, EventArgs e)
38
+ {
39
+ dataGridView1.Columns.Clear();
40
+ dataGridView1.AutoGenerateColumns = true;
41
+ bindingSource1.DataSource = Read("TextFile1.txt")
42
+ }
43
+
44
+ コード
45
+ ```
46
+ 出力
47
+ ```ここに言語を入力 
48
+ private void OutputExcel(string path)
49
+ {
50
+ ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;
51
+
52
+ using (var excel = new ExcelPackage(new FileInfo(path)))
53
+ {
54
+ var sheet = excel.Workbook.Worksheets.Add("シート名");
55
+
56
+ sheet.Cells["A1"].Value = "タイトル";
57
+
58
+ var a = new ExcelCellAddress("A3");
59
+
60
+ for (int c = 0; c < dataGridView1.ColumnCount; c++)
61
+ {
62
+ sheet.Cells[a.Row, a.Column + c].Value = dataGridView1.Columns[c].HeaderCell.FormattedValue;
63
+ }
64
+
65
+ for (int r = 0; r < dataGridView1.RowCount; r++)
66
+ {
67
+ for (int c = 0; c < dataGridView1.ColumnCount; c++)
68
+ {
69
+ sheet.Cells[a.Row + 1 + r, a.Column + c].Value = dataGridView1[c, r].Value;
70
+ }
71
+ }
72
+
73
+ excel.Save();
74
+ }
75
+ }
76
+ コード
77
+ ```