读取EXCLE文件数据,将其转换成INI文件并保存,急求.在线等高手帮我解答了.

解决方案 »

  1.   

     把EXCLE文件读进内存里,在写如ini就是了
    用streamwriter写
      

  2.   

    将 EXCLE文件转换成XML文件。如recordset 读取EXCEL数据 FILL到XML文件。XML文件重命名为INI
      

  3.   

    读excel的例子
    using System;   
    using System.Collections.Generic;   
    using System.Text;   
    using System.Data;   
    using System.Data.OleDb;   
    using System.Data.SqlClient;   
    using System.IO;   
    using Microsoft.Office.Interop.Excel;   
    namespace TestAccess   
    {   
        class Program   
        {   
            static void Main(string[] args)   
            {   
      
                string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;";   
                strConnection += @"Data Source=C:\Documents and Settings\v-changl\My Documents\couse.xlsx;";   
                strConnection += "Extended Properties=\"Excel 12.0 Xml;HDR=YES\";";   
                OleDbConnection objConnection = new OleDbConnection(strConnection);   
                objConnection.Open();   
                OleDbDataAdapter myCommandd = new OleDbDataAdapter("select * from [Sheet1$]", objConnection);   
                DataSet ds = new DataSet();   
                myCommandd.Fill(ds, "[Sheet1$]");   
                System.Data.DataTable dt = ds.Tables["[Sheet1$]"];   
                Console.WriteLine(dt.Columns[0].ToString());   
                Console.WriteLine(dt.Columns[1].ToString());   
                DataRow drDisplay = dt.Rows[0];   
                int[] num = new int[dt.Columns.Count];   
                for (int j = 0; ; )   
                {   
                    for (int i = 0; i < dt.Columns.Count; i++)   
                    {   
      
                        if (drDisplay[i] is DBNull) ;   
                        else  
                            num[i] += Convert.ToInt32(drDisplay[i]);   
      
                    }   
                    if (++j >= dt.Rows.Count) break;   
                    drDisplay = dt.Rows[j];   
                }   
                objConnection.Close();   
                object MissingValue = Type.Missing;   
                Microsoft.Office.Interop.Excel.Application app = new Application();   
                Microsoft.Office.Interop.Excel.Workbook wbook = app.Workbooks.Open(@"C:\Documents and Settings\v-changl\My Documents\couse.xlsx", MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue, MissingValue, MissingValue,   
    MissingValue);   
                Microsoft.Office.Interop.Excel.Worksheet wsheet = wbook.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;   
                for (int i = 0; i < dt.Columns.Count; i++)   
                {   
                    //注意下面是i+1,,excel小标默认从1开始   
                    wsheet.Cells[dt.Rows.Count + 2, i + 1] = num[i].ToString();   
                }   
      
                wbook.Save();   
                wbook.Close(true, null, null);   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wsheet);   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wbook);   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(app);   
                wsheet = null;   
                wbook = null;   
                app = null;   
                GC.Collect();   
            }   
        }   
    }  
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/LCL_data/archive/2009/05/06/4154784.aspx
      

  4.   

    streamwriter写文件例子
    using System;
      2using System.Data;
      3using System.IO;
      4using System.Text;
      5
      6/**//// <summary>
      7/// Summary description for FileReadAndWrite
      8/// </summary>
      9public class FileReadAndWrite
     10{
     11    public FileReadAndWrite()
     12    {
     13        //
     14        // TODO: Add constructor logic here
     15        //
     16    }
     17    /**//// <summary>
     18    /// 用FileStream写文件
     19    /// </summary>
     20    /// <param name="str"></param>
     21    /// <returns></returns>
     22    public void FileStreamWriteFile(string str)
     23    {
     24        byte[] byData;
     25        char[] charData;
     26        try
     27        {
     28            FileStream nFile = new FileStream("love.txt", FileMode.Create);
     29            //获得字符数组
     30            charData = str.ToCharArray();
     31            //初始化字节数组
     32            byData = new byte[charData.Length];
     33            //将字符数组转换为正确的字节格式
     34            Encoder enc = Encoding.UTF8.GetEncoder();
     35            enc.GetBytes(charData, 0, charData.Length,byData,0,true);
     36            nFile.Seek(0, SeekOrigin.Begin);
     37            nFile.Write(byData, 0, byData.Length);
     38        }
     39        catch (Exception ex)
     40        {
     41            throw ex;
     42        }
     43    }
     44    /**//// <summary>
     45    /// FileStream读取文件
     46    /// </summary>
     47    /// <param name="filePath"></param>
     48    /// <returns></returns>
     49    public string FileStreamReadFile(string filePath)
     50    {
     51        byte[] data = new byte[100];
     52        char[] charData = new char[100];
     53        try
     54        {
     55            FileStream file = new FileStream(filePath, FileMode.Open);
     56            //文件指针指向0位置
     57            file.Seek(0, SeekOrigin.Begin);
     58            //读入两百个字节
     59            file.Read(data, 0, 200);
     60            //提取字节数组
     61            Decoder dec = Encoding.UTF8.GetDecoder();
     62            dec.GetChars(data, 0, data.Length, charData, 0);
     63        }
     64        catch (Exception ex)
     65        {
     66            throw ex;
     67        }
     68        return Convert.ToString(charData);
     69    }
     70    /**//// <summary>
     71    /// StreamWriter写文件
     72    /// </summary>
     73    public void StreamWriterWriteFile()
     74    {
     75        try
     76        {
     77            FileStream nFile = new FileStream("love.txt", FileMode.CreateNew);
     78            StreamWriter writer = new StreamWriter(nFile);
     79
     80            writer.WriteLine("I love You!");
     81            writer.WriteLine("Do you love me!");
     82            writer.Close();
     83        }
     84        catch
     85        { }
     86    }
     87    /**//// <summary>
     88    /// StreamReader读取文件
     89    /// </summary>
     90    /// <returns></returns>
     91    public string StreamReaderReadFile()
     92    {
     93        string str="";
     94        try
     95        {
     96            FileStream file = new FileStream("love.txt", FileMode.Open);
     97            StreamReader sr = new StreamReader(file);
     98            while (sr.ReadLine()!=null)
     99            {
    100                str += sr.ReadLine();
    101            }
    102            //或者str = sr.ReadToEnd();
    103            sr.Close();
    104        }
    105        catch
    106        { }
    107        return str;
    108    }
    109}
    110
      

  5.   

    谢谢~~~~关键这个从EXCLE里读出来再写到INI的那个格式的转换,我不好怎么下笔也~
      

  6.   


     你读进DataTable里面在遍历DataTable就可以了,格式的转换?
    有这个问题呒吗