社区
C#
帖子详情
如何实现dataset导出到excel,并且能保证相应的效率。。
iyranly
2008-01-22 02:41:06
如何实现dataset导出到excel,并且能保证相应的效率。。 非常急,着急得很....解决立即给分...
...全文
99
3
打赏
收藏
如何实现dataset导出到excel,并且能保证相应的效率。。
如何实现dataset导出到excel,并且能保证相应的效率。。 非常急,着急得很....解决立即给分...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
michaelwangwh
2008-01-22
打赏
举报
回复
加office的refrence,用xlapp,xlworksheet, cells[i][j]=datatable[i][j]
效率方面理论上用这样的方法了最快了,不清楚lz的效率指的什么?
iyranly
2008-01-22
打赏
举报
回复
不错,收藏!
沅江汐水
2008-01-22
打赏
举报
回复
/// <summary>
/// 导出数据
/// </summary>
/// <param name="dset">将要导出的DataSet,其中的每一个Table必须有一个明确的名字</param>
/// <param name="filepath">目的文件的路径,该数据库必须存在且允许internet来宾用户写入</param>
/// <param name="maxlenth">DataSet中字段的最大长度</param>
/// <returns></returns>
public static bool importToAccess( DataSet dset/*DataTable dt*/,string filepath,/*string tableName,*/int maxlenth)
{
bool ret = false;
if(!Path.GetExtension(filepath).ToLower().Equals(".mdb"))
return ret;
if(!File.Exists(filepath))
// File.Create(filepath);
{
throw new Exception("文件不存在!");
}
if(dset != null && dset.Tables.Count > 0)
{
//2008-01-16
//OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;jet OleDB:Database Password=sva!@#$%^&*();Data Source=" + filepath);
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;Data Source=" + filepath);
//2008-01-16
try
{
conn.Open();
for(int i = 0; i<dset.Tables.Count; i++)
{
try
{
OleDbCommand cmd = new OleDbCommand("Select * from " + dset.Tables[i].TableName/*tableName*/,conn);
cmd.ExecuteNonQuery();
cmd.CommandText = "Drop Table " + dset.Tables[i].TableName; /*tableName;*/
cmd.ExecuteNonQuery();
cmd.Dispose();
}
catch
{
}
string str = "Create Table " + /*tableName*/ dset.Tables[i].TableName + "(" ;
for(int j=0;j<dset.Tables[i].Columns.Count;j++)
{
str = str + "[" + dset.Tables[i].Columns[j].ColumnName + "] "; // + dt.Columns[i].DataType.ToString() + ",";
string type = dset.Tables[i].Columns[j].DataType.ToString();
switch(dset.Tables[i].Columns[j].DataType.ToString())
{
case "System.String":
str = str + "varchar(" + maxlenth + "),";
break;
case "System.Int32":
str = str + "int,";
break;
case "System.DateTime":
str = str + "DateTime,";
break;
default:
str =str+"varchar(" + maxlenth + "),";
break;
}
}
str = str.Substring(0,str.Length-1) + ")";
OleDbCommand o = new OleDbCommand(str,conn);
o.ExecuteNonQuery();
o.Dispose();
}
for(int i = 0;i<dset.Tables.Count;i++)
{
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand();
command.Connection = conn;
int col = dset.Tables[i].Columns.Count;
//int col = dt.Columns.Count;
string commandText = "Insert into " + dset.Tables[i].TableName /*tableName*/ + " values(";
ArrayList va = new ArrayList();
for(int j=0;j<col;j++)
{
va.Add(dset.Tables[i].Columns[j].ColumnName);
commandText = commandText + /*"@" + va[i].ToString()*/ "?" + ",";
}
commandText = commandText.Remove(commandText.LastIndexOf(","),1);
commandText = commandText + ")";
//command.CommandType = CommandType
command.CommandText = commandText;
for(int k=0;k<va.Count;k++)
{
OleDbParameter old = new OleDbParameter("@" + va[k].ToString(),OleDbType.Variant);
old.SourceColumn = dset.Tables[i].Columns[va[k].ToString()].ColumnName;
old.SourceVersion = DataRowVersion.Original;
command.Parameters.Add(old);
}
DataSet ds = new DataSet();
DataTable d = new DataTable();
d = dset.Tables[i].Clone();
// ds.Tables.Add(d);
for(int n=0;n<dset.Tables[i].Rows.Count;n++)
{
DataRow r = d.NewRow();
r.ItemArray = dset.Tables[i].Rows[n].ItemArray;
d.Rows.Add(r);
//
// command.Parameters
}
ds.Tables.Add(d);
da.InsertCommand = command;
da.Update(ds,ds.Tables[0].TableName);
command.Dispose();
da.Dispose();
}
ret = true;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
//command.Dispose();
// da.Dispose();
conn.Close();
conn.Dispose();
}
}
return ret;
}
WinForm下
DataSet
导出
### WinForm下
DataSet
导出
至
Excel
的关键技术与
实现
#### 一、概述 在Windows Forms (WinForm) 应用程序开发中,经常需要将数据集(
DataSet
)中的数据
导出
到
Excel
文件中,以便于进一步的数据分析或共享。本文将详细...
Dataset
中多个表内容
导出
在一个
Excel
的多个Sheet中
saveFileDialog1.Title = "
导出
Excel
文件到"; ``` 选择完文件后,程序开始执行核心的
导出
逻辑。该逻辑主要包括以下几个步骤: 1. **数据查询**:根据用户的输入(即上文提到的`temp`字符串),执行SQL查询获取待...
asp.net
实现
数据导入
导出
Excel
多Sheet表
### ASP.NET
实现
数据导入
导出
到
Excel
中的多 Sheet 表 在 ASP.NET 开发过程中,经常需要处理数据的导入
导出
功能,特别是在需要将数据分门别类地存储到不同的工作表(Sheet)中时,这便涉及到
Excel
的多 Sheet ...
sql2008
导出
到
excel
8. **数据写入
Excel
**:使用
Excel
Interop创建一个新的
Excel
工作簿和工作表,然后遍历DataTable中的每一行数据,将其写入到
Excel
工作表的
相应
单元格中。 9. **文件保存和释放资源**:完成数据写入后,需要将
Excel
...
Delphi DBGrid
导出
Excel
文件最快速的代码
本主题将详细介绍如何使用Delphi的DBGrid组件和内置功能,无需依赖任何第三方库,就能
实现
高效地将数据
导出
到
Excel
文件。 首先,我们需要了解Delphi中的DBGrid组件。DBGrid是Delphi用于显示和编辑数据库数据的标准...
C#
111,119
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章