将excel中的表格转化为LaTeX表格
2018-03-01 08:08
609 查看
以下的代码是这一过程的实现,要把它放入Excel的宏中,并添加按钮到菜单栏。效果是在选择表格区域后点击按钮,会弹出含有LaTeX表格代码的窗口,一个窗口显示不下的话,点击确定后还会有下一个窗口显示,将窗口中的文字复制到LaTeX文件中,就可以编译啦~Sub textablebutton()
Dim tex As String
Dim r As range
Set r = Selection
Dim x As Integer
Dim y As Integer
x = r.Rows.Count
y = r.Columns.Count
Dim i As Integer
Dim j As Integer
tex = "\begin{table}[h]" & vbLf _
& "\centering" & vbLf _
& "\caption{table caption}" & vbLf _
& "\resizebox{.5\textwidth}{!}{" & vbLf _
& "\begin{tabular}{"
For j = 1 To y - 1
tex = tex & "l|"
Next j
tex = tex & "l}" _
& vbLf & vbTab & "\hline" _
& vbLf
For j = 1 To y - 1
tex = tex & vbTab & r.Cells(1, j) & vbTab & "&"
Next j
tex = tex & vbTab & r.Cells(1, y) & vbTab & "//" _
& vbLf & vbTab & "\hline"
For i = 2 To x
tex = tex & vbLf & vbTab
For j = 1 To y - 1
tex = tex & r.Cells(i, j) & vbTab & "&" & vbTab
Next j
tex = tex & r.Cells(i, y) & vbTab & "//"
Next i
tex = tex & vbLf _
& vbTab & "\hline" & vbLf _
& "\end{tabular}}" & vbLf _
& "\label{tab:1}\cite{} explanation of the table." & vbLf _
& "\end{table}"
' Msgbox 1024 Character Limit
x = Int(Len(tex) / 1000) - ((Len(tex) / 1000) > 0) ' ceiling, true = -1
For i = 0 To x - 1
MsgBox Mid(tex, 1000 * i + 1, 1000)
Next i
End Sub
同样,可以在github上找到这段代码。
Dim tex As String
Dim r As range
Set r = Selection
Dim x As Integer
Dim y As Integer
x = r.Rows.Count
y = r.Columns.Count
Dim i As Integer
Dim j As Integer
tex = "\begin{table}[h]" & vbLf _
& "\centering" & vbLf _
& "\caption{table caption}" & vbLf _
& "\resizebox{.5\textwidth}{!}{" & vbLf _
& "\begin{tabular}{"
For j = 1 To y - 1
tex = tex & "l|"
Next j
tex = tex & "l}" _
& vbLf & vbTab & "\hline" _
& vbLf
For j = 1 To y - 1
tex = tex & vbTab & r.Cells(1, j) & vbTab & "&"
Next j
tex = tex & vbTab & r.Cells(1, y) & vbTab & "//" _
& vbLf & vbTab & "\hline"
For i = 2 To x
tex = tex & vbLf & vbTab
For j = 1 To y - 1
tex = tex & r.Cells(i, j) & vbTab & "&" & vbTab
Next j
tex = tex & r.Cells(i, y) & vbTab & "//"
Next i
tex = tex & vbLf _
& vbTab & "\hline" & vbLf _
& "\end{tabular}}" & vbLf _
& "\label{tab:1}\cite{} explanation of the table." & vbLf _
& "\end{table}"
' Msgbox 1024 Character Limit
x = Int(Len(tex) / 1000) - ((Len(tex) / 1000) > 0) ' ceiling, true = -1
For i = 0 To x - 1
MsgBox Mid(tex, 1000 * i + 1, 1000)
Next i
End Sub
同样,可以在github上找到这段代码。
相关文章推荐
- 将Excel表格转化为Latex表格——采用Excel2LaTeX
- Android数据转化为Excel表格导入导出
- excel表格计算时间日期的差值,并转化为分钟数
- excel表格中String类型数值数据转化为int及float等格式
- 读取一个EXCEL的文件,然后将其转化成HTML的表格
- python 将txt 表格转化为excel
- 原生JS实现table数据,转化为EXCEL表格展现
- 原生JS实现table数据,转化为EXCEL表格展现
- excel(word)文件中的表格如何快速转化为html代码
- 将Excel表格转化为Latex表格——采用Excel2LaTeX
- Android数据转化为Excel表格导入导出
- leetcode_168. Excel Sheet Column Title 10进制转化为EXCEL表格标题,10进制转化为16进制
- latex 根据 excel, csv 的数据生成表格
- Excel 转Latex 及tex表格的处理 总结
- mysql如何将一个表导出为excel表格
- cocos2dx Excel表格数据通过csv保存到数据库sqlite
- excel表格密码保护的解除方法
- POI 操作Excel表格系列2 --- 读取Excel表格
- java导出Excel表格信息
- Matlab如何读取Excel 表格数据