2017-09-29 3 views
0

컨텍스트 : 사용자 입력을 받아 여러 Excel 스프레드 시트를 사용하고 Excel의 기능에 크게 의존하는 여러 단계의 복잡한 계산을 실행 한 다음 업계 표준 인 결과 요약표를 출력합니다. 내 고객이 웹 응용 프로그램으로 변환 할 수 있는지 묻고 모든 항목을 DB에 저장하고 모든 결과를 브라우저에 전달했습니다. 나는 PHP 나 자바 스크립트 모두에서이 모든 것을 프로그래밍 할 수 있다는 것을 알고 있지만 Excel의 기능에 얼마나 의존했는지에 따라 어렵고 시간이 많이 걸릴 것입니다.엑셀/시트를 사용하여 데이터베이스에 대한 읽기/쓰기가 가능한 webapp에서 계산을 수행 하시겠습니까?

질문 : PHP로 작성된 양식으로 데이터를 캡처하고 SQL 데이터베이스 (또는 언어/db 솔루션)에 저장하여 이러한 값을 사용하여 내 입력란에 사용자 입력 셀을 채울 수 있습니까? Excel 스프레드 시트는 백그라운드에서 "계산 엔진"으로 사용됩니까?

환경 설정 : 선호하는 PHP는 자바 스크립트보다 훨씬 경험이 많습니다. 마찬가지로, DB 솔루션으로 SQL을 선호하십시오. Google 스프레드 시트보다 Excel을 선호하지만 필요한 경우 전환 할 수 있습니다.

+0

물론이 라이브러리를 사용하여 스프레드 시트를 편집 할 수 있습니다. https://phpspreadsheet.readthedocs.io/en/develop/ – JimL

+0

@JimL, 그게 해결책입니다. 하나의 질문을 통해 대답 할 수 있기를 바랍니다. 셀 A5의 수식 (A1 : A4)과 A6의 수식 (A5 + 1)이있는 스프레드 시트가 있다고 가정 해 보겠습니다. PhpSpreadsheet에서 스프레드 시트를 읽고 A1 : A4에 대한 새 값을 작성한 다음 A6을 가져 와서 사용자에게 표시하거나 전체 프로세스를 다시 작성해야합니까? 간단히 말하면, 내가 쓰는 셀과 내가 가져온 셀 사이에서 수행되는 일련의 계산을 수행하면 자동으로 수행되는 것입니까, 아니면 수행합니까? – user1563247

답변

0

당신이 Excel을 사용하고 있다고 가정 할 때, 나는 당신이 Windows 컴퓨터를 실행하고 있다고 생각합니다. 나는 당신이 수 있습니다 ODBC를 사용하여 데이터베이스로 Excel을 취급 알아요. 그렇게 변경하면 원하는 재 계산이 실행되는지 확실하지 않지만 Excel 파일을 데이터베이스로 처리 할 수 ​​있습니다 (최종 데이터베이스는 아닐 수도 있음).

이 방향으로 이동하려면 로그인하지 않은 상태에서 Excel이 올바르게 실행되도록 추가 설정 작업이 필요합니다 (또는 이 항상이되도록 서버를 구성해야합니다. 실행중인 Excel로 로그인).

장기적으로 계산을 위해 Excel을 사용하지 않는 것이 좋습니다.

+0

Excel에서 마이그레이션하는 것은 불행히도 불가능합니다. 고객이 거의 항상 스프레드 시트 (특히 모든 입력을 결정한 경우 최종 버전)를 원하기 때문입니다. 따라서 나는 백그라운드에서 Excel을 실행하기를 기대하고 있습니다 ... 그것은 일관성을 보장하지만 외부에있는 DB를 가지고 있으면 실행 된 모든 다른 사례를보다 잘 제어 할 수 있습니다. – user1563247

+0

어. 음 ... 클라이언트가 원하는 것이고 Excel이 최종 제품 일 때 Excel을 사용하는 것이 합리적입니다. 내가 너를 올바르게 이해하고 있다면 DB는 단순히 역사를 지키는 것일 뿐인가? DB에 스프레드 시트를 저장할 수없는 이유는 무엇입니까? – theGleep

+0

그게 우리가 현재하고있는거야. "Project-A_Scenario_v57.3"과 같은 이름의 시트가있는 폴더 시스템. 그리고 모든 시나리오가 끝나거나 무언가가 손상되는 등의 문제는 아닙니다. 이러한 프로젝트 중 일부에는 100 개의 스프레드 시트가 있습니다. 내가 성취하고자하는 것은 올바른 시나리오를 선택할 수있는 웹 사이트의 드롭 다운 목록을 가져 와서 출력을 찾아보고 모든 입력을 DB에 저장하고 모든 계산을 완료하는 것입니다. 내가 누군가를 알고있는 방법은 calc'd et가되어야하는 셀에 값을 고정시킴으로써 실수로 실수를 저 지르지 못했을 것입니다. – user1563247