我正在尝试使用 SheetJS 读取 .xlsx 文件并将其转换为 JSON。我能够读取简单的(没有合并单元格).xlsx 文件并将其转换为 JSON,但我无法正确处理合并单元格。
问题是我有一个 .xlsx 文件,其中包含不同语言的产品。
我尝试在不同的网站和 SheetJS 的 github 存储库https://github.com/sheetjs/js-xlsx/#json上寻找解决方案,但效果平平。主要解决如何编写合并单元格。
function handleFile(e) {
var files = e.target.files, f = files[0];
var reader = new FileReader();
reader.onload = function(e) {
var data = new Uint8Array(e.target.result);
var workbook = XLSX.read(data, {type: 'array'});
let result = '';
let sheet_name_list = workbook.SheetNames;
// iterate through sheets
sheet_name_list.forEach(function (y) {
workbook.Sheets[y]['!merges'].map(r => {
let startChar = XLSX.utils.encode_range(r).split(':')[0].replace(/[^a-zA-Z]+/g, '');
let endChar = XLSX.utils.encode_range(r).split(':')[1].replace(/[^a-zA-Z]+/g, '');
let number = XLSX.utils.encode_range(r).split(':')[0].match(/[+-]?\d+(?:\.\d+)?/g)[0];
for …Run Code Online (Sandbox Code Playgroud) 我希望能够在运行时添加新路由,而无需使用 NodeJS 和 ExpressJS 重新启动服务器。我采用了类似的方法,如本文中所示: https: //alexanderzeitler.com/articles/expressjs-dynamic-runtime-routing/
从技术上讲,我可以在本文中同样在运行时添加新文件和逻辑,但问题是当没有 api 路由匹配时,我将发送 404 JSON 响应(正如它应该的那样)。
我认为我遇到的问题是我的动态创建的路由永远不会到达,因为静态路由优先于动态创建的路由。这意味着创建的路由将在错误处理后安装,因此永远不会到达。我在app.js中的代码
...
// Routes
app.use('/api/products', productRoutes);
app.use('/api/users', userRoutes);
...
/* This is where the dynamically created routes should be mounted */
// Error handling
app.use((req, res, next) => {
const err = new Error('Not found');
err.status = 404;
next(err);
});
app.use((err, req, res, next) => {
res.status(err.status || 500).json({error: {message: err.message}});
});
/* This is where the dynamic routes are mounted */
module.exports = app;Run Code Online (Sandbox Code Playgroud)
当我注释掉错误处理时,我能够访问在运行时创建的路由,而通过错误处理,我只能在服务器重新启动后访问动态创建的路由,这是我想避免的。 …