private void SaveFileDialog()
{
//string localFilePath, fileNameExt, newFileName, FilePath;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
//设置文件类型
saveFileDialog1.Filter = " excel files(*.xls)|*.xls";
//设置默认文件类型显示顺序
saveFileDialog1.FilterIndex = 2;
//保存对话框是否记忆上次打开的目录
saveFileDialog1.RestoreDirectory = true;
//点了保存按钮进入
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
DataTable dt = (DataTable)this.dataGridView1.DataSource;
TableToExcel(saveFileDialog1.FileName, dt, "haiyan");
}
}
static public void TableToExcel(string excel, DataTable tb, string tbname)
{
try
{
OleDbConnection connex = GetConnFromExcel(excel); //获取到excel文件的oledb连接
string ct = "CREATE TABLE " + tbname + " ("; //以下生成一个sql命令向excel中插入一个表
foreach (DataColumn clmn in tb.Columns)
{
switch (clmn.DataType.Name) //根据不同数据类型分别处理
{
case "Decimal":
ct += clmn.ColumnName + " Decimal,";
break;
case "Double":
ct += clmn.ColumnName + " Double,";
break;
default:
ct += clmn.ColumnName + " string,";
break;
}
}
ct = ct.Substring(0, ct.Length - 1) + ")";
OleDbCommand cmd1 = new OleDbCommand(ct, connex);
cmd1.ExecuteNonQuery(); //向excel中插入一个表
foreach (DataRow r in tb.Rows) //下面向excel中一行一行写入数据
{
string fs = "", vs = "";
foreach (DataColumn clmn in tb.Columns)
{
fs += clmn.ColumnName + ",";
if (r[clmn.ColumnName] == DBNull.Value)
{
vs += "null,";
continue;
}
switch (clmn.DataType.Name) //根据不同数据类型分别处理
{
case "Decimal":
vs += ((decimal)r[clmn.ColumnName]).ToString("0.00") + ",";
break;
case "Double":
vs += ((double)r[clmn.ColumnName]).ToString("0.00") + ",";
break;
case "DateTime":
vs += "'" + ((DateTime)r[clmn.ColumnName]).ToShortDateString() + "',";
break;
default:
vs += "'" + r[clmn.ColumnName].ToString() + "',";
break;
}
}
string sqlstr = "insert into [" + tbname + "$] (" + fs.Substring(0, fs.Length - 1) + ") values (" + vs.Substring(0, vs.Length - 1) + ")";
OleDbCommand cmd = new OleDbCommand(sqlstr, connex);
cmd.ExecuteNonQuery(); //向excel中插入数据
}
connex.Close();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
static public OleDbConnection GetConnFromExcel(string ExcelFileName)
{
try
{
OleDbConnection connEX = new OleDbConnection();
connEX.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFileName + ";Extended Properties=Excel 8.0";
//connEX.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFileName + ";Extended Properties=""Excel 8.0;IMEX=1;""";
connEX.Open();
return connEX;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
}![![图片说明](https://img-ask.csdn.net/upload/201505/21/1432197521_401467.png)图片说明](https://img-ask.csdn.net/upload/201505/21/1432197510_409063.png)
C# dataGridView数据导到Excel里面 标题是英文了,怎么改成中文的?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- threenewbee 2015-05-21 08:42关注
fs += clmn.ColumnName + ",";
->
fs += clmn.Text + ",";
看看解决 无用评论 打赏 举报
悬赏问题
- ¥15 虚拟机打包apk出现错误
- ¥30 最小化遗憾贪心算法上界
- ¥15 用visual studi code完成html页面
- ¥15 聚类分析或者python进行数据分析
- ¥15 逻辑谓词和消解原理的运用
- ¥15 三菱伺服电机按启动按钮有使能但不动作
- ¥15 js,页面2返回页面1时定位进入的设备
- ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
- ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
- ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝