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