공간 ExcelToXml { 클래스 프로그램 { [STAThread] 정적 무효 메인 ( 문자열 []에 args) { 프로그램 프로그램 = 새로운 프로그램 (); 데이터 세트와 DataSet = program.getData (); Program.ConvertDataSetToXMLFile (데이터 세트 " D : \\ " + dataSet.DataSetName + " .XML " ); } 공공 데이터 집합 GetData의 () { // 打开文件 OpenFileDialog를 파일 = 새로운OpenFileDialog를 (); file.Filter = " 엑셀 (. * XLSX) | * .XLSX | 엑셀 (. * XLS) | * .XLS " ; file.InitialDirectory = Environment.GetFolderPath (Environment.SpecialFolder.Desktop); file.Multiselect는 = 거짓 ; 경우 (file.ShowDialog () == DialogResult.Cancel) 복귀 널 ; // 判断文件后缀 var에 경로 = file.FileName; 문자열 이름 = Path.GetFileNameWithoutExtension (경로); 문자열 fileSuffix =System.IO.Path.GetExtension (경로); 경우 ( 문자열 .IsNullOrEmpty (fileSuffix)) 반환 널 (null) ; /// /加载엑셀 // Microsoft.Office.Interop.Excel.Application 응용 프로그램 = 새 Microsoft.Office.Interop.Excel.Application (); // 获取权限 // Microsoft.Office.Interop.Excel.Workbooks 통합 문서의 =의 app.Workbooks; // Microsoft.Office.Interop.Excel.Workbook 통합 문서 = workbooks.Add (경로); // Microsoft.Office.Interop.Excel.Sheets 시트 = workbook.Sheets; //(. 1) 워크 시트 = Microsoft.Office.Interop.Excel.Worksheet (Microsoft.Office.Interop.Excel.Worksheet) sheet.get_Item; // (1) 첫 번째 시트에 대한 시트를 가져옵니다 // 더블 usedRows = app.WorksheetFunction. COUNTA (worksheet.Columns [3.]) // 제 칼럼의 행수 // 문자열 usedRows.ToString NUM = (); // 객체 [] twoDoubleList worksheet.Range = "A1 : 아"NUM +]. 값 2; //이 배열을 얻을 사용 (데이터 집합 DS = 새로운 새로운 데이터 집합 ()) { // 2003 버전이나 2007 버전의 Excel 파일을 결정하는 문자열 connString = "" ; // Server 데이터베이스 = =이;. ExcelToXml; 통합 보안 = SSPI 경우 (fileSuffix == " .XLS " ) connString = " 공급자 = Microsoft.Jet.OLEDB.4.0; " + " 데이터 원본 = " + 경로 + " , " + " ; 확장 속성 = \"엑셀 8.0; HDR = YES ; IMEX = 1 "\ " ; 다른 connString =를 " 공급자 = Microsoft.ACE.OLEDB.12.0를, " + " 데이터 원본 = " + 경로 +를 " ; "; 확장 속성 = \ "엑셀 12.0; HDR = YES; IMEX = 1 \" " ; // 读取文件 문자열 sql_select이 = " [Sheet1의 $] SELECT * FROM " ; 사용 (는 OleDbConnection CONN = 새로운 되어 OleDbConnection을 (connString)) 사용 (cmd를 위해 OleDbDataAdapter = 새로운 위해 OleDbDataAdapter (sql_select 코네티컷)) { conn.Open (); cmd.Fill (DS) ds.DataSetName = 이름; } 경우 (DS == 널 || ds.Tables.Count <=0 ) 복귀 널 ; 반환 DS를; } } 공공 정적 무효 ConvertDataSetToXMLFile (데이터 세트 xmlDS, 문자열 XMLFILE) { MemoryStream을 스트림 = 널 ; XmlTextWriter의 작가 = 널 (null) ; 시도 { 스트림 = 새 ) (MemoryStream을을; // 从스트림装载到XmlTextReader는 작가 = 새로운XmlTextWriter에 (트림, Encoding.Unicode) // 되는 WriteXml 파일 작성 방법. xmlDS.WriteXml (작성자) 의 INT COUNT = ( INT ) Stream.length; 바이트 [] = ARR 새로운 새 바이트 [COUNT]을; stream.Seek ( 0 , SeekOrigin.Begin) Stream.Read (ARR, 0 , COUNT는) // 유니 코드 텍스트를 반환 UnicodeEncoding, UTF = 새로운 새 ; UnicodeEncoding () StreamWriter는 SW = 새로운 새 StreamWriter는 (XMLFILE)를; sw.WriteLine ( "<? XML 버전 = \ "1.0 \"인코딩 = \ "UTF-8 \"?> " ) sw.WriteLine (utf.GetString (도착) .Trim ()); sw.Close (); } 캐치 (시스템 .Exception 예) { // 던져 예; MessageBox.Show (ex.Message); // Console.WriteLine (ex.Message); // Console.ReadLine (); } 마지막으로 { 경우 (작가! = null이 ) 작가. 닫기 (); } } } }
이것은 변환 도구의 1 세대 버전입니다.
다운로드 : HTTPS : //pan.baidu.com/s/1KCA5E367g26GIvhJNVJKxw