프로젝트

일반

사용자정보

개정판 43ceb5b3

ID43ceb5b3db5abc0eea32c656e8dcf7857717421c
상위 e9aff0bd
하위 0688f998

김태성이(가) 약 2년 전에 추가함

issue #00000 excel의 이미지 import 추가
- Excel add-in source 추가

Change-Id: I01201e511c92771de2fab3be1921265589790490

차이점 보기:

ID2.Manager/ExcelAddin/ID2ManagerImport/DataImport.cs
1
using SqlConnectionDialog;
2
using System;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
using System.Threading.Tasks;
7
using System.Data.SqlClient;
8
using Microsoft.Office.Interop.Excel;
9
using System.Windows.Forms;
10
using System.Drawing;
11
using System.IO;
12
using System.IO.Compression;
13

  
14
namespace ID2ManagerImport
15
{
16
    public static class DataManager
17
    {
18
        static string tableName = "ImportExcel";
19

  
20
        public static string ConnectionDialog()
21
        {
22
            var factory = new ConnectionStringFactory();
23
            var str = factory.OpenDialog();
24

  
25
            return str;
26
        }
27

  
28

  
29
        public static bool CreateTabile(string connectionString)
30
        {
31
            bool result = false;
32

  
33
            try
34
            {
35
                using (SqlConnection connection = new SqlConnection(connectionString))
36
                {
37
                    connection.Open();
38

  
39
                    string checkTableQuery = $"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}'";
40

  
41
                    // 쿼리 실행하여 테이블 존재 여부 확인
42
                    SqlCommand checkTableCommand = new SqlCommand(checkTableQuery, connection);
43

  
44
                    int tableCount = (int)checkTableCommand.ExecuteScalar();
45

  
46
                    if (tableCount == 0)
47
                    {
48
                        // CREATE TABLE 문 작성
49
                        string createTableQuery = $"CREATE TABLE {tableName} ( "
50
                                    + " FILE_NAME VARCHAR(MAX),"
51
                                    + " WORKSHEET_NAME VARCHAR(MAX),"
52
                                    + " COUMMN_INDEX INT,"
53
                                    + " ROW_INDEX INT,"
54
                                    + " VALUE VARCHAR(MAX),"
55
                                    + " TopLeftCell VARCHAR(MAX),"
56
                                    + " OBJECT_TYPE INT"
57
                                  + " )";
58

  
59
                        // CREATE TABLE 쿼리 실행
60
                        SqlCommand createTableCommand = new SqlCommand(createTableQuery, connection);
61
                        createTableCommand.ExecuteNonQuery();
62

  
63
                        connection.Close();
64
                    }
65
                    
66
                    result = true;
67
                }
68
            }
69
            catch (Exception)
70
            {
71
                throw;
72
            }
73
            return result;
74
        }
75

  
76
        public static void DeleteData(SqlConnection connection,string FileName, string worksheetName)
77
        {
78
            
79
                string delQuery = $"DELETE FROM {tableName} WHERE FILE_NAME = '{FileName}' AND WORKSHEET_NAME = '{worksheetName}'";
80

  
81
                // SQL 쿼리 실행
82
                SqlCommand command = new SqlCommand(delQuery, connection);
83
                command.ExecuteNonQuery();
84
        }
85

  
86
        public static bool Import(string FileName, Microsoft.Office.Interop.Excel.Worksheet worksheet)
87
        {
88
            bool result = true;
89

  
90
            try
91
            {
92
                var connectionStr = ConnectionDialog();
93

  
94
                if (connectionStr != null)
95
                {
96
                    if (CreateTabile(connectionStr))
97
                    {
98

  
99
                        using (SqlConnection connection = new SqlConnection(connectionStr))
100
                        {
101
                            connection.Open();
102

  
103
                            DeleteData(connection, FileName, worksheet.Name);
104

  
105
                            Range range = worksheet.UsedRange;
106

  
107
                            // 행 반복
108
                            for (int row = 1; row <= range.Rows.Count; row++)
109
                            {
110
                                // 열 반복
111
                                for (int column = 1; column <= range.Columns.Count; column++)
112
                                {
113
                                    string cellAddress = range.Cells[row, column].Address;
114
                                    var cellValue = range.Cells[row, column].Value;
115
                                    //Range cell = range.Cells[row, column];
116
                                    //XlCellType cellType = cell.Cells[row, column].CellType;
117
                                    //// 현재 셀 값 가져오기
118
                                    //string cellValue = cell.Cells[row, column].Value2.ToString();
119
                                    if (cellValue != null)
120
                                    {
121
                                        // SQL INSERT 쿼리 작성
122
                                        string query = $"INSERT INTO {tableName} (FILE_NAME,WORKSHEET_NAME,COUMMN_INDEX,ROW_INDEX,VALUE,TopLeftCell,OBJECT_TYPE) "
123
                                                     + $" VALUES ('{FileName}','{worksheet.Name}',{column},{row},'{cellValue}','{cellAddress}',0)";
124

  
125
                                        // SQL 쿼리 실행
126
                                        SqlCommand command = new SqlCommand(query, connection);
127
                                        command.ExecuteNonQuery();
128
                                    }
129
                                }
130
                            }
131

  
132
                            ImportImage(connection, FileName, worksheet);
133

  
134
                            connection.Close();
135
                            result = true;
136
                        }
137
                    }
138
                }
139
            }
140
            catch (Exception)
141
            {
142

  
143
                throw;
144
            }
145

  
146
            return result;
147
        }
148

  
149
        private static int GetColumnIndex(string CellAddress)
150
        {
151
            int columnIndex = 0;
152

  
153
            if (CellAddress.TrimStart('$').Split('$').Length > 0)
154
            {
155
                string columnAddress = CellAddress.TrimStart('$').Split('$')[0];
156

  
157
                foreach (char c in columnAddress)
158
                {
159
                    columnIndex = columnIndex * 26 + (int)c - 64;
160
                }
161
            }
162

  
163
            return columnIndex;
164
        }
165

  
166
        private static int GetRowIndex(string CellAddress)
167
        {
168
            int RowIndex = 0;
169

  
170
            if (CellAddress.TrimStart('$').Split('$').Length > 1)
171
            {
172
                string columnAddress = CellAddress.TrimStart('$').Split('$')[1];
173
                RowIndex = Convert.ToInt32(columnAddress);
174
            }
175

  
176
            return RowIndex;
177
        }
178

  
179

  
180
        public static bool ImportImage(SqlConnection connection, string FILE_NAME, Worksheet worksheet)
181
        {
182
            bool result = true;
183

  
184
            try
185
            {
186

  
187
                const Microsoft.Office.Core.MsoShapeType pictureShapeType = Microsoft.Office.Core.MsoShapeType.msoPicture;
188

  
189
                string query = $"INSERT INTO {tableName} (FILE_NAME,WORKSHEET_NAME,COUMMN_INDEX,ROW_INDEX,TopLeftCell,VALUE,OBJECT_TYPE) "
190
                                        + $" VALUES (@FileName,@worksheetName,@ColumnIndex,@RowIndex,@TopLeftCell,@cellValue,@ObjectType)";
191

  
192
                List<Microsoft.Office.Interop.Excel.Shape> shapes = new List<Shape>();
193

  
194
                foreach (Shape shape in worksheet.Shapes)
195
                {
196
                    shapes.Add(shape);
197
                }
198

  
199
                foreach (Shape shape in shapes)
200
                {
201
                    if (shape.Type == pictureShapeType)
202
                    {
203
                        string location = shape.TopLeftCell.Address; // 이미지의 위치 정보
204
                        string base64String = null;
205

  
206
                        try
207
                        {
208
                            float originalHeight = shape.Height;
209
                            float originalWidth = shape.Width;
210
                            shape.ScaleWidth(1.0f, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoScaleFrom.msoScaleFromTopLeft);
211

  
212
                            // 이미지를 가져올 Shape이 그림인 경우 처리
213
                            shape.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
214

  
215
                                if (Clipboard.ContainsImage())
216
                                {
217
                                    // 클립보드에서 이미지 가져오기
218
                                    using (Image clipboardImage = Clipboard.GetImage())
219
                                    {
220
                                        // 이미지 크기를 원래 크기로 되돌리기
221

  
222
                                        // 이미지를 byte 배열로 변환
223
                                        byte[] imageBytes;
224
                                        using (MemoryStream ms = new MemoryStream())
225
                                        {
226
                                            clipboardImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
227
                                            imageBytes = ms.ToArray();
228

  
229
                                            // 이미지를 Base64 문자열로 변환
230
                                            base64String = CompressString(Convert.ToBase64String(imageBytes));
231
                                            imageBytes = null;
232
                                        }
233
                                    }
234

  
235

  
236
                                    shape.ScaleWidth(originalWidth / shape.Width, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoScaleFrom.msoScaleFromTopLeft);
237
                                    Clipboard.Clear();
238
                                }
239
                            }
240
                            catch (Exception ex)
241
                            {
242
                                System.Diagnostics.Debug.WriteLine(ex);
243
                            }
244

  
245
                        // 이미지를 MSSQL에 저장
246
                        SqlCommand insertCommand = new SqlCommand(query, connection);
247
                        insertCommand.Parameters.AddWithValue("@FileName", FILE_NAME);
248
                        insertCommand.Parameters.AddWithValue("@worksheetName", worksheet.Name);
249
                        insertCommand.Parameters.AddWithValue("@ColumnIndex", GetColumnIndex(location));
250
                        insertCommand.Parameters.AddWithValue("@RowIndex", GetRowIndex(location));
251
                        insertCommand.Parameters.AddWithValue("@TopLeftCell", location);
252
                        insertCommand.Parameters.AddWithValue("@cellValue", base64String);
253
                        insertCommand.Parameters.AddWithValue("@ObjectType", 1);
254

  
255
                        insertCommand.ExecuteNonQuery();
256
                    }
257
                }
258

  
259
                shapes.Clear();
260

  
261
                result = true;
262
            }
263
            catch (Exception)
264
            {
265

  
266
                throw;
267
            }
268

  
269
            return result;
270
        }
271

  
272
        public static string CompressString(string str)
273
        {
274
            string result = null;
275

  
276
            using (MemoryStream outStream = new MemoryStream())
277
            {
278
                using (GZipStream gzipStream = new GZipStream(outStream, CompressionMode.Compress))
279
                using (MemoryStream srcStream = new MemoryStream(Encoding.UTF8.GetBytes(str)))
280
                    srcStream.CopyTo(gzipStream);
281

  
282
                result = Convert.ToBase64String(outStream.ToArray());
283
            }
284

  
285
            return result;
286
        }
287

  
288
        public static bool Export(Microsoft.Office.Interop.Excel.Worksheet worksheet)
289
        {
290
            bool result = true;
291

  
292
            try
293
            {
294
                var connectionStr = ConnectionDialog();
295

  
296
                if (connectionStr != null)
297
                {
298
                    if (CreateTabile(connectionStr))
299
                    {
300

  
301
                        using (SqlConnection connection = new SqlConnection(connectionStr))
302
                        {
303
                            connection.Open();
304
                            Microsoft.Office.Interop.Excel.Range range = worksheet.UsedRange;
305

  
306
                            // SQL INSERT 쿼리 작성
307
                            string query = $"select TopLeftCell,VALUE from {tableName}";
308

  
309
                            // SQL 쿼리 실행
310
                            SqlCommand command = new SqlCommand(query, connection);
311
                            var read = command.ExecuteReader();
312

  
313
                            while (read.Read())
314
                            {
315
                                MessageBox.Show($"{read.GetString(0)} ; {read.GetString(1)}");
316
                                break;
317
                            }
318

  
319
                            connection.Close();
320
                            result = true;
321
                        }
322
                    }
323
                }
324
            }
325
            catch (Exception)
326
            {
327

  
328
                throw;
329
            }
330

  
331
            return result;
332
        }
333
    }
334
}
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2ManagerImport.csproj
1
<Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
3
  <!--
4
    This section defines project-level properties.
5

  
6
    AssemblyName
7
      Name of the output assembly.
8
    Configuration
9
      Specifies a default value for debug.
10
    OutputType
11
      Must be "Library" for VSTO.
12
    Platform
13
      Specifies what CPU the output of this project can run on.
14
    NoStandardLibraries
15
      Set to "false" for VSTO.
16
    RootNamespace
17
      In C#, this specifies the namespace given to new files. In VB, all objects are
18
      wrapped in this namespace at runtime.
19
  -->
20
  <PropertyGroup>
21
    <ProjectTypeGuids>{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
22
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
23
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
24
    <ProjectGuid>{3477906E-C120-4FA6-B73D-93791283378A}</ProjectGuid>
25
    <OutputType>Library</OutputType>
26
    <NoStandardLibraries>false</NoStandardLibraries>
27
    <RootNamespace>ID2ManagerImport</RootNamespace>
28
    <AssemblyName>ID2ManagerImport</AssemblyName>
29
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
30
    <DefineConstants>VSTO40</DefineConstants>
31
    <IsWebBootstrapper>False</IsWebBootstrapper>
32
    <BootstrapperEnabled>true</BootstrapperEnabled>
33
    <PublishUrl>게시\</PublishUrl>
34
    <InstallUrl />
35
    <TargetCulture>ko</TargetCulture>
36
    <ApplicationVersion>1.0.0.4</ApplicationVersion>
37
    <AutoIncrementApplicationRevision>true</AutoIncrementApplicationRevision>
38
    <UpdateEnabled>false</UpdateEnabled>
39
    <UpdateInterval>0</UpdateInterval>
40
    <UpdateIntervalUnits>days</UpdateIntervalUnits>
41
    <ProductName>ID2ManagerImport</ProductName>
42
    <PublisherName />
43
    <SupportUrl />
44
    <FriendlyName>ID2ManagerImport</FriendlyName>
45
    <OfficeApplicationDescription />
46
    <LoadBehavior>3</LoadBehavior>
47
  </PropertyGroup>
48
  <ItemGroup>
49
    <BootstrapperPackage Include=".NETFramework,Version=v4.8">
50
      <Visible>False</Visible>
51
      <ProductName>Microsoft .NET Framework 4.8%28x86 및 x64%29</ProductName>
52
      <Install>true</Install>
53
    </BootstrapperPackage>
54
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
55
      <Visible>False</Visible>
56
      <ProductName>.NET Framework 3.5 SP1</ProductName>
57
      <Install>false</Install>
58
    </BootstrapperPackage>
59
    <BootstrapperPackage Include="Microsoft.VSTORuntime.4.0">
60
      <Visible>False</Visible>
61
      <ProductName>Microsoft Visual Studio 2010 Tools for Office Runtime%28x86 및 x64%29</ProductName>
62
      <Install>true</Install>
63
    </BootstrapperPackage>
64
  </ItemGroup>
65
  <PropertyGroup>
66
    <!--
67
      OfficeApplication
68
        Add-in host application
69
    -->
70
    <OfficeApplication>Excel</OfficeApplication>
71
  </PropertyGroup>
72
  <!--
73
    This section defines properties that are set when the "Debug" configuration is selected.
74

  
75
    DebugSymbols
76
      If "true", create symbols (.pdb). If "false", do not create symbols.
77
    DefineConstants
78
      Constants defined for the preprocessor.
79
    EnableUnmanagedDebugging
80
      If "true", starting the debugger will attach both managed and unmanaged debuggers.
81
    Optimize
82
      If "true", optimize the build output. If "false", do not optimize.
83
    OutputPath
84
      Output path of project relative to the project file.
85
    WarningLevel
86
      Warning level for the compiler.
87
  -->
88
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
89
    <DebugSymbols>true</DebugSymbols>
90
    <DebugType>full</DebugType>
91
    <Optimize>false</Optimize>
92
    <OutputPath>bin\Debug\</OutputPath>
93
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
94
    <DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants>
95
    <WarningLevel>4</WarningLevel>
96
    <PlatformTarget>x64</PlatformTarget>
97
  </PropertyGroup>
98
  <!--
99
    This section defines properties that are set when the "Release" configuration is selected.
100

  
101
    DebugSymbols
102
      If "true", create symbols (.pdb). If "false", do not create symbols.
103
    DefineConstants
104
      Constants defined for the preprocessor.
105
    EnableUnmanagedDebugging
106
      If "true", starting the debugger will attach both managed and unmanaged debuggers.
107
    Optimize
108
      If "true", optimize the build output. If "false", do not optimize.
109
    OutputPath
110
      Output path of project relative to the project file.
111
    WarningLevel
112
      Warning level for the compiler.
113
  -->
114
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
115
    <DebugType>pdbonly</DebugType>
116
    <Optimize>true</Optimize>
117
    <OutputPath>bin\Release\</OutputPath>
118
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
119
    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>
120
    <WarningLevel>4</WarningLevel>
121
  </PropertyGroup>
122
  <!--
123
    This section specifies references for the project.
124
  -->
125
  <ItemGroup>
126
    <Reference Include="Accessibility" />
127
    <Reference Include="System" />
128
    <Reference Include="System.Data" />
129
    <Reference Include="System.Drawing" />
130
    <Reference Include="System.Windows.Forms" />
131
    <Reference Include="System.Xml" />
132
    <Reference Include="System.Core" />
133
    <Reference Include="System.Xml.Linq" />
134
    <Reference Include="System.Data.DataSetExtensions" />
135
    <Reference Include="Microsoft.CSharp" />
136
  </ItemGroup>
137
  <ItemGroup>
138
    <Reference Include="Microsoft.Office.Tools.v4.0.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
139
      <Private>False</Private>
140
    </Reference>
141
    <Reference Include="Microsoft.VisualStudio.Tools.Applications.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
142
      <Private>False</Private>
143
    </Reference>
144
    <Reference Include="Microsoft.Office.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
145
      <Private>False</Private>
146
    </Reference>
147
    <Reference Include="Microsoft.Office.Tools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
148
      <Private>False</Private>
149
    </Reference>
150
    <Reference Include="Microsoft.Office.Tools.Excel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
151
      <Private>False</Private>
152
    </Reference>
153
  </ItemGroup>
154
  <ItemGroup>
155
    <Reference Include="Microsoft.Office.Tools.Common.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
156
      <Private>True</Private>
157
    </Reference>
158
  </ItemGroup>
159
  <ItemGroup>
160
    <Reference Include="Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
161
      <Private>False</Private>
162
      <EmbedInteropTypes>true</EmbedInteropTypes>
163
    </Reference>
164
    <Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
165
      <Private>False</Private>
166
      <EmbedInteropTypes>true</EmbedInteropTypes>
167
    </Reference>
168
    <Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
169
      <Private>False</Private>
170
    </Reference>
171
  </ItemGroup>
172
  <!--
173
    This section defines the user source files that are part of the project.
174
     
175
    A "Compile" element specifies a source file to compile.
176
    An "EmbeddedResource" element specifies an .resx file for embedded resources.
177
    A "None" element specifies a file that is not to be passed to the compiler (for instance, 
178
    a text file or XML file).
179
    The "AppDesigner" element specifies the directory where the application properties files
180
    can be found.
181
  -->
182
  <ItemGroup>
183
    <Compile Include="DataImport.cs" />
184
    <Compile Include="ID2Ribbon.cs">
185
      <SubType>Component</SubType>
186
    </Compile>
187
    <Compile Include="ID2Ribbon.Designer.cs">
188
      <DependentUpon>ID2Ribbon.cs</DependentUpon>
189
    </Compile>
190
    <Compile Include="Properties\AssemblyInfo.cs">
191
      <SubType>Code</SubType>
192
    </Compile>
193
    <EmbeddedResource Include="ID2Ribbon.resx">
194
      <DependentUpon>ID2Ribbon.cs</DependentUpon>
195
    </EmbeddedResource>
196
    <EmbeddedResource Include="Properties\Resources.resx">
197
      <Generator>ResXFileCodeGenerator</Generator>
198
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
199
      <SubType>Designer</SubType>
200
    </EmbeddedResource>
201
    <Compile Include="Properties\Resources.Designer.cs">
202
      <AutoGen>True</AutoGen>
203
      <DependentUpon>Resources.resx</DependentUpon>
204
    </Compile>
205
    <None Include="ID2ManagerImport_TemporaryKey.pfx" />
206
    <None Include="Properties\Settings.settings">
207
      <Generator>SettingsSingleFileGenerator</Generator>
208
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
209
    </None>
210
    <Compile Include="Properties\Settings.Designer.cs">
211
      <AutoGen>True</AutoGen>
212
      <DependentUpon>Settings.settings</DependentUpon>
213
    </Compile>
214
    <Compile Include="ThisAddIn.cs">
215
      <SubType>Code</SubType>
216
    </Compile>
217
    <None Include="ThisAddIn.Designer.xml">
218
      <DependentUpon>ThisAddIn.cs</DependentUpon>
219
    </None>
220
    <Compile Include="ThisAddIn.Designer.cs">
221
      <DependentUpon>ThisAddIn.Designer.xml</DependentUpon>
222
    </Compile>
223
    <AppDesigner Include="Properties\" />
224
  </ItemGroup>
225
  <ItemGroup>
226
    <PackageReference Include="MsSQLDialog">
227
      <Version>1.0.0</Version>
228
    </PackageReference>
229
  </ItemGroup>
230
  <PropertyGroup>
231
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
232
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
233
  </PropertyGroup>
234
  <PropertyGroup>
235
    <SignManifests>true</SignManifests>
236
  </PropertyGroup>
237
  <PropertyGroup>
238
    <ManifestKeyFile>ID2ManagerImport_TemporaryKey.pfx</ManifestKeyFile>
239
  </PropertyGroup>
240
  <PropertyGroup>
241
    <ManifestCertificateThumbprint>EF3F3E89EB1A23160BB3D1B0635AF73C25DFB484</ManifestCertificateThumbprint>
242
  </PropertyGroup>
243
  <!-- Include the build rules for a C# project. -->
244
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
245
  <!-- Include additional build rules for an Office application add-in. -->
246
  <Import Project="$(VSToolsPath)\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" />
247
  <!-- This section defines VSTO properties that describe the host-changeable project properties. -->
248
  <ProjectExtensions>
249
    <VisualStudio>
250
      <FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
251
        <ProjectProperties HostName="Excel" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Excel" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\16.0\Excel\InstallRoot\Path#excel.exe" DebugInfoCommandLine="/x" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
252
        <Host Name="Excel" GeneratedCodeNamespace="ID2ManagerImport" PublishedHash="69C324AB27932AA2FBF2B7EA72250886FF164DE6" IconIndex="0">
253
          <HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" PublishedHash="82537F06F54D5DD73334C8FD08F4F6A9937971E0" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
254
        </Host>
255
      </FlavorProperties>
256
    </VisualStudio>
257
  </ProjectExtensions>
258
</Project>
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2ManagerImport.sln
1

2
Microsoft Visual Studio Solution File, Format Version 12.00
3
# Visual Studio Version 16
4
VisualStudioVersion = 16.0.33423.256
5
MinimumVisualStudioVersion = 10.0.40219.1
6
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ID2ManagerImport", "ID2ManagerImport.csproj", "{3477906E-C120-4FA6-B73D-93791283378A}"
7
EndProject
8
Global
9
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
		Debug|Any CPU = Debug|Any CPU
11
		Release|Any CPU = Release|Any CPU
12
	EndGlobalSection
13
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
14
		{3477906E-C120-4FA6-B73D-93791283378A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15
		{3477906E-C120-4FA6-B73D-93791283378A}.Debug|Any CPU.Build.0 = Debug|Any CPU
16
		{3477906E-C120-4FA6-B73D-93791283378A}.Release|Any CPU.ActiveCfg = Release|Any CPU
17
		{3477906E-C120-4FA6-B73D-93791283378A}.Release|Any CPU.Build.0 = Release|Any CPU
18
	EndGlobalSection
19
	GlobalSection(SolutionProperties) = preSolution
20
		HideSolutionNode = FALSE
21
	EndGlobalSection
22
	GlobalSection(ExtensibilityGlobals) = postSolution
23
		SolutionGuid = {7271D6F3-241B-47EE-A9A2-999C578F11C0}
24
	EndGlobalSection
25
EndGlobal
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2Ribbon.Designer.cs
1

2
namespace ID2ManagerImport
3
{
4
    partial class ID2Ribbon : Microsoft.Office.Tools.Ribbon.RibbonBase
5
    {
6
        /// <summary>
7
        /// 필수 디자이너 변수입니다.
8
        /// </summary>
9
        private System.ComponentModel.IContainer components = null;
10

  
11
        public ID2Ribbon()
12
            : base(Globals.Factory.GetRibbonFactory())
13
        {
14
            InitializeComponent();
15
        }
16

  
17
        /// <summary> 
18
        /// 사용 중인 모든 리소스를 정리합니다.
19
        /// </summary>
20
        /// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
21
        protected override void Dispose(bool disposing)
22
        {
23
            if (disposing && (components != null))
24
            {
25
                components.Dispose();
26
            }
27
            base.Dispose(disposing);
28
        }
29

  
30
        #region 구성 요소 디자이너에서 생성한 코드
31

  
32
        /// <summary>
33
        /// 디자이너 지원에 필요한 메서드입니다. 
34
        /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
35
        /// </summary>
36
        private void InitializeComponent()
37
        {
38
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ID2Ribbon));
39
            this.tab1 = this.Factory.CreateRibbonTab();
40
            this.group1 = this.Factory.CreateRibbonGroup();
41
            this.btnSend = this.Factory.CreateRibbonButton();
42
            this.btLoad = this.Factory.CreateRibbonButton();
43
            this.tab1.SuspendLayout();
44
            this.group1.SuspendLayout();
45
            this.SuspendLayout();
46
            // 
47
            // tab1
48
            // 
49
            this.tab1.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
50
            this.tab1.Groups.Add(this.group1);
51
            this.tab1.Label = "TabAddIns";
52
            this.tab1.Name = "tab1";
53
            // 
54
            // group1
55
            // 
56
            this.group1.Items.Add(this.btnSend);
57
            this.group1.Items.Add(this.btLoad);
58
            this.group1.Label = "ID2 Manager";
59
            this.group1.Name = "group1";
60
            // 
61
            // btnSend
62
            // 
63
            this.btnSend.Image = ((System.Drawing.Image)(resources.GetObject("btnSend.Image")));
64
            this.btnSend.Label = "Send Data";
65
            this.btnSend.Name = "btnSend";
66
            this.btnSend.ShowImage = true;
67
            this.btnSend.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnSend_Click);
68
            // 
69
            // btLoad
70
            // 
71
            this.btLoad.Label = "Get Data";
72
            this.btLoad.Name = "btLoad";
73
            this.btLoad.ShowImage = true;
74
            this.btLoad.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btLoad_Click);
75
            // 
76
            // ID2Ribbon
77
            // 
78
            this.Name = "ID2Ribbon";
79
            this.RibbonType = "Microsoft.Excel.Workbook";
80
            this.Tabs.Add(this.tab1);
81
            this.Load += new Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.ID2Ribbon_Load);
82
            this.tab1.ResumeLayout(false);
83
            this.tab1.PerformLayout();
84
            this.group1.ResumeLayout(false);
85
            this.group1.PerformLayout();
86
            this.ResumeLayout(false);
87

  
88
        }
89

  
90
        #endregion
91

  
92
        internal Microsoft.Office.Tools.Ribbon.RibbonTab tab1;
93
        internal Microsoft.Office.Tools.Ribbon.RibbonGroup group1;
94
        internal Microsoft.Office.Tools.Ribbon.RibbonButton btnSend;
95
        internal Microsoft.Office.Tools.Ribbon.RibbonButton btLoad;
96
    }
97

  
98
    partial class ThisRibbonCollection
99
    {
100
        internal ID2Ribbon ID2Ribbon
101
        {
102
            get { return this.GetRibbon<ID2Ribbon>(); }
103
        }
104
    }
105
}
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2Ribbon.cs
1
using Microsoft.Office.Tools.Ribbon;
2
using System;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
using System.Windows.Forms;
7

  
8
namespace ID2ManagerImport
9
{
10
    public partial class ID2Ribbon
11
    {
12
        private void ID2Ribbon_Load(object sender, RibbonUIEventArgs e)
13
        {
14

  
15
        }
16

  
17
        private void btnSend_Click(object sender, RibbonControlEventArgs e)
18
        {
19
            Microsoft.Office.Interop.Excel.Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet;
20

  
21

  
22
            if (DataManager.Import(Globals.ThisAddIn.Application.ActiveWorkbook.Name, sheet))
23
            {
24
                MessageBox.Show("Send data Ok");
25
            }
26
        }
27

  
28
        private void btLoad_Click(object sender, RibbonControlEventArgs e)
29
        {
30
            Microsoft.Office.Interop.Excel.Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet;
31
        
32
            if (DataManager.Export(sheet))
33
            {
34
                MessageBox.Show("Read Ok");
35
            }
36
        }
37

  
38
    }
39
}
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2Ribbon.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
    <xsd:element name="root" msdata:IsDataSet="true">
65
      <xsd:complexType>
66
        <xsd:choice maxOccurs="unbounded">
67
          <xsd:element name="metadata">
68
            <xsd:complexType>
69
              <xsd:sequence>
70
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
71
              </xsd:sequence>
72
              <xsd:attribute name="name" use="required" type="xsd:string" />
73
              <xsd:attribute name="type" type="xsd:string" />
74
              <xsd:attribute name="mimetype" type="xsd:string" />
75
              <xsd:attribute ref="xml:space" />
76
            </xsd:complexType>
77
          </xsd:element>
78
          <xsd:element name="assembly">
79
            <xsd:complexType>
80
              <xsd:attribute name="alias" type="xsd:string" />
81
              <xsd:attribute name="name" type="xsd:string" />
82
            </xsd:complexType>
83
          </xsd:element>
84
          <xsd:element name="data">
85
            <xsd:complexType>
86
              <xsd:sequence>
87
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
              </xsd:sequence>
90
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
              <xsd:attribute ref="xml:space" />
94
            </xsd:complexType>
95
          </xsd:element>
96
          <xsd:element name="resheader">
97
            <xsd:complexType>
98
              <xsd:sequence>
99
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
              </xsd:sequence>
101
              <xsd:attribute name="name" type="xsd:string" use="required" />
102
            </xsd:complexType>
103
          </xsd:element>
104
        </xsd:choice>
105
      </xsd:complexType>
106
    </xsd:element>
107
  </xsd:schema>
108
  <resheader name="resmimetype">
109
    <value>text/microsoft-resx</value>
110
  </resheader>
111
  <resheader name="version">
112
    <value>2.0</value>
113
  </resheader>
114
  <resheader name="reader">
115
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
  <resheader name="writer">
118
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
  </resheader>
120
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121
  <data name="btnSend.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122
    <value>
123
        /9j/4AAQSkZJRgABAQEAYABgAAD/4QBiRXhpZgAATU0AKgAAAAgAAgE7AAIAAAARAAAAJpydAAEAAAAi
124
        AAAAOAAAAABLaW0gdGFlc3VuZyBLVFMuAABLAGkAbQAgAHQAYQBlAHMAdQBuAGcAIABLAFQAUwAuAAAA
125
        /9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxog
126
        LzMvKjInKisq/9sAQwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
127
        KioqKioqKioqKioqKioqKioq/8AAEQgA9ADuAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAAB
128
        AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEV
129
        UtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
130
        g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn
131
        6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQH
132
        BQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1
133
        Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWm
134
        p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR
135
        AD8A+kaKKKACiiigAooooAKKKKACiiigBrUhOBnrnsafSYoAaBn6Uk88NpbvPcypDDGpZ5JGCqoHUkno
136
        KS4uIbO2kuLqVIYYlLvI5wqgdSTXzh8TvidN4uuW03SXeHRon/3WuSOjN/s9wv4nnAAB6vL8Z/BcV6IP
137
        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
211
        UUUAFFFFABRRRQAUUUUABpnU0UUAf//Z
212
</value>
213
  </data>
214
</root>
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/AssemblyInfo.cs
1
using System.Reflection;
2
using System.Runtime.CompilerServices;
3
using System.Runtime.InteropServices;
4
using System.Security;
5

  
6
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 
7
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
8
// 이러한 특성 값을 변경하세요.
9
[assembly: AssemblyTitle("ID2ManagerImport")]
10
[assembly: AssemblyDescription("")]
11
[assembly: AssemblyConfiguration("")]
12
[assembly: AssemblyCompany("")]
13
[assembly: AssemblyProduct("ID2ManagerImport")]
14
[assembly: AssemblyCopyright("Copyright ©  2023")]
15
[assembly: AssemblyTrademark("")]
16
[assembly: AssemblyCulture("")]
17

  
18
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 
19
// 표시되지 않습니다.  COM에서 이 어셈블리의 형식에 액세스하려면 
20
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
21
[assembly: ComVisible(false)]
22

  
23
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
24
[assembly: Guid("c76dfd44-a403-4555-afa5-c2c517f1b794")]
25

  
26
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
27
//
28
//      주 버전
29
//      부 버전 
30
//      빌드 번호
31
//      수정 버전
32
//
33
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 
34
// 지정되도록 할 수 있습니다.
35
// [assembly: AssemblyVersion("1.0.*")]
36
[assembly: AssemblyVersion("1.0.0.0")]
37
[assembly: AssemblyFileVersion("1.0.0.0")]
38

  
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Resources.Designer.cs
1
//------------------------------------------------------------------------------
2
// <auto-generated>
3
//     This code was generated by a tool.
4
//     Runtime Version:4.0.30319.42000
5
//
6
//     Changes to this file may cause incorrect behavior and will be lost if
7
//     the code is regenerated.
8
// </auto-generated>
9
//------------------------------------------------------------------------------
10

  
11
namespace ID2ManagerImport.Properties {
12
    
13
    
14
    /// <summary>
15
    ///   A strongly-typed resource class, for looking up localized strings, etc.
16
    /// </summary>
17
    // This class was auto-generated by the StronglyTypedResourceBuilder
18
    // class via a tool like ResGen or Visual Studio.
19
    // To add or remove a member, edit your .ResX file then rerun ResGen
20
    // with the /str option, or rebuild your VS project.
21
    
22
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
23
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
24
    internal class Resources {
25
        
26
        private static global::System.Resources.ResourceManager resourceMan;
27
        
28
        private static global::System.Globalization.CultureInfo resourceCulture;
29
        
30
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
31
        internal Resources() {
32
        }
33
        
34
        /// <summary>
35
        ///   Returns the cached ResourceManager instance used by this class.
36
        /// </summary>
37
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
38
        internal static global::System.Resources.ResourceManager ResourceManager {
39
            get {
40
                if (object.ReferenceEquals(resourceMan, null)) {
41
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ID2ManagerImport.Properties.Resources", typeof(Resources).Assembly);
42
                    resourceMan = temp;
43
                }
44
                return resourceMan;
45
            }
46
        }
47
        
48
        /// <summary>
49
        ///   Overrides the current thread's CurrentUICulture property for all
50
        ///   resource lookups using this strongly typed resource class.
51
        /// </summary>
52
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
53
        internal static global::System.Globalization.CultureInfo Culture {
54
            get {
55
                return resourceCulture;
56
            }
57
            set {
58
                resourceCulture = value;
59
            }
60
        }
61
    }
62
}
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Resources.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:element name="root" msdata:IsDataSet="true">
64
      <xsd:complexType>
65
        <xsd:choice maxOccurs="unbounded">
66
          <xsd:element name="metadata">
67
            <xsd:complexType>
68
              <xsd:sequence>
69
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
70
              </xsd:sequence>
71
              <xsd:attribute name="name" type="xsd:string" />
72
              <xsd:attribute name="type" type="xsd:string" />
73
              <xsd:attribute name="mimetype" type="xsd:string" />
74
            </xsd:complexType>
75
          </xsd:element>
76
          <xsd:element name="assembly">
77
            <xsd:complexType>
78
              <xsd:attribute name="alias" type="xsd:string" />
79
              <xsd:attribute name="name" type="xsd:string" />
80
            </xsd:complexType>
81
          </xsd:element>
82
          <xsd:element name="data">
83
            <xsd:complexType>
84
              <xsd:sequence>
85
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
86
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
87
              </xsd:sequence>
88
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
89
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
90
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
91
            </xsd:complexType>
92
          </xsd:element>
93
          <xsd:element name="resheader">
94
            <xsd:complexType>
95
              <xsd:sequence>
96
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
97
              </xsd:sequence>
98
              <xsd:attribute name="name" type="xsd:string" use="required" />
99
            </xsd:complexType>
100
          </xsd:element>
101
        </xsd:choice>
102
      </xsd:complexType>
103
    </xsd:element>
104
  </xsd:schema>
105
  <resheader name="resmimetype">
106
    <value>text/microsoft-resx</value>
107
  </resheader>
108
  <resheader name="version">
109
    <value>2.0</value>
110
  </resheader>
111
  <resheader name="reader">
112
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
113
  </resheader>
114
  <resheader name="writer">
115
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
</root>
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Settings.Designer.cs
1
//------------------------------------------------------------------------------
2
// <auto-generated>
3
//     This code was generated by a tool.
4
//     Runtime Version:4.0.30319.42000
5
//
6
//     Changes to this file may cause incorrect behavior and will be lost if
7
//     the code is regenerated.
8
// </auto-generated>
9
//------------------------------------------------------------------------------
10

  
11
namespace ID2ManagerImport.Properties {
12
    
13
    
14
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
16
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17
        
18
        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19
        
20
        public static Settings Default {
21
            get {
22
                return defaultInstance;
23
            }
24
        }
25
    }
26
}
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Settings.settings
1
<?xml version='1.0' encoding='utf-8'?>
2
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
3
  <Profiles>
4
    <Profile Name="(Default)" />
5
  </Profiles>
6
  <Settings />
7
</SettingsFile>
ID2.Manager/ExcelAddin/ID2ManagerImport/ThisAddIn.Designer.cs
1
//------------------------------------------------------------------------------
2
// <auto-generated>
3
//     This code was generated by a tool.
4
//     Runtime Version:4.0.30319.42000
5
//
6
//     Changes to this file may cause incorrect behavior and will be lost if
7
//     the code is regenerated.
8
// </auto-generated>
9
//------------------------------------------------------------------------------
10

  
11
#pragma warning disable 414
12
namespace ID2ManagerImport {
13
    
14
    
15
    /// 
16
    [Microsoft.VisualStudio.Tools.Applications.Runtime.StartupObjectAttribute(0)]
17
    [global::System.Security.Permissions.PermissionSetAttribute(global::System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
18
    public sealed partial class ThisAddIn : Microsoft.Office.Tools.AddInBase {
19
        
20
        internal Microsoft.Office.Tools.CustomTaskPaneCollection CustomTaskPanes;
21
        
22
        internal Microsoft.Office.Tools.SmartTagCollection VstoSmartTags;
23
        
24
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
25
        private global::System.Object missing = global::System.Type.Missing;
26
        
27
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
28
        internal Microsoft.Office.Interop.Excel.Application Application;
29
        
30
        /// 
31
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
32
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
33
        public ThisAddIn(global::Microsoft.Office.Tools.Excel.ApplicationFactory factory, global::System.IServiceProvider serviceProvider) : 
34
                base(factory, serviceProvider, "AddIn", "ThisAddIn") {
35
            Globals.Factory = factory;
36
        }
37
        
38
        /// 
39
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
40
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
41
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
42
        protected override void Initialize() {
43
            base.Initialize();
44
            this.Application = this.GetHostItem<Microsoft.Office.Interop.Excel.Application>(typeof(Microsoft.Office.Interop.Excel.Application), "Application");
45
            Globals.ThisAddIn = this;
46
            global::System.Windows.Forms.Application.EnableVisualStyles();
47
            this.InitializeCachedData();
48
            this.InitializeControls();
49
            this.InitializeComponents();
50
            this.InitializeData();
51
        }
52
        
53
        /// 
54
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
55
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
56
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
57
        protected override void FinishInitialization() {
58
            this.InternalStartup();
59
            this.OnStartup();
60
        }
61
        
62
        /// 
63
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
64
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
65
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
66
        protected override void InitializeDataBindings() {
67
            this.BeginInitialization();
68
            this.BindToData();
69
            this.EndInitialization();
70
        }
71
        
72
        /// 
73
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
74
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
75
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
76
        private void InitializeCachedData() {
77
            if ((this.DataHost == null)) {
78
                return;
79
            }
80
            if (this.DataHost.IsCacheInitialized) {
81
                this.DataHost.FillCachedData(this);
82
            }
83
        }
84
        
85
        /// 
86
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
87
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
88
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
89
        private void InitializeData() {
90
        }
91
        
92
        /// 
93
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
94
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
95
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
96
        private void BindToData() {
97
        }
98
        
99
        /// 
100
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
101
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
102
        private void StartCaching(string MemberName) {
103
            this.DataHost.StartCaching(this, MemberName);
104
        }
105
        
106
        /// 
107
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
108
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
109
        private void StopCaching(string MemberName) {
110
            this.DataHost.StopCaching(this, MemberName);
111
        }
112
        
113
        /// 
114
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
115
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
116
        private bool IsCached(string MemberName) {
117
            return this.DataHost.IsCached(this, MemberName);
118
        }
119
        
120
        /// 
121
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
122
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
123
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
124
        private void BeginInitialization() {
125
            this.BeginInit();
126
            this.CustomTaskPanes.BeginInit();
127
            this.VstoSmartTags.BeginInit();
128
        }
129
        
130
        /// 
131
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
132
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
133
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
134
        private void EndInitialization() {
135
            this.VstoSmartTags.EndInit();
136
            this.CustomTaskPanes.EndInit();
137
            this.EndInit();
138
        }
139
        
140
        /// 
141
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
142
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
143
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
144
        private void InitializeControls() {
145
            this.CustomTaskPanes = Globals.Factory.CreateCustomTaskPaneCollection(null, null, "CustomTaskPanes", "CustomTaskPanes", this);
146
            this.VstoSmartTags = Globals.Factory.CreateSmartTagCollection(null, null, "VstoSmartTags", "VstoSmartTags", this);
147
        }
148
        
149
        /// 
150
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
151
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
152
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
153
        private void InitializeComponents() {
154
        }
155
        
156
        /// 
157
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
158
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
159
        private bool NeedsFill(string MemberName) {
160
            return this.DataHost.NeedsFill(this, MemberName);
161
        }
162
        
163
        /// 
164
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
165
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
166
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
167
        protected override void OnShutdown() {
168
            this.VstoSmartTags.Dispose();
169
            this.CustomTaskPanes.Dispose();
170
            base.OnShutdown();
171
        }
172
    }
173
    
174
    /// 
175
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
176
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")]
177
    internal sealed partial class Globals {
178
        
179
        /// 
180
        private Globals() {
181
        }
182
        
183
        private static ThisAddIn _ThisAddIn;
184
        
185
        private static global::Microsoft.Office.Tools.Excel.ApplicationFactory _factory;
186
        
187
        private static ThisRibbonCollection _ThisRibbonCollection;
188
        
... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)