Я хочу автоматизировать ввод данных в электронные таблицы Excel. Пользовательские данные будут существовать на веб-сайте, и когда пользователь запросит их, эти данные необходимо будет ввести в электронную таблицу Excel. Сложность заключается в том, что формат электронной таблицы Excel может значительно различаться между пользователями - он будет определяться пользователем.
Я думал об этом как о проблеме с шаблоном - электронная таблица Excel предоставляет шаблон, и задача состоит в том, чтобы вводить данные в определенные пользователем ячейки в этом шаблоне.
Я просмотрел xlwt и xlrd для python, а также jexcelapi и POI-HSSF для Java. Кажется, что они могут работать, но, учитывая, что я просто хочу поместить значения в определенные ячейки, они кажутся излишними. Меня также беспокоит переписывание электронной таблицы пользователя после обработки; похоже на возможность внести ошибки в процесс.
Есть ли способ сказать Excel, что нужно объединить данные из одного листа в другой? Я думаю, что могу создать простую электронную таблицу, содержащую только данные, и каким-то образом заставить Excel объединить ее с существующей электронной таблицей пользователя.
Есть смысл? Лучше подходит?




Возможно, вы захотите изучить стороннюю библиотеку под названием Aspose.Cells. Он доступен для Java и .Net и позволяет очень детально контролировать документы Excel. Самое замечательное в этой библиотеке то, что она не использует автоматизацию (что может привести к катастрофе в многопоточной среде, такой как Интернет).
Я лично не использовал Apose.Cells, но я использовал Aspose.Words (для .Net) для создания объединенных с почтой документов Word, содержащих несколько тысяч записей и изображений, и это работало безупречно.
WinHttpRequest (http://msdn.microsoft.com/en-us/library/aa384045(VS.85).aspx) может подойти, вы можете использовать документ и так далее. Вот отрывок из ссылки.
Dim HttpReq As Object
' Create the WinHTTPRequest ActiveX Object.'
Set HttpReq = New WinHttpRequest
' Open an HTTP connection.'
HttpReq.Open "GET", "http://microsoft.com", False
' Send the HTTP Request.'
HttpReq.Send
' Get all response text.'
Text1.Text = HttpReq.ResponseText
jXLS - возможно, вариант. Вы определяете файл XLS как шаблон, а затем объединяете свои данные.
Краткий обзор здесь
Очень интересно, очень похоже на то, что я искал. Собираюсь попробовать.