作者q00153 (TB)
看板Soft_Job
标题Re: [请益]有办法WORD或EXCEL表单直接转乘系统表单
时间Thu Aug 27 17:24:33 2020
※ 引述《carolgilbert (凯洛吉博)》之铭言:
: 请教一下
: 有办法用WORD或EXCEL做好的表单,直接汇入某个公司自己的系统形成电子表单吗?
: 如果可行,这会需要用到什麽程式语言?
: 如果不能汇入现有系统,
: 那我自己再建立一个电子表单的系统,之後有办法用WROD或EXECL建立表单後,
: 汇入这个新的系统,让它自己形成符合这个系统格式的电子表单吗?
: 同样的问题,这个转换需要用到什麽程式技术?
: --补充说明一下,我不是要侵入别人的系统啦。
: 因为我们公司有非常多的表单(领料申请单、请假单、制程检点表、品质检查表。。。
等
: 几千份表单),而且每天持续增加与改版,现在就是希望看看能不把既有的跟以後新增
的w
: ord、excel表单丢到既有系统里让它直接转换成电子表单,让员工在系统上点选跟填写
完
: 毕後,利用原本系统完成签核。
: 如果不能丢到既有系统,也可以接受建一个新的系统,日後可以把表单汇入後让它自动
转
: 成电子表单。
:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.146.127.46 (台湾)
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1598495175.A.5A8.html
: → airtsubasa: 侵入乙方资料库下insert,出事怪谁?乙方没提供介面汇 08/27 10:
37
: → airtsubasa: 入,你要问乙方可不可以啊! 08/27 10:
37
: → DCTmaybe: 看不太懂你想问什麽,反正用google form就对了 08/27 11:
09
: → Kazimir: 首先那个「公司的系统」要能够汇入啊 08/27 11:
23
: → jack0204: 这里看起来像某个公司的系统客服吗 08/27 11:
37
: 推 GoalBased: 可以 大部分语言都可以做 08/27 11:
48
: 推 Csongs: 可以 很常见 08/27 12:
08
: → allenxxx: 可以,但如果有被告的疑虑,请自行承担 08/27 12:
16
: 推 mozume: RPA? 08/27 12:
23
: → samuel1988: Ragic 08/27 13:
53
: → william0126: python用现成的excel模块+http request模块很快速 08/27 15:
03
: ※ 编辑: carolgilbert (1.200.173.121 台湾), 08/27/2020 15:51:25
: 推 enthos: 机器人流程自动化RPA(Robotic Process Automation) 08/27 16:
41
如果要最好的方法
如果您伺服器是 windows server
可以在伺服器上安装 Office 然後
使用 COM 连结 OLE 建立 Excel 或 Word 的 Application
由於这是微软官方的东东
你要准确到 Excel A1 储存格的第一个字是什麽颜色,什麽字体都可以读出来~~
只要你会 VBA 使用上是很容易
如果你的伺服器语言是 PHP 参考 (
https://www.php.net/manual/en/book.com.php)
<?php
$ex = new COM("Excel.Application", NULL, CP_UTF8) or Die("Did not inst
an
$wb = $ex->Application->Workbooks->Open("file.xlsx") or Die("Failed to
O
$ws = $wb->Worksheets(1);
$cell = $ws->Cells(1, 1);
$value = $cell->value;
...
$wb->Close();
unset($ws);
unset($wb);
$ex->Workbooks->Close();
$ex->Quit();
unset($ex);
?>
如果你的伺服器语言是 Python 参考 (
https://pbpython.com/windows-com.html)
import win32com.client as win32
ex = win32.gencache.EnsureDispatch('Excel.Application')
wb = ex.Workbooks.Open("file.xlsx")
...
wb.Close()
ex.Application.Quit()
如果你的伺服器语言是 Golang 参考 (
https://github.com/go-ole/go-ole)
package main
import (
"time"
ole "github.com/go-ole/go-ole"
"github.com/go-ole/go-ole/oleutil"
)
func main() {
ole.CoInitialize(0)
defer ole.CoUninitialize()
unknown, _ := oleutil.CreateObject("Excel.Application")
ex, _ := unknown.QueryInterface(ole.IID_IDispatch)
defer oleutil.CallMethod(ex, "Quit")
defer ex.Release()
...
}
如果你的伺服器语言是 ASP C# 参考 (
http://csharp.net-informations.com/excel/csh
ar
如果你的伺服器语言是 ASP VB 参考 (
https://docs.microsoft.com/en-us/office/vba/
la
如果你的伺服器语言是 Java 参考 (
https://stackoverflow.com/questions/6679810/is
-t
如果您伺服器是 Linux
请参考各种程式语言的 office 套件
不过通常支援程度都比较低,而且主要是 Excel 读写套件,Word 的很少
其中 Java 的 Apache POI 套件是最好的 (
https://poi.apache.org/)
PHP 可参考 (
https://github.com/ziadoz/awesome-php#office)
Python 可参考 (
https://github.com/vinta/awesome-python#specific-formats-proces
si
Golang 可参考 (
https://github.com/avelino/awesome-go#microsoft-office)
或者可以装一个 Windows VM
把档案丢到 VM 读取完再读取出来
另一个做法是 Excel 或 Word 档案本身用 VBA 参考 (
https://codingislove.com/http-
re
用写爬虫的原理,把资料读取後 put 到伺服器上
这样使用者一样 key Office 档案
key 完之後按个按钮就上抛至伺服器
可以使用 256 位元的 key 比对混淆後的电脑 MAC 位址来查看是否从正确的电脑上传的
资?
取代网页的登入验证
以上报告~感激~
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.75.194.99 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1598520285.A.54F.html
1F:→ ChungLi5566: Apache POI计算Excel的公式结果可能会出错 08/27 20:23
对啊,这也是我最後没有选择 Apache POI 的原因,在一些小地方相容性还是不太好,虽
然很强大了
※ 编辑: q00153 (42.77.111.185 台湾), 08/28/2020 08:45:19
2F:推 kyoe: 认真推推 08/28 10:18
3F:推 RayLeeRock: 推分享 08/31 01:39