Cách tốt nhất để thực hiện các phép tính giống bảng tính bằng ngôn ngữ lập trình là gì? Ví dụ: Một ứng dụng nhiều người dùng cần phải có sẵn trên web mà crunches cột và các tế bào của các con số như một bảng tính dựa trên trình người dùng. Cấu trúc dữ liệu/mô hình/mô hình cơ sở dữ liệu tốt nhất để xử lý loại công việc này để xử lý các cột khác nhau được thực hiện hiệu quả và dễ dàng trong php, java, hoặc thậm chí là .Net. Sử dụng cơ sở dữ liệu có tốt hơn không khi sử dụng cấu trúc dữ liệu? Nếu sử dụng một cơ sở dữ liệu là cách, làm thế nào để đi về việc này?Phương pháp tốt để thực hiện các phép tính giống bảng tính bằng ngôn ngữ lập trình là gì?
Trả lời
Aspose.Cells (trước đây là Aspose.Excel.Web) là một cách hay để có được chức năng bạn đang tìm kiếm.
Trừ khi bạn hỏi thêm về "Làm thế nào là xong?" "Tôi cần phải làm điều đó." Sau đó, tôi sẽ xem xét các câu trả lời khác được đưa ra.
Dọc theo dòng "Tôi cần làm điều đó"
Microsoft có Excel Services chỉ làm những gì bạn muốn. Hoạt động bảng tính trên máy chủ. Nó có sẵn thông qua một giao diện dịch vụ web, vì vậy bạn có thể kết nối và điều khiển các phép tính từ Java, PHP, .NET, bất cứ điều gì.
Dịch vụ Excel là một phần của Sharepoint 2007.
Điều này là tốt, nhưng tôi không muốn kết hôn với Microsoft. – Kunle
Thật không may, trừ khi bạn xây dựng tất cả từ đầu, bạn sẽ được "kết hôn" với một nhà cung cấp. Bạn muốn cân nhắc loại nhà cung cấp nào? Còn các dự án nguồn mở thì sao? –
Resolver One là một ứng dụng bảng tính thực hiện trong IronPython.
Có an explanation of the overall mechanic for the calculation [pythonology.org] nó sử dụng cho các ecuations do người dùng tạo.
Những hình ảnh có liên quan cho thấy thuật toán tổng thể Resolver One.
Cần lưu ý rằng người dùng có thể viết mã python để giải thích cả trên các ô và vị trí đặc biệt 'bên ngoài trang tính'.
Nhìn vào another question here in SO, từ đó tôi sử dụng lại câu trả lời của mình.
Tôi không thể cho bạn biết cách thực hiện. Nhưng tôi khuyên bạn nên xem mã số PHPExcel. PHPExcel là một thư viện cho phép bạn tạo các tệp Excel trong PHP.
Các quy trình làm việc của PHPExcel được đơn giản hóa như thế này:
- Tạo một đối tượng tập tin Excel trống
- Thêm tế bào (với một trong hai dữ liệu hoặc công thức) cho "tập tin Excel"
- Gọi chức năng tạo tạo chính tệp đó
Trong trường hợp của bạn, bạn sẽ phải thay thế 3. bằng thứ gì đó như "Tạo giao diện web".
Vì vậy, tôi khuyên bạn nên xem mã của dự án mã nguồn mở này và xem cấu trúc chung như thế nào. Điều này sẽ giúp bạn giải quyết vấn đề của mình.
Để thực hiện phép tính thực tế, hãy xem lý thuyết đồ thị. Về cơ bản, bạn muốn đại diện cho mỗi ô dưới dạng một nút trong biểu đồ và mỗi phụ thuộc như là một cạnh đạo diễn. Tiếp theo, hãy thực hiện topological sort để tính giá trị của từng ô theo đúng thứ tự.
Tôi phải chỉ ra rằng các bảng tính google đã thực hiện loại nội dung này.
Tôi đã từng sử dụng cây nhị phân để lưu trữ kết quả phân tích chuỗi bằng cách sử dụng BODMAS. Mỗi nút là một hoạt động giữa hai nút khác, có thể là một số, một biến hoặc một hoạt động khác.
Vì vậy, y = x * x + 2
trở thành:
+
* 2
x x
Thật đáng buồn này còn đi học trong Pascal và được lưu trữ trên một đĩa 5 1/4" , do đó bạn không muốn nó :)
- 1. Phương pháp thiết kế ngôn ngữ lập trình đơn giản
- 2. Phương pháp học ngôn ngữ lập trình của Schliemann
- 3. Các phương pháp hay nhất để viết trình phân tích cú pháp ngôn ngữ lập trình
- 4. Có thể thực hiện một ngôn ngữ lập trình thứ hai bằng ngôn ngữ đó không?
- 5. Là "regex" trong các ngôn ngữ lập trình hiện đại thực sự "ngữ pháp ngữ cảnh nhạy cảm"?
- 6. Điều gì có nghĩa là tốt trong ngôn ngữ lập trình?
- 7. Ngôn ngữ lập trình JS giống như Jinja
- 8. Thực hiện các phép tính trên các thuộc tính
- 9. Cần có những tính năng ngôn ngữ nào trong ngôn ngữ lập trình để tạo trình biên dịch?
- 10. Sự khác nhau giữa cú pháp và ngữ nghĩa của ngôn ngữ lập trình là gì?
- 11. Ngôn ngữ lập trình PHP hoặc ngôn ngữ lập trình?
- 12. Ngôn ngữ lập trình nào giống tiếng Anh nhất?
- 13. C# Ngôn ngữ lập trình
- 14. Tùy chọn tốt để bắt đầu lập trình phần cứng bằng ngôn ngữ cấp cao là gì?
- 15. Ngôn ngữ lập trình nào là FogBugz được viết bằng?
- 16. Mục đích của ngôn ngữ lập trình Scala là gì?
- 17. Phương pháp thu gom rác thải ngôn ngữ Go là gì so với các phương pháp khác?
- 18. Thư viện tốt để làm hình học tính toán (như CGAL) bằng ngôn ngữ thu gom rác thải là gì?
- 19. EOF trong ngôn ngữ lập trình C là gì?
- 20. Tương đương với bảng tính Scala IDE bằng các ngôn ngữ khác?
- 21. Ngôn ngữ lập trình Axum mới này là gì?
- 22. Điều đó thực sự có nghĩa là ngôn ngữ lập trình là gì?
- 23. Dịch mã byte Java sang các ngôn ngữ lập trình và ngôn ngữ lập trình khác
- 24. Ngôn ngữ lập trình ngắn gọn nhất là gì?
- 25. Ngôn ngữ lập trình Siri
- 26. Ngôn ngữ lập trình với cú pháp giống như python nhưng tạo mã gốc
- 27. Cách tốt nhất để phát hiện ngôn ngữ của người dùng trình duyệt trong năm 2012 là gì?
- 28. Ngôn ngữ ISO là gì?
- 29. Thực tiễn tốt nhất để xử lý ngôn ngữ bằng các công cụ chuyển tiền và ngôn ngữ
- 30. Ngôn ngữ lập trình tốt để học cách mở rộng tâm trí của các nhà phát triển C# là gì?
Dù bạn làm gì, bắt đầu suy nghĩ về vấn đề tham chiếu vòng tròn * đầu * ... – dmckee
Và khi/nếu ai đó đề cập viết một trình biên dịch/phiên dịch cho ngôn ngữ bạn đang xây dựng, tìm kiếm đầu tiên: câu hỏi về trình biên dịch/phiên dịch của bạn đã được trả lời trên SO. – dmckee
Tôi không chắc tôi thậm chí hiểu những gì bạn đang yêu cầu ở đây. Bạn cần cột và ô số, và bạn cần cho phép người dùng tính toán chúng? Điều đó có thể được thực hiện trong, tốt, khá nhiều bất cứ điều gì. Có bao nhiêu người dùng? Nếu một người dùng nhập số, người dùng khác có cần xem ngay lập tức không? Có vẻ như những gì bạn đang tìm kiếm có thể được thực hiện tốt bằng cách sử dụng J2EE hoặc .NET, nhưng điều đó dựa trên sự hiểu biết rất không đầy đủ về các yêu cầu của bạn. Nếu bạn tập trung câu hỏi của mình chặt chẽ hơn một chút, tôi nghĩ bạn sẽ nhận được câu trả lời tốt hơn. – rtperson