十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我看了一下你的代码就是 导出当前datagrid显示记录
10年的玉龙网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整玉龙建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“玉龙网站设计”,“玉龙网站推广”以来,每个客户项目都认真落实执行。
Do While DataGrid1.Row = 0
If i = DataGrid1.Row Then Exit Do
i = DataGrid1.Row '得到DataGrid1当前行
For j = 0 To DataGrid1.Columns.Count - 1 '在DataGrid1当前行各列中循环
With xlsApp
'用长度做判断是不是身份证号,当然这个不是最好的方法,一般应该是固定那一列是身份证号,所以最好如果是第五列那么 if j=4 then,替换下面这行
if len(DataGrid1.Columns(j).Text)=18 or len(DataGrid1.Columns(j).Text)=15 then
.Cells(1, j + 1).NumberFormatLocal = "@" '单元格设置为文本
end if
.Cells(DataGrid1.Row + 1, j + 1) = DataGrid1.Columns(j).Text '填充数据
End With
Next
DataGrid1.Row = DataGrid1.Row + 1
Loop
Public Class Cls导入数据
Dim xlApp As New Excel.Application()
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim A = "A"
Public Function 导出到Excel(ByVal Dt表 As DataTable) As Boolean
Dim rowIndex, colIndex As Integer
rowIndex = 1
colIndex = 0
xlBook = xlApp.Workbooks().Add
xlSheet = xlBook.Worksheets("sheet1")
Dim Table As New DataTable()
Table = CreaTable()
'将所得到的表的列名,赋值给单元格
Dim Col As DataColumn
Dim Row As DataRow
For Each Col In Table.Columns
colIndex = colIndex + 1
xlApp.Cells(1, colIndex) = Col.ColumnName
Next
'得到的表所有行,赋值给单元格
For Each Row In Table.Rows
rowIndex = rowIndex + 1
colIndex = 0
For Each Col In Table.Columns
colIndex = colIndex + 1
xlApp.Cells(rowIndex, colIndex) = Row(Col.ColumnName)
Next
Next
With xlSheet
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Name = "黑体"
'设标题为黑体字
.Range(.Cells(1, 1), .Cells(1, colIndex)).Font.Bold = True
'标题字体加粗
.Range(.Cells(1, 1), .Cells(rowIndex, colIndex)).Borders.LineStyle = 1
'设表格边框样式
End With
With xlSheet.PageSetup
.LeftHeader = "" Chr(10) """楷体_GB2312,常规""10公司名称:" ' Gsmc
.CenterHeader = """楷体_GB2312,常规""公司人员情况表""宋体,常规""" Chr(10) """楷体_GB2312,常规""10日 期:"
.RightHeader = "" Chr(10) """楷体_GB2312,常规""10单位:"
.LeftFooter = """楷体_GB2312,常规""10制表人:"
.CenterFooter = """楷体_GB2312,常规""10制表日期:"
.RightFooter = """楷体_GB2312,常规""10第P页 共N页"
End With
xlApp.SaveWorkspace()
MsgBox("保存完毕", MsgBoxStyle.Exclamation, "提示")
KillAllExcels()
'xlApp.Visible = True
End Function
Sub KillAllExcels()
Dim proc As System.Diagnostics.Process
For Each proc In System.Diagnostics.Process.GetProcessesByName("EXCEL")
proc.Kill()
Next
End Sub
end class
有2个方案:
1、在导出前对数据进行处理:在电话号码前+上一个“'”(单引号),这样excel就判定该数据是字符串,就不会转化成科学计数法了。
2、可以建立一个导出文件的excel模板(excel文件是.xls,模板文件是.xlt文件),在模板里将要注入数据的单元格属性设置成字符串型就可以了。