initial commit

This commit is contained in:
2017-06-13 21:41:27 +09:00
commit 475523e02e
32 changed files with 66359 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
obj/
bin/

BIN
.vs/friction/v14/.suo Normal file

Binary file not shown.

6
App.config Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>

16
DataExcel.cs Normal file
View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace friction
{
public class DataExcel
{
public void LoadData(string strFileName)
{
}
}
}

104
MainForm.Designer.cs generated Normal file
View File

@@ -0,0 +1,104 @@
namespace friction
{
partial class MainForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.toolStripMain = new System.Windows.Forms.ToolStrip();
this.toolStripButtonOpen = new System.Windows.Forms.ToolStripButton();
this.statusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripMain.SuspendLayout();
this.statusStrip.SuspendLayout();
this.SuspendLayout();
//
// toolStripMain
//
this.toolStripMain.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.toolStripMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButtonOpen});
this.toolStripMain.Location = new System.Drawing.Point(0, 0);
this.toolStripMain.Name = "toolStripMain";
this.toolStripMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
this.toolStripMain.Size = new System.Drawing.Size(947, 25);
this.toolStripMain.TabIndex = 0;
this.toolStripMain.Text = "toolStrip1";
//
// toolStripButtonOpen
//
this.toolStripButtonOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonOpen.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonOpen.Image")));
this.toolStripButtonOpen.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonOpen.Name = "toolStripButtonOpen";
this.toolStripButtonOpen.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonOpen.Text = "toolStripButton1";
this.toolStripButtonOpen.Click += new System.EventHandler(this.toolStripButtonOpen_Click);
//
// statusStrip
//
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel});
this.statusStrip.Location = new System.Drawing.Point(0, 623);
this.statusStrip.Name = "statusStrip";
this.statusStrip.Size = new System.Drawing.Size(947, 22);
this.statusStrip.TabIndex = 1;
this.statusStrip.Text = "statusStrip1";
//
// toolStripStatusLabel
//
this.toolStripStatusLabel.Name = "toolStripStatusLabel";
this.toolStripStatusLabel.Size = new System.Drawing.Size(122, 17);
this.toolStripStatusLabel.Text = "Please open database";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(947, 645);
this.Controls.Add(this.statusStrip);
this.Controls.Add(this.toolStripMain);
this.Name = "Form1";
this.Text = "Form1";
this.toolStripMain.ResumeLayout(false);
this.toolStripMain.PerformLayout();
this.statusStrip.ResumeLayout(false);
this.statusStrip.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ToolStrip toolStripMain;
private System.Windows.Forms.ToolStripButton toolStripButtonOpen;
private System.Windows.Forms.StatusStrip statusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
}
}

44
MainForm.cs Normal file
View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace friction
{
public partial class MainForm : Form
{
string m_DBFileName = "";
DataExcel m_DataLoader = new DataExcel();
TablePanel m_TablePanel = new TablePanel();
public MainForm()
{
InitializeComponent();
}
private void toolStripButtonOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "엑셀 파일 (*.xlsx)|*.xlsx|엑셀 파일 (*.xls)|*.xls|전체|*";
DialogResult result = ofd.ShowDialog();
if(result == DialogResult.OK)
{
m_DBFileName = ofd.FileName;
m_DataLoader.LoadData(m_DBFileName);
UpdateTablePanel();
statusStrip.Text = m_DBFileName;
}
}
private void UpdateTablePanel()
{
}
}
}

223
MainForm.resx Normal file
View File

@@ -0,0 +1,223 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStripMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripButtonOpen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>144, 17</value>
</metadata>
</root>

22
Program.cs Normal file
View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace friction
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("friction")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("friction")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d9d645d4-9565-4d56-995a-b28896365a2e")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

71
Properties/Resources.Designer.cs generated Normal file
View File

@@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace friction.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("friction.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

117
Properties/Resources.resx Normal file
View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

30
Properties/Settings.Designer.cs generated Normal file
View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace friction.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

38
TablePanel.Designer.cs generated Normal file
View File

@@ -0,0 +1,38 @@
namespace friction
{
partial class TablePanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "TablePanel";
}
#endregion
}
}

21
TablePanel.cs Normal file
View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class TablePanel : DockContent
{
public TablePanel()
{
InitializeComponent();
}
}
}

120
TablePanel.resx Normal file
View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

110
friction.csproj Normal file
View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{D9D645D4-9565-4D56-995A-B28896365A2E}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>friction</RootNamespace>
<AssemblyName>friction</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1, processorArchitecture=MSIL">
<HintPath>packages\EPPlus.4.1.0\lib\net40\EPPlus.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="WeifenLuo.WinFormsUI.Docking, Version=2.15.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481, processorArchitecture=MSIL">
<HintPath>packages\DockPanelSuite.2.15.0\lib\net40\WeifenLuo.WinFormsUI.Docking.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WeifenLuo.WinFormsUI.Docking.ThemeVS2015, Version=2.15.0.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481, processorArchitecture=MSIL">
<HintPath>packages\DockPanelSuite.ThemeVS2015.2.15.0\lib\net40\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="DataExcel.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TablePanel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="TablePanel.Designer.cs">
<DependentUpon>TablePanel.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

22
friction.sln Normal file
View File

@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "friction", "friction.csproj", "{D9D645D4-9565-4D56-995A-B28896365A2E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D9D645D4-9565-4D56-995A-B28896365A2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9D645D4-9565-4D56-995A-B28896365A2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9D645D4-9565-4D56-995A-B28896365A2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9D645D4-9565-4D56-995A-B28896365A2E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

6
packages.config Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DockPanelSuite" version="2.15.0" targetFramework="net452" />
<package id="DockPanelSuite.ThemeVS2015" version="2.15.0" targetFramework="net452" />
<package id="EPPlus" version="4.1.0" targetFramework="net452" />
</packages>

Binary file not shown.

BIN
packages/EPPlus.4.1.0/EPPlus.4.1.0.nupkg vendored Normal file

Binary file not shown.

32621
packages/EPPlus.4.1.0/lib/net35/EPPlus.XML vendored Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

32621
packages/EPPlus.4.1.0/lib/net40/EPPlus.XML vendored Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

122
packages/EPPlus.4.1.0/lib/readme.txt vendored Normal file
View File

@@ -0,0 +1,122 @@
EPPlus 4.1
Visit epplus.codeplex.com for the latest information
EPPlus-Create Advanced Excel spreadsheet.
New features 4.0
Replaced Packaging API with DotNetZip
* This will remove any problems with Isolated Storage and enable multithreading
New Cell store
* Less memory consumption
* Insert columns (not on the range level)
* Faster row inserts,
Formula Parser
* Calculates all formulas in a workbook, a worksheet or in a specified range
* 100+ functions implemented
* Access via Calculate methods on Workbook, Worksheet and Range objects.
* Add custom/missing Excel functions via Workbook. FormulaParserManager.
* Samples added to the EPPlusSamples project.
The formula parser does not support Array Formulas
* Intersect operator (Space)
* References to external workbooks
* And probably a whole lot of other stuff as well :)
Performance
*Of course the performance of the formula parser is nowhere near Excels. Our focus has been functionality.
Agile Encryption (Office 2012-)
* Support for newer type of encryption.
Minor new features
* Chart worksheets
* New Chart Types Bubblecharts
* Radar Charts
* Area Charts
* And lots of bug fixes...
Beta 2 Changes
* Fixed bug when using RepeatColumns & RepeatRows at the same time.
* VBA project will be left untouched if its not accessed.
* Fixed problem with strings on save.
* Added locks to the cell store for access by multiple threads.
* Implemented Indirect function
* Used DisplayNameAttribute to generate column headers from LoadFromCollection
* Rewrote ExcelRangeBase.Copy function.
* Added caching to Save ZipStream for Cells and shared strings to speed up the Save method.
* Added Missing InsertColumn and DeleteColumn
* Added pull request to support Date1904
* Added pull request ExcelWorksheet. LoadFromDataReader
Release Candidate changes
* Fixed some problems with Range.Copy Function
* InsertColumn and Delete column didn't work in some cases
* Chart.DisplayBlankAs had the wrong default type in Excel 2010+
* Datavalidation list overflow caused corruption of the package
* Fixed a few Calculation when referring ranges (for example If function)
* Added ChartAxis.DisplayUnit
* Fixed a bug related to shared formulas
* Named styles failed in some cases.
* Style.Indent got an invalid value in some cases.
* Fixed a problem with AutofitColumns method.
* Performance fix.
* A whole lot of other small fixes.
4.0.1 Fixes
* VBA unreadable content
* Fixed a few issues with InsertRow and DeleteRow
* Fixed bug in Average and AverageA
* Handling of Div/0 in functions
* Fixed VBA CodeModule error when copying a worksheet.
* Value decoding when reading str element for cell value.
* Better exception when accessing a worksheet out of range in the Excelworksheets indexer.
* Added Small and Large function to formula parser. Performance fix when encountering an unknown function.
* Fixed handling strings in formulas
* Calculate hangs if formula start with a parenthes.
* Worksheet.Dimension returned an invalid range in some cases.
* Rowheight was wrong in some cases.
* ExcelSeries.Header had an incorrect validation check.
4.0.2 Fixes
* Fixes a whole bunch of bugs related to the cell store (Worksheet.InsertColumn, Worksheet.InsertRow, Worksheet.DeleteColumn, Worksheet.DeleteRow, Range.Copy, Range.Clear)
* Added functions Acos, Acosh, Asinh, Atanh, Atan, CountBlank, CountIfs, Mina, Offset, Median, Hyperlink, Rept
* Fix for reading Excel comment content from the t-element.
* Fix to make Range.LoadFromCollection work better with inheritence
* And alot of other small fixes
4.0.3 Fixes
* Added compilation directive for MONO (Thanks Danny)
* Added functions IfError, Char, Error.Type, Degrees, Fixed, IsNonText, IfNa and SumIfs
* And fixed a lot of issues. See http://epplus.codeplex.com/SourceControl/list/changesets for more details
4.0.4 Fixes
* Added functions Daverage, Dvar Dvarp, DMax, DMin DSum, DGet, DCount and DCountA
* Exposed the formula parser logging functionality via FormulaParserManager.
* And fixed a lot of issues. See http://epplus.codeplex.com/SourceControl/list/changesets for more details
4.0.5 Fixes
* Switched to Visual Studio 2015 for code and sample projects.
* Added LineColor, MarkerSize, LineWidth and MarkerLineColor properties to line charts
* Added LineEnd properties to shapes
* Added functions Value, DateValue, TimeValue
* Removed WPF depedency.
* And fixed a lot of issues. See http://epplus.codeplex.com/SourceControl/list/changesets for more details
4.1
* Added functions Rank, Rank.eq, Rank.avg and Search
* Custom function compilers can now be added via FormulaParserManager
* Applied a whole bunch of pull requests...
* Performance and memory usage tweeks
* Ability to set and retrieve 'custom' extended application propeties.
* Added style QuotePrefix
* Added support for MajorTimeUnit and MinorTimeUnit to chart axes
* Added GapWidth Property to BarChart and Gapwidth.
* Added Fill and Border properties to ChartSerie.
* Added support for MajorTimeUnit and MinorTimeUnit to chart axes
* Insert/delete row/column now shifts named ranges, comments, tables and pivottables.
* And fixed a lot of issues. See http://epplus.codeplex.com/SourceControl/list/changesets for more details

BIN
resource/open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB