mysql - phpmyadmin/CSV(Excel) 问题

标签 mysql excel import

我有一个 Excel 工作簿,其中输出的 .csv 文件带有以下 vba 代码的引号:

 'Set up Delimiters
DELIMITER = ","
QUOTE = """"

 'Set up file to save, ask user for name
GetFileName = InputBox("Enter Name for semi-colon delimited file: (Do not enter file extension)", "FILENAME")
  'CurrentPath = Application.ActiveWorkbook.Path
 PathtoUse = "C:\Users\David\Desktop\"
 FileNametoUse = PathtoUse & GetFileName & ".csv"

 'Find cells to cycle through
With ActiveSheet.UsedRange
    LastRow = .Cells(.Cells.Count).Row
    LastCol = .Cells(.Cells.Count).Column
End With

 'Assign a handle to next file#
FileNum = FreeFile

 'Open and write to file named above
Open FileNametoUse For Output As #FileNum

 'Cycle through rows and cols
For Each CurrentRow In Range("A1:A" & LastRow)
    With CurrentRow 'Now cycle through each cell in the row
        For Each CurrentCell In Range(.Cells, Cells(.Row, LastCol))
             'If the cell contains Non-Numeric (IsNumeric=False) then put quotes around the info
            If IsNumeric(CurrentCell.Text) = False Then
                CellData = QUOTE & CurrentCell.Text & QUOTE
            Else 'The cell contains numeric, use contents as is
                CellData = CurrentCell.Text
            End If
             'as the code cycles, keep adding each col info to string
            LineOutput = LineOutput & DELIMITER & CellData
        Next CurrentCell

         'Remove the first 2 chars in the line (since the delimiter is put in first)
        LineOutput = Mid(LineOutput, 2)
         'Print the line to the file
        Print #FileNum, LineOutput
          'Clear out the variable
        LineOutput = Empty
    End With
Next CurrentRow

 'Close the file
Close #FileNum

这会正确输出文件,例如:

"FirstName","Surname","YBC","BTBA","JTE","EnteringAverage","DOB","Game1","Game2","Game3","Game4","Game5","Game6","Game7","Game8","IndividualTotal","Average","TeamTotal"
"David","Passmore","Bowlplex Poole",116016,193,179,"05/08/1994",203,254,211,195,187,184,200,267,1701,212.63,3178
"Callum","Bailey","Bowlplex Poole",016015,185,189,"30/05/1996",175,145,195,117,201,265,221,158,1477,184.63,3178
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""
"","","","","","","","","","","","","","","","","",""

首先,我想知道如何删除所有空白单元格,其次,当我将其输入 phpMyAdmin 时,它一切正常,但它错过了第一列,并且输入了我不想要的列名称,所以我想要它输入所有第一个名称列,然后我希望它错过列名称。

我的服务器的 phpmyadmin 版本是 2.6.4(我知道它很旧,但我对此无能为力)

但也在我的本地服务器(版本 3.3.9)上执行此操作

更新

我通过将文件向右移动一列解决了第一列问题,这样问题就解决了,但其他两个问题仍然存在。

最佳答案

你可以在这里更改你的vba:

 'Set up Delimiters 
DELIMITER = "," 
QUOTE = """"  

对此:

'Set up Delimiters
DELIMITER = ";"
QUOTE = """" 

因为 phpMyAdmin 默认为 ;作为分隔符。

在回答第二点时,您可以使用此 vba 代码删除空白单元格:

Sub MacroNAME()
    ActiveWorkbook.Save
    Rows("1:1").Select
    Selection.Cut
    Sheets("sheetname").Select
    Sheets.Add
    ActiveSheet.Name = "Save"
    ActiveSheet.Paste
    Sheets("sheetname").Select
    Rows("1:1").Select
    Rows("1:1").RowHeight = 14.25
    Selection.Delete Shift:=xlUp
    Cells.Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.ClearContents
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Rows("1:1").Select
    Selection.Delete Shift:=xlUp
    Rows("2:2").RowHeight = 14.25
    **Code Used above here**
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Rows("1:1").RowHeight = 0.1
    Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft
    Sheets("sheetname").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown
    Rows("1:1").RowHeight = 10.5
    Rows("1:1").RowHeight = 14.25
    Sheets("Save").Select
    Selection.Cut
    Sheets("sheetname").Select
    Rows("1:1").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    Sheets("Save").Select
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True

这将清除列标题(如果它们是第一行)。

您可以将其应用于按钮,它应该可以工作。

关于mysql - phpmyadmin/CSV(Excel) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700631/

相关文章:

MYSQL 和 Node.js 使用 where 子句插入多条记录

php - 如何一次插入多个技能?

excel - 如何克服Excel中超链接的限制?

excel - 通过 VBA 函数插入 GetPivotData 公式

import - 使用 OverLeaf 插入图像的 Latex 仅插入一个空矩形及其路径

c++ - FbxManager 错误 Efailure 和意外的文件类型错误

php - MySQL 选择变量不起作用

mysql - 通过列 View 而不是 mysql 中的行 View 返回结果

excel - 如何读取 Excel 中单元格的格式化文本表示形式

android - 如何将android项目正确导入到Eclipse中?