日期:2014-05-17  浏览次数:20914 次

C# winform 导入导出EXCEL的问题,求各位高手帮帮忙谢谢
用VS2010在win7系统下做了一个小程序使用的是sqlite数据库,office用的是2010。
问题:
1.在win7 64位和32位下对excel文件能正常导入和导出,但是部署到XP系统下导入时会提示无法打开数据库,但是添加操作却是正常的(导入和添加调用的是一个方法)。
2.导出操作在win7也下能正常使用,部署到XP上之后我做增删改查都没有问题。当我点击导出按钮将数据导出到excel中之后(能正常导出) 再进行增删改查操作时就会提示无法打开数据库。估计和导入是同一个问题。
这是从datagridview导出到excel代码:
//导出到execl  
            try
            {
                //没有数据的话就不往下执行  
                if (dataGridView1.Rows.Count == 0)
                    return;
                string saveFileName = "";
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.DefaultExt = "xlsx";
                saveDialog.Filter = "Excel文件|*.xlsx";
                saveDialog.FileName = "KNCVI";
                saveDialog.ShowDialog();
                saveFileName = saveDialog.FileName;
                if (saveFileName.IndexOf(":") < 0) return; //被点了取消

                //实例化一个Excel.Application对象  
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

                Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
                //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写  
                //excel.Visible = false;

                //生成Excel中列头名称  
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                {