6

私はこのライブラリXlsxWriterを使用しています。

私はワークブックを開いて、それにいくつかのことを書きました(公式の例を考慮して)-

import xlsxwriter

# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()

# Some data we want to write to the worksheet.
expenses = (
    ['Rent', 1000],
    ['Gas',   100],
    ['Food',  300],
    ['Gym',    50],
)

# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0

# Iterate over the data and write it out row by row.
for item, cost in (expenses):
    worksheet.write(row, col,     item)
    worksheet.write(row, col + 1, cost)
    row += 1

# Write a total using a formula.
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')

workbook.close()

ドキュメントを徹底的に調べましたが、名前を付けて保存する機能が見つからないようです。

をHTMLファイルとして保存する方法 (何らかの方法) はありますか?workbook

Python コードからできない場合、どうにかしてVBAコードを記述し、そのコードを Python から呼び出すことはできますか?

4

3 に答える 3

4

を使用win32com.clientして VBA マクロを呼び出すことができます。ファイルの名前が Bar であると仮定すると...

VBA:

Sub SaveHTML()
ThisWorkbook.SaveAs Filename:="C:\Foo\Bar.htm", FileFormat:=xlHtml
End Sub

パイソン:

from win32com.client import Dispatch

xl = Dispatch('Excel.Application')
xl.Workbooks.Open('C:\Foo\Bar.xlsx')
#xl.Visible = True -- optional
xl.Application.Run("SaveHTML")
xl.Workbooks.Close

必要に応じて変更します。

編集:追加するのを忘れていました.win32comを使用してExcelを閉じるのは絶対に面倒です。ワークブックは閉じますが、アプリケーション自体は残ります (タスク マネージャーを確認してください)。この問題の回避策については、この SO 投稿を参照してください。

于 2013-11-15T08:25:10.380 に答える
2

Python から直接 HTML に保存し、電子メールに添付できます。

from win32com.client.gencache import EnsureDispatch
from win32com.client import constants

yourExcelFile = ...
newFileName = ...

xl = EnsureDispatch('Excel.Application')
wb = xl.Workbooks.Open(yourExcelFile)
wb.SaveAs(newFileName, constants.xlHtml)
xl.Workbooks.Close()
xl.Quit()
del xl
于 2014-06-04T17:45:07.050 に答える
2

html http://codingtutorials.co.uk/python-excel-xlrd-xlwt/に変換する前に、xlrd を使用して Excel ファイルを解析できます。

于 2013-10-28T12:14:00.180 に答える