博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Excel转换成xml文件
阅读量:4692 次
发布时间:2019-06-09

本文共 4178 字,大约阅读时间需要 13 分钟。

namespace ExcelToXml{    class Program    {        [STAThread]        static void Main(string[] args)        {            Program program = new Program();            DataSet dataSet= program.getData();            Program.ConvertDataSetToXMLFile(dataSet,"D:\\"+dataSet.DataSetName+".xml");        }        public DataSet getData()        {            //打开文件            OpenFileDialog file = new OpenFileDialog();            file.Filter = "Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";            file.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);            file.Multiselect = false;            if (file.ShowDialog() == DialogResult.Cancel)                return null;            //判断文件后缀            var path = file.FileName;                        string name = Path.GetFileNameWithoutExtension(path);            string fileSuffix = System.IO.Path.GetExtension(path);            if (string.IsNullOrEmpty(fileSuffix))                return null;            ////加载Excel            //Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();  //获取权限            //Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;            //Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(path);            //Microsoft.Office.Interop.Excel.Sheets sheet = workbook.Sheets;            //Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheet.get_Item(1);//获取sheet  (1)为第一个sheet                     //double usedRows = app.WorksheetFunction.CountA(worksheet.Columns[3]); //第3列的行数                      //string num = usedRows.ToString();            //object[,] twoDoubleList = worksheet.Range["A1:AH" + num].Value2; //获取数组            using (DataSet ds = new DataSet())            {                //判断Excel文件是2003版本还是2007版本                string connString = ""; //server=.;database=ExcelToXml;integrated security=SSPI                if (fileSuffix == ".xls")                    connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";                else                    connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";                //读取文件                string sql_select = " SELECT * FROM [Sheet1$]";                using (OleDbConnection conn = new OleDbConnection(connString))                using (OleDbDataAdapter cmd = new OleDbDataAdapter(sql_select, conn))                {                    conn.Open();                    cmd.Fill(ds);                    ds.DataSetName = name;                }                if (ds == null || ds.Tables.Count <= 0) return null;                return ds;            }        }                public static void ConvertDataSetToXMLFile(DataSet xmlDS, string xmlFile)        {            MemoryStream stream = null;            XmlTextWriter writer = null;            try            {                stream = new MemoryStream();                //从stream装载到XmlTextReader                writer = new XmlTextWriter(stream, Encoding.Unicode);                //用WriteXml方法写入文件.                xmlDS.WriteXml(writer);                int count = (int)stream.Length;                byte[] arr = new byte[count];                stream.Seek(0, SeekOrigin.Begin);                stream.Read(arr, 0, count);                //返回Unicode编码的文本                UnicodeEncoding utf = new UnicodeEncoding();                StreamWriter sw = new StreamWriter(xmlFile);                sw.WriteLine("
"); sw.WriteLine(utf.GetString(arr).Trim()); sw.Close(); } catch (System.Exception ex) { //throw ex; MessageBox.Show(ex.Message); //Console.WriteLine(ex.Message); //Console.ReadLine(); } finally { if (writer != null) writer.Close(); } } }}

这个是转换工具的初代版本。

工具下载:https://pan.baidu.com/s/1KCA5E367g26GIvhJNVJKxw

转载于:https://www.cnblogs.com/qmz-blog/p/11511125.html

你可能感兴趣的文章
斑马为什么有条纹?
查看>>
android多层树形结构列表学习笔记
查看>>
Android_去掉EditText控件周围橙色高亮区域
查看>>
《构建之法》第一、二、十六章阅读笔记
查看>>
arrow:让Python的日期与时间变的更好
查看>>
(转)Excel的 OleDb 连接串的格式(连接Excel 2003-2013)
查看>>
Java并发编程
查看>>
Git Stash用法
查看>>
sql server 2008学习8 sql server存储和索引结构
查看>>
Jquery radio选中
查看>>
postgressql数据库中limit offset使用
查看>>
测试思想-集成测试 关于接口测试 Part 2
查看>>
windows下mysql密码忘了怎么办?【转】
查看>>
php生成器使用总结
查看>>
T-SQL中的indexof函数
查看>>
javascript基础之数组(Array)对象
查看>>
mysql DML DDL DCL
查看>>
RAMPS1.4 3d打印控制板接线与测试1
查看>>
python with语句中的变量有作用域吗?
查看>>
24@Servlet_day03
查看>>