Add Export to CSV

This commit is contained in:
Kurt 2014-12-13 20:02:15 -08:00
parent 8b0b12a63b
commit f8cd5c5c7c
2 changed files with 32 additions and 3 deletions

View file

@ -46,19 +46,20 @@
this.dgData.Location = new System.Drawing.Point(0, 0);
this.dgData.Name = "dgData";
this.dgData.RowHeadersVisible = false;
this.dgData.Size = new System.Drawing.Size(790, 461);
this.dgData.Size = new System.Drawing.Size(812, 461);
this.dgData.TabIndex = 0;
//
// frmReport
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(790, 461);
this.ClientSize = new System.Drawing.Size(812, 461);
this.Controls.Add(this.dgData);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "frmReport";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Box Data Report";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.promptSaveCSV);
((System.ComponentModel.ISupportInitialize)(this.dgData)).EndInit();
this.ResumeLayout(false);

View file

@ -10,6 +10,7 @@ using System.Windows.Forms;
using System.Security.Cryptography;
using System.Reflection;
using System.Text.RegularExpressions;
namespace PKHeX
{
public partial class frmReport : Form
@ -46,11 +47,38 @@ namespace PKHeX
dgData.AutoGenerateColumns = true;
for (int i = 0; i < dgData.Columns.Count; i++)
{
if (dgData.Columns[i].Name == "pkimg") continue; // Don't add sorting for Sprites
if (dgData.Columns[i] is DataGridViewImageColumn) continue; // Don't add sorting for Sprites
dgData.Columns[i].SortMode = DataGridViewColumnSortMode.Automatic;
}
}
private void promptSaveCSV(object sender, FormClosingEventArgs e)
{
if (Util.Prompt(MessageBoxButtons.YesNo,"Save all the data to CSV?") == DialogResult.Yes)
{
SaveFileDialog savecsv = new SaveFileDialog();
savecsv.Filter = "Spreadsheet|*.csv";
savecsv.FileName = "Box Data Dump.csv";
if (savecsv.ShowDialog() == DialogResult.OK)
Export_CSV(savecsv.FileName);
}
}
private void Export_CSV(string path)
{
var sb = new StringBuilder();
var headers = dgData.Columns.Cast<DataGridViewColumn>();
sb.AppendLine(string.Join(",", headers.Select(column => "\"" + column.HeaderText + "\"").ToArray()));
foreach (DataGridViewRow row in dgData.Rows)
{
var cells = row.Cells.Cast<DataGridViewCell>();
sb.AppendLine(string.Join(",", cells.Select(cell => "\"" + cell.Value + "\"").ToArray()));
}
System.IO.File.WriteAllText(path, sb.ToString(), Encoding.UTF8);
}
public class PokemonList : SortableBindingList<PKX> { }
}
public static class ExtensionMethods // Speed up scrolling
{