Преобразование xlsx-файла в HTML с помощью VBScript или пакетного скрипта

#html #excel #batch-file #vbscript #xlsx

#HTML #excel #пакетный файл #vbscript #xlsx

Вопрос:

Я исследовал в течение нескольких дней, но я не могу найти ничего, чтобы решить эту проблему, с которой я сталкиваюсь.

У меня есть файл Excel в формате .xlsx, который обновляется в течение дня. Что мне нужно сделать, это вызвать пакет, который преобразует его в .html. Я возьму этот HTML-файл и скопирую его в папку, которая автоматически опубликует его для внутреннего использования в моей компании.

Если кто-нибудь может помочь, я был бы очень признателен.

Ответ №1:

Excel позволяет сохранять как веб-страницу изначально. В нем также есть веб-страница «один файл», которая объединяет все изображения / etc в один файл. Он использует расширение mht or mhtml .

 Const xlHtml = 44
Const xlWebArchive = 45

' Create an instance of Excel and open the workbook...
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open "C:FolderMyWorkbook.xlsx"

' Save the workbook as an HTML or MHTML page...
objExcel.ActiveWorkbook.SaveAs "C:FolderMyPage.html",  xlHtml
' -or-
objExcel.ActiveWorkbook.SaveAs "C:FolderMyPage.mhtml", xlWebArchive

' Close Excel...
objExcel.Quit
  

Комментарии:

1. Итак, пытаемся внедрить это во что-то, связанное с производством на работе, и мы видим папку, которая при этом также создается с файлом stylesheet.css и всем остальным, что вызывает файл HTML. Есть ли способ создать обычный HTML-файл, которому не нужны все остальные материалы?

2. Вы пробовали использовать xlWebArchive тип с расширением mht или mhtml , как я показал?

Ответ №2:

Если кто-то ищет C#

Добавьте ссылку -> COM -> Найдите Microsoft Excel, затем Microsoft Office

 using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelToSinglePageWeb
{
    class Program
    {
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:UsersnameDesktopWork In Progress.xlsx");
            xlWorkbook.SaveAs(@"C:UsersnameDesktopSomePage.mhtml", 45);
            xlApp.Quit();
        }
    }
}