C#制作的一个小的管理软件,数据库是Access的。在Datagirdview数据浏览中可以正常显示日期格式为XXXX-XX-XX是符合我的要求的,现在将Datagirdview数据导出到EXCEL也可以,由于数据里面包含有数字,我采用了将Datagirdview数据转化为文本存入EXCEL,数据都可以正常显示了,但是有个美中不足的就是日期。
现在在EXCEL中的日期显示是XXXX-XX-XX 0:00:00,也就是说把时间也显示出来了,请问如何取消这个时间显示呢?

解决方案 »

  1.   

    datagridview.cell[n].defaultstyle.format = "yyyy-mm-dd"试下,实在不行,直接设置一下cell的属性为文本。
      

  2.   

    我已经设置文本了,代码贴下来,大家帮忙看看吧。
            private DataTable exporeDataToTable()
            {            //将datagridview中的数据导入到表中              DataTable tempTable = new DataTable("tempTable");            //定义一个模板表,专门用来获取列名              DataTable modelTable = new DataTable("ModelTable");            //创建列              for (int column = 0; column < dataGridView1.Columns.Count; column++)
                {                //可见的列才显示出来                  if (dataGridView1.Columns[column].Visible == true)
                    {                    DataColumn tempColumn = new DataColumn(dataGridView1.Columns[column].HeaderText, typeof(string));                    tempTable.Columns.Add(tempColumn);                    DataColumn modelColumn = new DataColumn(dataGridView1.Columns[column].Name, typeof(string));                    modelTable.Columns.Add(modelColumn);                }            }            //添加datagridview中行的数据到表              for (int row = 0; row < dataGridView1.Rows.Count; row++)
                {                if (dataGridView1.Rows[row].Visible == false)
                    {                    continue;                }                DataRow tempRow = tempTable.NewRow();                for (int i = 0; i < tempTable.Columns.Count; i++)
                    {
                       
                            
                            tempRow[i] = dataGridView1.Rows[row].Cells[modelTable.Columns[i].ColumnName].Value;
                                        }                tempTable.Rows.Add(tempRow);            }            return tempTable;        } 
            private void 导出至ExcelToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //将datagridView中的数据导出到一张表中              DataTable tempTable = this.exporeDataToTable();            //导出信息到Excel表              Microsoft.Office.Interop.Excel.ApplicationClass myExcel;            Microsoft.Office.Interop.Excel.Workbooks myWorkBooks;            Microsoft.Office.Interop.Excel.Workbook myWorkBook;            Microsoft.Office.Interop.Excel.Worksheet myWorkSheet;            char myColumns;            Microsoft.Office.Interop.Excel.Range myRange;            object[,] myData = new object[500, 35];            int i, j;//j代表行,i代表列              myExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();            //显示EXCEL              myExcel.Visible = true;            if (myExcel == null)
                {                MessageBox.Show("本地Excel程序无法启动!请检查您的Microsoft Office正确安装并能正常使用", "提示");                return;            }            myWorkBooks = myExcel.Workbooks;            myWorkBook = myWorkBooks.Add(System.Reflection.Missing.Value);            myWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)myWorkBook.Worksheets[1];            myColumns = (char)(tempTable.Columns.Count + 64);//设置列              myRange = myWorkSheet.get_Range("A4", myColumns.ToString() + "5");//设置列宽  
                            int count = 0;            //设置列名              foreach (DataColumn myNewColumn in tempTable.Columns)
                {                myData[0, count] = myNewColumn.ColumnName;                count = count + 1;
                                }            //输出datagridview中的数据记录并放在一个二维数组中              j = 1;            foreach (DataRow myRow in tempTable.Rows)//循环行  
                {                for (i = 0; i < tempTable.Columns.Count; i++)//循环列  
                    {
                        
                        myData[j, i] = myRow[i].ToString();
                        
                    }                j++;            }            //将二维数组中的数据写到Excel中              myRange = myRange.get_Resize(tempTable.Rows.Count + 1, tempTable.Columns.Count);//创建列和行  
                myRange.NumberFormatLocal = "@";
                myRange.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;//设置边框
                myRange.Borders.Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;//设置边框粗细
                myRange.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;//对齐方式
                
                                       myRange.Value2 = myData;            myRange.EntireColumn.AutoFit();          }
      

  3.   

    可以这样试试,把你的向表单元格赋值这里加个单'号,就是
    myData[j, i] = ''' + myRow[i].ToString();