using System;

using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.IO;

namespace TransDBFClass
{
public class TransDBFClass
{

/// <summary>
/// 将Access数据库转换为Excel表格
/// </summary>
/// <param name="DbPath">Access数据库所在文件路径</param>

public void AccessToExcel(string DbPath)

{
//OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\project\TransDBF\db.mdb;");
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath + ";");
try
{
conn.Open();

DataTable dt = conn.GetSchema("Tables");//获取ACCESS数据库中所有的表\查询\宏\窗体\模块

string p = "c:\\dbf";

if (!System.IO.Directory.Exists(p))
{
System.IO.Directory.CreateDirectory(p);
}
string[] vFiles = Directory.GetFiles(p);
foreach (string vFile in vFiles)
File.Delete(vFile);

for (int i = 0; i < dt.Rows.Count; i++)
{
try
{
string tablename = "";
if (dt.Rows[i].ItemArray[3].ToString() == "TABLE")//判断是否是用户表
{
tablename = dt.Rows[i].ItemArray[2].ToString();//获取数据表名

}
//转换Access为dbf格式数据sql语句
// String sql = "SELECT * INTO [dBASE 5.0; Database=C:\\dbf;]." + tablename + ".dbf FROM " + tablename;
String sql = "SELECT * INTO [Excel 5.0;Database=C:\\dbf\\dbf.xls ]." + "[" + tablename + "] FROM " + tablename;
OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.ExecuteNonQuery();

}
catch (Exception ex)
{
}
}
}
catch (Exception ex)
{
File.AppendAllText(@"c:\1.txt",ex.ToString()); 
}
finally
{
conn.Close();
}

}

/// <summary>
/// 将已经转换了的Excel表转换为Dbf格式方法
/// </summary>
public void ExcelToDbf()
{
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dbf\dbf.xls;Extended Properties=Excel 8.0;");
try
{
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

for (int i = 0; i < dt.Rows.Count; i++)
{
try
{
string tablename = "";
if (dt.Rows[i].ItemArray[3].ToString() == "TABLE")//判断是否是用户表
{

tablename = dt.Rows[i].ItemArray[2].ToString();//获取数据表名

}
//转换Excel为dbf格式数据sql语句
String sql = "SELECT * INTO [dBASE 5.0; Database=C:\\dbf;].DBF" + i + ".dbf FROM " + tablename;
// String sql = "SELECT * INTO [Excel 5.0;Database=C:\\dbf\\dbf.xls ]." + "[" + tablename + "] FROM " + tablename;
if (tablename.IndexOf('$') >= 0)
{
continue;
}
else
{
OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
}

}

}
catch (Exception ex)
{
File.AppendAllText(@"c:\2.txt",ex.ToString()); 
}
finally
{
conn.Close();
}
}

}
}

还有一种带密码访问的

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.IO;

namespace TransDBFClass
{
public class TransDBFClass
{

/// <summary>
/// 将Access数据库转换为Excel表格
/// </summary>
/// <param name="DbPath">Access数据库所在文件路径</param>

public void AccessToExcel(string DbPath)

{
//OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\project\TransDBF\db.mdb;");
//OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath + ";Persist Security Info=False;Jet OLEDB:Database Password=sa;");
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath + ";Jet OLEDB:Database Password=sa;");
try
{
conn.Open();

DataTable dt = conn.GetSchema("Tables");//获取ACCESS数据库中所有的表\查询\宏\窗体\模块

string p = "d:\\dbf";

if (!System.IO.Directory.Exists(p))
{
System.IO.Directory.CreateDirectory(p);
}
string[] vFiles = Directory.GetFiles(p);
foreach (string vFile in vFiles)
File.Delete(vFile);

for (int i = 0; i < dt.Rows.Count; i++)
{
try
{
string tablename = "";
if (dt.Rows[i].ItemArray[3].ToString() == "TABLE")//判断是否是用户表
{
tablename = dt.Rows[i].ItemArray[2].ToString();//获取数据表名

}
//转换Access为dbf格式数据sql语句
// String sql = "SELECT * INTO [dBASE 5.0; Database=C:\\dbf;]." + tablename + ".dbf FROM " + tablename;
String sql = "SELECT * INTO [Excel 5.0;Database=d:\\dbf\\dbf.xls ]." + "[" + tablename + "] FROM " + tablename;
OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.ExecuteNonQuery();

}
catch (Exception ex)
{
}
}
}
catch (Exception ex)
{
File.AppendAllText(@"c:\1.txt",ex.ToString()); 
}
finally
{
conn.Close();
}

}

/// <summary>
/// 将已经转换了的Excel表转换为Dbf格式方法
/// </summary>
public void ExcelToDbf()
{
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\dbf\dbf.xls;Extended Properties=Excel 8.0;");
try
{
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

for (int i = 0; i < dt.Rows.Count; i++)
{
try
{
string tablename = "";
if (dt.Rows[i].ItemArray[3].ToString() == "TABLE")//判断是否是用户表
{

tablename = dt.Rows[i].ItemArray[2].ToString();//获取数据表名

}
//转换Excel为dbf格式数据sql语句
String sql = "SELECT * INTO [dBASE 5.0; Database=d:\\dbf;].DBF" + i + ".dbf FROM " + tablename;
// String sql = "SELECT * INTO [Excel 5.0;Database=C:\\dbf\\dbf.xls ]." + "[" + tablename + "] FROM " + tablename;
if (tablename.IndexOf('$') >= 0)
{
continue;
}
else
{
OleDbCommand cmd = new OleDbCommand(sql, conn);

cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
}

}

}
catch (Exception ex)
{
File.AppendAllText(@"c:\2.txt",ex.ToString()); 
}
finally
{
conn.Close();
}
}

}
}

c#中excel文件怎么转换为dbf文件相关推荐

  1. 如何在Excel中将多个Excel文件批量转换为CSV文件?

    在Excel中,我们可以使用"另存为"功能将工作簿转换为CSV文件,但是您知道如何将多个Excel文件批量转换为单独的CSV文件吗? 在本文中,我介绍了一个VBA代码,用于将文件夹 ...

  2. 使用win中excel打开linux下.csv文件乱码问题

    使用win中excel打开linux下.csv文件乱码问题 1.问题原因 不同系统的字符集编码不一样 windows使用的是gbk格式 linux使用的是utf8格式 检查文件编码格式 file 文件 ...

  3. xls/csv文件转换成dbf文件

    帮一个中科院小学妹写的一个小脚本,主要是利用python中的pandas,xlrd,dbfpy包将excel中的xls/csv文件中转化成dbf文件 一.安装相关包 pip install xlrd ...

  4. 用html打开dbf文件怎么打开,dbf格式文件是什么 dbf文件用什么软件打开

    有小伙伴反映说,清理电脑时看到了dbf文件,不知道这是哪种类型的文件,也不知道有什么作用,不敢轻易删除.数据库文件的扩展名,是很多企业单位用于数据交换.那么dbf格式的文件如何打开呢? dbf格式文件 ...

  5. 将DWG文件批量转换为JPG文件

    我们在工作上需要将DWG文件转换为JPG文件,在公司里有很多的DWG文件图纸转换JPG文件,我们不可能一个一个的转换,这时候我们为了提高工作效率需要将DWG文件批量转换为JPG文件,DWG文件批量转换 ...

  6. 记录----如何将FLV格式文件快速转换为mp4文件

    如何将FLV格式文件快速转换为mp4文件 今天用硕鼠下载视频的时候发现下载出来的视频是.flv格式的,没有相应的播放器无法播放,于是找了个方法把它转换为MP4文件,记录一下 第一步 下载一个辅助工具, ...

  7. 如何在谷歌地球上画路线或者运动轨迹?根据纬经高信息在谷歌地球Google earth中画运动轨迹,首先将Excel文件纬经高信息转换为.csv文件,再转换为.kml文件,最终在谷歌地球中显示。

    (制作运动轨迹的前提是装有谷歌地球和CSV2kml转换工具, CSV2kml转换工具的下载可在下列链接中下载https://download.csdn.net/download/howe1233/10 ...

  8. android 文件流转换为zip文件_PDF文件如何转换为TXT文本?教您一招高效转换的方法...

    我们见过很多的文件格式,如果说最常见的文件格式想必要属于TXT文本格式了. 大多数人都用过TXT文本格式临时记录几件事或者临时记录几句话,毕竟TXT文件是微软在操作系统中附带的一种文本格式. 如果说T ...

  9. gdal java shp_【GDAL/OGR】利用GDAL/OGR读取shp文件并转换为json文件(Java版)

    前言: 对于GIS开发者来说,GDAL/OGR是最熟悉不过的开源GIS库了,GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间 ...

  10. CAD文件怎么转换为DWF文件

    小编最近遇到一个难题"怎么将CAD文件转换为DWF文件,一直没有好的方法,在网站花了很长的时间才会怎么转换,为了大家少走弯路,小编分享就分享个大家怎么将CAD文件转换为DWF文件. 小编是在 ...

最新文章

  1. 商汤科技不等于人脸识别!它正在赋予AI更强的“存在感”
  2. 关于TCP下SOCKET的一些测试
  3. HTML meta refresh 刷新与跳转(重定向)页面
  4. Newbe.Claptrap 框架入门,第一步 —— 开发环境准备
  5. 【Git】GitHub主页从Dark调回Light的方法
  6. 空间组网(卫星组网)概述
  7. node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
  8. BZOJ 4034 树上操作
  9. 解包操作符 python_用解包操作符 * 解包列表
  10. 肖风:分布式网络是区块链机制设计的第一个层次
  11. 手算逆元及手动模拟扩展欧几里得算法及思路推导
  12. 基于stm32f303cbt6的点灯实验(硬件+软件)
  13. 面试面经 | 2021大疆嵌入式软件工程师笔试题B卷
  14. Airbnb NYC2019分析实战
  15. 华为鸿蒙HarmonyOS 简介
  16. 孩子总是偷偷玩游戏,家长该怎么办?
  17. vi 放弃更改退出 保存更改退出。
  18. speedoffice(Word)如何给文字添加下划线
  19. Python薅羊毛脚本
  20. 计算机逻辑功能测试及应用,逻辑门电路的逻辑功能及测试.doc

热门文章

  1. C#编写串口监控软件的详细教程
  2. 射频前端行业信息汇总
  3. SecureCRT下载安装与破解
  4. 熊猫烧香完整的病毒源代码
  5. 美食网页设计作品html,美食网页设计与制作.doc
  6. html静态网页设计实训总结,网页设计实训心得体会范文
  7. python扫描器_Python扫描器-端口扫描
  8. Java网络编程总结
  9. Mac上几款好用磁盘分析备份管理工具
  10. 数据挖掘导论思维导图