初学总结: 如果有什么指教请留言,谢谢。
首先我的界面是这样
导入:选择文件-选择表-DataGridView中显示-保存到数据库
导出:(这边少了一个获取当前数据库所有表按钮)-选择表-DataGridView-导出
引用如下
private int _ReturnStatus;
private string _ReturnMessage;
System.Data.DataTable table = new System.Data.DataTable();
DataSet ds = new DataSet();
System.Windows.Forms.OpenFileDialog openFileDialog1 = new OpenFileDialog();
下面进入导入代码:
选择文件(目的:获取当前Excel所有sheet)
public System.Data.DataTable SelectFile(string fileName)//获取表名
{
CmbDemand.Items.Clear();
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
_ReturnStatus = -1;
_ReturnMessage = "无法创建Excel对象,可能您的计算机未安装Excel";
return null;
}
//判断文件是否被其他进程使用
Microsoft.Office.Interop.Excel.Workbook workbook;
try
{
workbook = xlApp.Workbooks.Open(fileName, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, 1, 0);
}
catch
{
_ReturnStatus = -1;
_ReturnMessage = "Excel文件处于打开状态,请保存关闭";
return null;
}
//获得所有Sheet名称
int n = workbook.Worksheets.Count;
string[] SheetSet = new string[n];
System.Collections.ArrayList al = new System.Collections.ArrayList();
//循环一次获取一次表名
for (int i = 1; i <= n; i++)
{
SheetSet[i - 1] = ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[i]).Name;
CmbDemand.Items.Add(SheetSet[i - 1]);
}
//释放Excel相关对象
workbook.Close(null, null, null);
xlApp.Quit();
if (workbook != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
workbook = null;
}
if (xlApp != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
GC.Collect();