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();
}
}
用的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();
}
}