Visual Studio 2005 C# 读写Excel文件

做作业的时候查了一点儿资料,
用的vs2k5 读 excel 2007
发现用起来非常简单。。。现在编程语言没话说!

1
项目-添加引用-COM-Microsoft Excel 12.0 Object Library
&& -Microsoft Office 12.0 Object Library

2
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;
using System.IO;
using System.Reflection;

3
            string originalFile = System.Windows.Forms.Application.StartupPath + @".\a.xlsx";
            string outputFile;
            SaveFileDialog save = new SaveFileDialog();
            save.InitialDirectory = "D:\\";
            save.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
            save.FilterIndex = 1;
            save.RestoreDirectory = true;
            if (save.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    outputFile = save.FileName;
                    System.IO.File.Copy(originalFile, outputFile, true);
                    ExcelRS = new Microsoft.Office.Interop.Excel.ApplicationClass();
                    //打开目标文件outputFile
                    RSbook = ExcelRS.Workbooks.Open(outputFile, missing, missing, missing, missing, missing,
                        missing, missing, missing, missing, missing, missing, missing, missing, missing);
                    //设置第一个工作溥
                    RSsheet = (Microsoft.Office.Interop.Excel.Worksheet)RSbook.Sheets.get_Item(1);
                    //激活当前工作溥
                    RSsheet.Activate();
                    RSsheet.Cells[1, 1] = dataGridView1.SelectedRows.Count;
                    for (int i = 0; i < dataGridView1.SelectedRows.Count; ++i)
                    {
                        for (int j = 0; j < 11; ++j)
                        {
                            RSsheet.Cells[i + 2, j + 1] = dataGridView1.Rows[dataGridView1.SelectedRows[i].Index].Cells[j].Value.ToString().Trim();
                            // RSsheet.Cells
                            RSsheet.get_Range(RSsheet.Cells[i + 2, j + 1], RSsheet.Cells[i + 2, j + 1]).EntireColumn.ColumnWidth = 40;
                            //RSsheet.get_Range(RSsheet.Cells[i + 2, j + 1], missing).auto
                        }
                    }
                    RSbook.Save();
                    ExcelRS.DisplayAlerts = true;
                    ExcelRS.Visible = true;
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    ExcelRS.Quit();
                }
            }



4
            OpenFileDialog open = new OpenFileDialog();
            open.InitialDirectory = @"D:\";
            open.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
            open.FilterIndex = 1;
            open.RestoreDirectory = true;

            if (open.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    ExcelRS = new Microsoft.Office.Interop.Excel.ApplicationClass();
                    RSbook = ExcelRS.Workbooks.Open(open.FileName, missing, missing, missing, missing, missing,
                        missing, missing, missing, missing, missing, missing, missing, missing, missing);
                    RSsheet = (Microsoft.Office.Interop.Excel.Worksheet)RSbook.Sheets.get_Item(1);
                    RSsheet.Activate();
                    Microsoft.Office.Interop.Excel.Range range = RSsheet.get_Range("A" + i, Type.Missing);
                    counts = int.Parse(range.Text.ToString().Trim());
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    ExcelRS.Quit();
                    conn.Close();
                }
            }
posted @ 2008-08-25 11:36  kin2321  阅读(383)  评论(0编辑  收藏  举报