using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using  Microsoft.Office.Interop.Excel;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace txt批处理


{
    class 保存

    
{
        internal static bool 写入EXCEL(DataGridView gridView, string fileName, bool isShowExcle)

        
{


            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
            try

            
{
                if (app == null)

                
{
                    return false;
                }
                app.Visible = isShowExcle;
                Workbooks workbooks = app.Workbooks;
                _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                Sheets sheets = workbook.Worksheets;
                _Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
                if (worksheet == null)

                
{
                    return false;
                }
                string sLen = "";
                //取得最后一列列名
                char H = (char)(64 + gridView.ColumnCount / 26);
                char L = (char)(64 + gridView.ColumnCount % 26);
                if (gridView.ColumnCount < 26)

                
{
                    sLen = L.ToString();
                }
                else

                
{
                    sLen = H.ToString() + L.ToString();
                }

                //标题
                string sTmp = sLen + "1";
                Range ranCaption = worksheet.get_Range(sTmp, "A1");
                string[] asCaption = new string[gridView.ColumnCount];
                for (int i = 0; i < gridView.ColumnCount; i++)

                
{
                    asCaption[i] = gridView.Columns[i].HeaderText;
                }
                ranCaption.Value2 = asCaption;

                //数据
                for (int r = 0; r < gridView.RowCount; r++)

                
{
                    for (int l = 0; l < gridView.Columns.Count; l++)

                    
{
                        if (gridView[l, r].Value != null)

                        
{
                            worksheet.Cells[r + 2, l + 1] = gridView[l, r].Value.ToString().Trim();
                        }
                    }
                }


                workbook.SaveCopyAs(fileName);
                workbook.Saved = true;
                workbook.Close(false, true, null);
            }
            catch

            
{
                return false;
            }
            finally

            
{
                //关闭
                app.UserControl = false;
                app.Quit();
            }
            return true;

        }

 

        internal static bool 写入xml(DataGridView dataGridView, string 文件名)

        
{
            XmlTextWriter writer = null;
            bool 处理结果;
            try

            
{
                writer = new XmlTextWriter(文件名, null);
                writer.Formatting = Formatting.Indented;    //为使文件易读,使用缩进
                writer.WriteComment("采集的数据");    //写入注释
                writer.WriteStartElement("信息列表");
                int 行 = dataGridView.Rows.Count;
                int 列 = dataGridView.Columns.Count;
                string[] 标题 = new string[列];
                for (int j = 0; j < 列; j++)

                
{
                    标题[j] = dataGridView.Columns[j].HeaderText;
                }
                for (int i = 0; i < 行; i++)

                
{
                    writer.WriteStartElement("信息");
                    for (int j = 0; j < 列; j++)

                    
{                      
                        string 信息 = dataGridView[j, i].Value != null ? dataGridView[j, i].Value.ToString() : "";
                        writer.WriteElementString(标题[j], 信息);
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                writer.Flush();
                writer.Close();

                处理结果 = true;

            }
            catch (Exception aa)

            
{
                MessageBox.Show(aa.Message);
                处理结果 = false;
            }
            finally

            
{
                if (writer != null)

                
{
                    writer.Close();
                }
                
            }
            return 处理结果;
        }
      

        //XML序列化写入
        //string 文件名 = AppDomain.CurrentDomain.BaseDirectory + "\\配置.xml";
        //T 为可序列化的类
        public static bool 写入配置<T>(string 文件名, T 任务A)

        
{
            try

            
{
                XmlSerializer XML序列 = new XmlSerializer(typeof(T));
                Stream 数据流 = new FileStream(文件名, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                XML序列.Serialize(数据流, 任务A);
                数据流.Close();

                return true;
            }
            catch (Exception ee)

            
{
                return false;
            }
        }


        //XML序列化读出    
        //T 为可反序列化的类
        public static T 读出配置<T>(string 文件名)

        
{            
            XmlSerializer xs = new XmlSerializer(typeof(T));
            Stream stream = null;
            try

            
{
                stream = new FileStream(文件名, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                T 结果 = (T)xs.Deserialize(stream);
                stream.Close();
                return 结果;
            }
            catch (Exception ee)

            
{
                if (stream != null)
                    stream.Close();
                MessageBox.Show(ee.Message, "读取失败");
                return default(T);
            }           
        }


        public static bool 写入TXT(DataGridView 数据表, string 文件名)

        
{

            if (文件名.Trim() == "")
                return false;

            StringBuilder s = new StringBuilder();
            int 行数 = 数据表.Rows.Count;
            int 列数 = 数据表.Columns.Count;
            for (int i = 0; i < 行数; i++)

            
{
                for (int j = 0; j < 列数; j++)

                
{
                    if (数据表[j, i].Value != null)

                    
{
                        s.AppendLine(数据表[j, i].Value.ToString().Trim() );
                    }
                }
                s.AppendLine("");
            }
            
            StreamWriter MyWriter = null;
            try

            
{
                MyWriter = new StreamWriter(文件名, false, System.Text.Encoding.Default);
                MyWriter.Write(s);
                return true;
            }
            catch (Exception Err)

            
{
                MessageBox.Show(Err.Message, "写文本文件发生错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return false;
            }
            finally

            
{
                if (MyWriter != null)

                
{
                    MyWriter.Close();
                }
            }
        }
    }
}



  
  
转载于:https://www.cnblogs.com/zhy4606/archive/2007/12/12/991891.html