Excel表格完成录音与回放Word文档下载推荐.docx
《Excel表格完成录音与回放Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Excel表格完成录音与回放Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
菜单中的"
退出"
按钮→再弹出的对话框中单击"
是"
最后把这个文件保存起来拿给学生,学生只需要双击电子表格中的图标便可以听见声音了。
excel经验小结
(二)
一、感叹号(!
)中括号([])在自定义格式中的作用是什么?
叹号是强制使其后面的一个字符按照普通文本显示,比如A1=123,如果要显示成123h,定义格式为0h是不行的,因为字母h在格式中代表特殊含义(小时),所以要定义成0!
h,字母h会被强制显示。
[]的作用有几种:
1、设置条件,比如[>
10]0a,数字大于10时,数字后面加字母a。
2、显示颜色,[红色]0;
[蓝色]-0,正数和0显示红色,负数显示为蓝色。
3、扩展显示(不知道怎么准确命名),比如A1=1.2(天),表示成时分秒格式,如果用h:
mm:
ss,显示为4:
48:
00,小时不能大于24,如果设置为[h]:
ss,则显示为28:
00。
(此项转于:
)
二、快速输入时间,首先选定单元格区域--格式--单元格--日期--选中所需日期类型"
,假如选定的是:
"
2010-1-4"
形式的,那么可用输入"
2010/1/4"
即可,单元格会自动转换的,如果是当年的,可直接输入:
1/4"
即可。
三、Excel将YYYYMMDD日期格式改为YYYY-MM-DD格式或YYYY年MM月DD日
若A1=20081201,转化为日期型:
B1=DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,7,8)),然后在B1单元格中直接设置格式即可。
或B1=MID(A2,1,4)&
年"
&
MID(A2,5,2)&
月"
MID(A2,7,8)&
日"
)。
MID函数的语法是,"
=MID(含取值的数值,取值开始位序号,取值位数)。
假设A1身份证号码是210304198812316014,提取生日的公式是"
=MID(A1,7,4)&
MID(A1,11,2)&
MID(A1,13,2)&
,返回的是"
1998年12月31日"
四、excel如何将yyyymm日期格式修改为yyyy/mm
选中单元格-》鼠标右键-》设置单元格格式-》自定义-》在"
类型"
里面填写:
0000!
/00即可。
(这里的0和!
都是占位符,具体可从网上查看).
五、excel表格里将100s如何转化为时间格式00:
01:
40?
=TEXT(A1/86400,"
[hh]:
ss"
)或者直接=A1/86400,然后将单元格设置为自定义格式:
hh:
ss,在单元格时间的基本单位是天,所以一天是24*60*60=86400秒。
加括号才可以总小时的累计。
六、excel表格中将时间00:
40转换成秒数?
在A1单元格中输入时间"
00:
26"
,在A2单元格中输入"
=SUM(HOUR(A1)*3600,MINUTE(A1)*60,SECOND(A1))"
,注意单元格要设置成数值形式的,本人就是没有注意这个,搞了半天。
Excel高级使用技巧
1、编辑技巧
1编辑技巧
(1)分数的输入
如果直接输入“1/5”,系统会将其变为“1月5日”,解决办法是:
先输入“0”,然后输入空格,再输入分数“1/5”。
(2)序列“001”的输入
如果直接输入“001”,系统会自动判断001为数据1,解决办法是:
首先输入“'
”(西文单引号),然后输入“001”。
(3)日期的输入
如果要输入“4月5日”,直接输入“4/5”,再敲回车就行了。
如果要输入当前日期,按一下“Ctrl+;
”键。
(4)填充条纹
如果想在工作簿中加入漂亮的横条纹,可以利用对齐方式中的填充功能。
先在一单元格内填入“*”或“~”等符号,然后单击此单元格,向右拖动鼠标,选中横向若干单元格,单击“格式”菜单,选中“单元格”命令,在弹出的“单元格格式”菜单中,选择“对齐”选项卡,在水平对齐下拉列表中选择“填充”,单击“确定”按钮(如图1)。
图1
DataGridView导出excel
本文参考网友江边孤岛(感谢原作者)的《WinForm中DataGrid扩展类-快速导出Excel文件,带保存对话框,并杀死进程。
相对完美的解决方案!
》(url:
63517.aspx)而写,但本文是DataGridView导出Excel,DataGridView中的隐含列不导出。
在贴出代码前几点说明如下:
1、添加MicrosoftExcel11.0ObjectLibrary的引用后,在项目的引用列表中会多出3个引用项,分别是Excel、Microsoft.Office.Core、VBIDE;
(当然添加MicrosoftWord11.0ObjectLibrary的引用后,在项目的引用列表中也会多出3个引用项,分别是Word、Microsoft.Office.Core、VBIDE,即第一个是变化的,后两个是相同的,但如果你添加MicrosoftOffice11.0ObjectLibrary,那么仅有Microsoft.Office.Core)
微软的Office对象库包含:
MicrosoftAccess11.0ObjectLibrary
MicrosoftGraph11.0ObjectLibrary
MicrosoftExcel11.0ObjectLibrary
MicrosoftOffice11.0ObjectLibrary
MicrosoftOutlook11.0ObjectLibrary
MicrosoftPowerPoint11.0ObjectLibrary
MicrosoftWord11.0ObjectLibrary
对于上面的对象库,微软是否提供了API文档?
本人尚未找到。
2、文件是否已经打开的判断,网上很多是以独享的方式打开文件,如果出现异常则说明文件已经在使用中,我觉得这个判断不理想,不知道是否有更好的处理方法?
3、实测中发现执行设置Excel字体大小和将字体设置为粗体的语句耗时较长,不知道是本人机器环境的原因还是Excel的普遍问题?
4、原文杀死excel进程的处理方法并不得当,会将所有正在使用的excel都关闭掉。
但导出excel确实会增加excel的进程,不妥。
一下是代码
调用方法为:
导出类源码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Diagnostics;
usingSystem.IO;
usingMicrosoft.Office.Interop.Excel;
namespacezzxx
{
publicclassExportToExcel
//记录保存文件的名称(含路径)
privatestringFullFileName=string.Empty;
#region保存对话框
privateboolSaveFileDialog()
SaveFileDialogsaveFileDialog1=newSaveFileDialog();
saveFileDialog1.Filter="
excelfiles(*.xls)*.xls"
;
saveFileDialog1.FilterIndex=0;
saveFileDialog1.RestoreDirectory=true;
//标志变量、返回结果
boolIsOK=false;
boolresult=false;
//文件已经存在,需要重新输入文件名时,循环打开保存对话框
while(!
IsOK)
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
//修改给定的文件名,增加时间信息
//FullFileName=saveFileDialog1.FileName.Insert(saveFileDialog1.FileName.LastIndexOf("
\\"
)+1,DateTime.Now.ToString("
yyyyMMdd"
));
FullFileName=saveFileDialog1.FileName;
//文件信息,判断文件是否已经存在;
//遗留问题:
文件是否已经打开本想在此处判断,但没有找到合适的方法.
FileInfofi=newFileInfo(FullFileName);
if(fi.Exists)
DialogResultdr=MessageBox.Show("
文件已经存在,是否覆盖现有文件?
"
系统信息"
MessageBoxButtons.YesNoCancel);
if(dr==DialogResult.Yes)
//覆盖现有文件
IsOK=true;
result=true;
}
elseif(dr==DialogResult.Cancel)
//如果取消操作
result=false;
//如果不覆盖现有文件,则IsOK仍为false,实现循环
else
result=false;
returnresult;
#endregion
#region导出Excel
publicvoidToExcel(FormParentWindow,DataGridViewExportGrid,stringp_ReportName)
//如果网格尚未数据绑定
if(ExportGrid==null)
return;
//列索引,行索引
intcolIndex=0;
introwIndex=0;
//总可见列数,总可见行数
intcolCount=ExportGrid.Columns.GetColumnCount(DataGridViewElementStates.Visible);
introwCount=ExportGrid.Rows.GetRowCount(DataGridViewElementStates.Visible);
//如果DataGridView中没有行,返回
if(rowCount==0)
//保存对话框
if(!
SaveFileDialog())
ParentWindow.Cursor=Cursors.WaitCursor;
//创建Excel对象
Microsoft.Office.Interop.Excel.ApplicationxlApp=newMicrosoft.Office.Interop.Excel.Application();
if(xlApp==null)
MessageBox.Show("
Excel无法启动"
"
);
//创建Excel工作薄
Microsoft.Office.Interop.Excel.WorkbookxlBook=xlApp.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.WorksheetxlSheet=(Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[1];
//设置标题。
实测中发现执行设置字体大小和将字体设置为粗体的语句耗时较长,故注释掉了
Microsoft.Office.Interop.Excel.Rangerange=xlSheet.get_Range(xlApp.Cells[1,1],xlApp.Cells[1,colCount]);
range.MergeCells=true;
xlApp.ActiveCell.FormulaR1C1=p_ReportName;
//xlApp.ActiveCell.Font.Size=20;
//xlApp.ActiveCell.Font.Bold=true;
xlApp.ActiveCell.HorizontalAlignment=Microsoft.Office.Interop.Excel.Constants.xlCenter;
//创建缓存数据
object[,]objData=object[rowCount+1,colCount];
//获取列标题,隐藏的列不处理
for(inti=0;
i<
ExportGrid.ColumnCount;
i++)
if(ExportGrid.Columns[i].Visible)
objData[rowIndex,colIndex++]=ExportGrid.Columns[i].HeaderText;
//获取数据,隐藏的列的数据忽略
for(inti=1;
=rowCount;
rowIndex++;
colIndex=0;
for(intj=0;
j<
j++)
if(ExportGrid.Columns[j].Visible)
if(ExportGrid[j,rowIndex-1].ValueType==typeof(string))
objData[rowIndex,colIndex++]="
'
+ExportGrid[j,rowIndex-1].Value.ToString();
objData[rowIndex,colIndex++]=ExportGrid[j,rowIndex-1].Value.ToString();
System.Windows.Forms.Application.DoEvents();
//写入Excel
//xlApp.get_Range(xlApp.Cells[2,1],xlApp.Cells[2,colIndex]).Font.Bold=true;
range=xlSheet.get_Range(xlApp.Cells[2,1],xlApp.Cells[rowCount+2,colCount]);
range.Value2=objData;
//保存
try
xlApp.Cells.EntireColumn.AutoFit();
xlApp.Cells.VerticalAlignment=Microsoft.Office.Interop.Excel.Constants.xlCenter;
xlApp.Cells.HorizontalAlignment=Microsoft.Office.Interop.Excel.Constants.xlCenter;
//xlApp.Visible=true;
xlBook.Saved=true;
xlBook.SaveCopyAs(FullFileName);
导出成功!
ParentWindow.Cursor=Cursors.Default;
catch
保存出错,请检查文件是否正被使用!
//returnfalse;
finally
xlApp.Quit();
GC.Collect();
KillProcess("
excel"
#region杀死进程
privatevoidKillProcess(stringprocessName)
System.Diagnostics.ProcessmyProc=newProcess();
//得到所有打开的进程
foreach(ProcessthisprocinProcess.GetProcessesByName(processName))
thisproc.Kill();
catch(Exceptionexc)
thrownewException("
exc);
}
ExporttoExcelV-B-6
PublicSubCSMatListToExcel()
*********************************************************
*名称:
ExportToStoreExcel
*功能:
导出数据据到EXCEL
*用法:
ExportToStoreExcel(sql查询字符串)
DimRs_DataAsNewADODB.Recordset
DimIrowcountAsInteger
DimIcolcountAsInteger
DimstrSQLAsString
DimxlAppAsNewExcel.Application
DimxlBookAsExcel.Workbook
DimxlSheetAsExcel.Worksheet
DimxlQueryAsExcel.QueryTable
OnErrorGoToerrHandle
strSQL="
CSMO_ALLMaterialList"
+Sqv(txtWo(0).Text)+"
+Sqv(InitLoad.LoginUserId)
SetRs_Data=
WithRs_Data
If.RecordCount<
1Then
MsgBox("
没有记录!
ExitSub
EndIf
记录总数
Irowcount=.RecordCount
字段总数
Icolcount=.Fields.Count
EndWith
SetxlApp=CreateObject("
Excel.Application"
SetxlBook=Nothing
SetxlSheet=Nothing
SetxlBook=xlApp.Workbooks().Add
SetxlSheet=xlBook.Worksheets("
sheet1"
xlApp.AlertBeforeOverwriting=False
xlApp.DisplayAlerts=False
xlApp.Visible=False
xlSheet.Range("
a1"
).Value="
+txtWo(0).Text+"
物料清单"
xlApp.ActiveSheet.Range("
a1:
I1"
).Merge
添加查询语句,导入EXCEL数据
SetxlQuery=xlSheet.QueryTables.Add(Rs_Data,xlSheet.Range("
a2"
))
WithxlQuery
.FieldNames=True
.RowNumbers=False
.FillAdjacentFormulas=False
.PreserveFormatting=True
.RefreshOnFileOpen=False
.BackgroundQuery=True
.RefreshStyle=xlInsertDeleteCells
.SavePassword=True
.SaveData=
.AdjustColumnWidth=True
.RefreshPeriod=0
.PreserveColumnInfo=True
xlQuery.FieldNames=True'
显示字段名
xlQuery.Refresh
WithxlSheet
.Range(.Cells(1,1),.Cells(1,Icolcount)).Font.Name="
细明体"
标题为黑体字
.Range(.Cells(1,1),.Cells(1,Icolcount)).Font.Bold=True
标题字体加粗
.Range(.Cells(2,1),.Cells(Irowcount+2,Icolcount)).Borders.LineStyle=xlContinuous
设置表格边框样式
xlApp.Act