工具原料:
Windows 7,Visual Studio 2010, Microsoft Office 2007
创建解决方案
菜单》新建》项目》Windows窗体应用程序:
添加相关组件:
添加两个DataGridView,一个TextBox,两个按钮 ,如下图:
添加Excel资源:
C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据。
先在文件夹中新建一个Excel文件,在Sheet1表的第一行设置列名:
双击“Resources.resx”文件打开资源文件视图:
添加现有文件,选择刚刚创建的Excel文件
从资源中提取Excel文件
string excelPath = AppDomain.CurrentDomain.BaseDirectory + "Excel" + DateTime.Now.Ticks + ".xlsx";
if (System.IO.File.Exists(excelPath))
{
textBox1.Text += ("文件已经存在!");
return;
}
try
{
//从资源中提取Excel文件
System.IO.FileStream fs = new System.IO.FileStream(excelPath, FileMode.OpenOrCreate);
fs.SetLength(0);
fs.Write(Properties.Resources.Excel, 0, Properties.Resources.Excel.Length);
fs.Close();
fs.Dispose();
textBox1.Text = "提取Excel文件成功!" + "\r\n";
}
catch (System.Exception ex)
{
excelPath = string.Empty;
textBox1.Text += ("提取Excel文件失败:" + ex.Message);
textBox1.Text += ("\r\n");
Application.DoEvents();
return;
}
定义连接字符串
//定义OleDB连接字符串
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;" + "data source=" + @excelPath + ";Extended Properties='Excel 12.0; HDR=yes; IMEX=10'";
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = strConn;
注意:连接字符串中IMEX的值使用的是10,如果是1或2,在执行Insert Into语句时就会报“操作必须使用一个可更新的查询”的错误。
在dataGridView1中显示Excel文件中的所有表的信息
DataTable oleDt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
dataGridView1.DataSource = oleDt;
dataGridView1.Show();
向"Sheet1"表中插入几条数据,访问Excel的表的时候需要在表名后添加"$"符号,Insert语句可以不指定列名
OleDbCommand cmd = null;
try
{
//向"Sheet1"表中插入几条数据,访问Excel的表的时候需要在表名后添加"$"符号,Insert语句可以不指定列名
cmd = new OleDbCommand("Insert Into [Sheet1$] Values('abc', 'bac', '0', '123456', 'test','测试','aa')", conn);//(A,B,C,D,E,F,G)
cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery();
cmd.ExecuteNonQuery();
}
catch (System.Exception ex)
{
textBox1.Text += ("插入数据失败:" + ex.Message);
textBox1.Text += ("\r\n");
}
在dataGridView2中显示表"Sheet1"的内容,访问Excel的表的时候需要在表名后添加"$"符号
cmd = new OleDbCommand("Select * From [Sheet1$]", conn);
OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
dataGridView2.DataSource = ds.Tables[0];
遍历Schema的内容
DataTable dt = conn.GetSchema();
for (int i = 0; i < dt.Columns.Count; i++)
{
textBox1.Text += dt.Columns[i].Caption;
if (i + 1 < dt.Columns.Count)
{
textBox1.Text += ",";
}
}
for (int j = 0; j < dt.Rows.Count; j++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
if (dt.Rows[j][dt.Columns[i]] != null)
{
textBox1.Text += dt.Rows[j][dt.Columns[i]].ToString();
}
else
{
textBox1.Text += "null";
}
if (i + 1 < dt.Columns.Count)
{
textBox1.Text += ",";
}
}
textBox1.Text += ("\r\n");
}
关闭Excel数据连接
if (conn.State != ConnectionState.Closed)
{
try
{
conn.Close();
}
catch (System.Exception ex)
{
textBox1.Text += ("关闭Excel数据连接:" + ex.Message);
textBox1.Text += ("\r\n");
}
}
打开文件目录
System.Diagnostics.Process.Start("explorer.exe", AppDomain.CurrentDomain.BaseDirectory);
源码下载:http://download.csdn.net/detail/testcs_dn/7328685
分享到:
相关推荐
本主题将详细探讨如何使用C#实现从Excel文件导入数据到ListView控件,以及如何将ListView中的数据导出回Excel文件。这两个操作在数据分析、报表生成和数据管理等场景中非常常见。 首先,要导入Excel文件到ListView...
总结来说,C#导出Excel文件涉及选择合适的库,如EPPlus,创建Excel包,添加工作表,以及将数据写入工作表。这个过程可以适应各种数据源和数据结构,使得C#成为处理Excel文件的强大工具。在实际应用中,可以根据具体...
在本文中,我们将探讨如何使用C#语言将数据库数据导出到Excel文件中。 Response流 在C#中,Response流是指ASP.NET框架中用于将数据发送到客户端的流媒体。Response流可以将服务器端的数据推送到客户端,实现实时...
在这个场景中,"C#下成功登录后datagridview数据导出excel"的标题描述了一个常见的需求:用户通过登录窗口验证身份后,能够将数据显示在datagridview控件中,并且支持将这些数据导出到Excel文件中。这一过程涵盖了多...
本文将基于给定的文件信息,深入探讨C#中将数据导出到Excel的几种方法,包括在ASP.NET环境中导出Excel的具体步骤。 #### ASP.NET中导出Excel的方法概览 在ASP.NET中导出数据到Excel主要分为两种基本策略:一是将...
C#大量数据导出到Excel,超过65536行时自动分页导出
c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#)c# 导出到Excel (C#) winform
在C#编程中,将大数据量导出到Excel是一个常见的需求,特别是在数据分析、报表生成或者数据交换场景下。Microsoft.Office.Interop.Excel库是.NET Framework提供的一个用于与Microsoft Excel交互的COM接口,它允许...
以上就是使用C#和EPPlus库将`TreeView`数据导出到Excel的基本步骤。在实际应用中,可能需要根据具体需求进行调整,比如处理自定义数据、设置样式、处理错误等。记住,确保在项目中正确引用EPPlus库,并在使用前检查...
C# 创建有密码的Excel 文件C# 创建有密码的Excel 文件
C#快速导出Excel文件,3秒可导10万行数据
"C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法" 在导出Excel文件时,经常会遇到“文件格式与扩展名指定格式不一致”的问题,这是因为大多数人在导出Excel文件时,都是默认保存Excel的格式...
下面,我们将详细讨论如何使用NPOI库在C#中实现Excel导出功能: ### 导入NPOI库 首先,你需要在项目中引用NPOI相关的dll文件。如果你使用的是NuGet包管理器,可以搜索"NPOI"并安装对应的包,这样会自动引入所有必要...
本主题聚焦于如何利用C#将数据导出到Excel模板,并自定义字段,这是一个常见的需求,尤其是在数据分析、报告生成和数据共享的场景中。 在C#中,我们可以利用各种库来操作Excel,如EPPlus、NPOI或Microsoft.Office....
标题"**C#导出Excel复杂表头解决方案**"涉及的是在C#应用程序中如何高效地创建包含复杂结构的Excel表头,这在数据报告、数据分析或自动化办公场景中非常常见。复杂表头可能包括多级标题、合并单元格、自定义样式等。...
在C#中,我们可以使用模板来设定导出Excel文件的基本框架,这样每次导出时只需填充动态数据即可。 C#导出Excel的方式多种多样,常见的库有EPPlus、NPOI、 ClosedXML等。EPPlus是一个用于读写Excel 2007/2010 xlsx/...
`doExport`方法是整个导出逻辑的核心部分,它负责创建一个新的Excel工作簿,并将数据填充进去。 ```csharp private void doExport(string strExcelFileName) { Microsoft.Office.Interop.Excel.Application excel =...
总结来说,C#通过不同的库和API提供了解决方案来导出Excel和PDF文件。这不仅增强了应用程序的功能,也提高了用户的数据管理和分享能力。在项目开发中,理解并熟练运用这些技术对于提升用户体验和增强系统功能具有...