下面是我写的导入方法,导入后没有编辑单元格内的内容,但是对spread设置了一些属性和字体,不知道是否会有影响。
// 导入excel
function importFile() {
// 获取spread,用于导入方法中导入使用
var spread = spread1;
var fontsObj = fonts;
// 获取文件内容,此处可改写,类型为blob
var excelFile = $('#selectFile')[0].files[0];
// 获取文件名称
filename = 'filename';
// 导入文件
excelIo.open(excelFile, function (json) {
var workbookObj = json;
spread.fromJSON(workbookObj);
// 循环所有sheet页,设置字体为宋体
// 导入后可能会对文件原有字体有影响,当原有字体匹配不上时,会默认使用spread字体,导致导出乱码
var sheetCount = spread.getSheetCount();
for (var i = 0; i < sheetCount; i++) {
// 设置字体相关设置
var sheet = spread.getSheet(i);
var theme = sheet.currentTheme();
theme.bodyFont("宋体");
sheet.currentTheme(theme);
// 设置显示的列和行,通过excel中设置的打印区域
sheet.setRowCount(sheet.printInfo().rowEnd()+1);
sheet.setColumnCount(sheet.printInfo().columnEnd()+1);
}
spread.options.numbersFitMode = 1; // 显示不下时溢出模式
spread.options.allowSheetReorder = false;// 禁止拖拽sheet页顺序
spread.options.scrollbarMaxAlign = true; // 滚动条是否与活动表单的最后一行和一列对齐
spread.options.tabEditable = false;// 禁止重命名sheet页
spread.options.newTabVisible = false;// 禁止新增sheet页
spread.options.tabNavigationVisible = false; // 是否显示表单选项卡导航
spread.options.allowContextMenu = true; // 是否允许用户打开内置的上下文菜单
spread.options.columnResizeMode = GC.Spread.Sheets.ResizeMode.split; // 列调整宽度模式:不改变整体区域宽度,有助于保证打印区域在一定程度上不受影响
spread.options.rowResizeMode = GC.Spread.Sheets.ResizeMode.split; // 行调整高度模式:不改变整理区域高度,有助于保证打印区域在一定程度上不受影响
/* 此处按需进行设置,如果没有乱码,可以不使用此部分
var fonts = {
normal: fontsObj["simsun.ttf"]
};
GC.Spread.Sheets.PDF.PDFFontsManager.registerFont('宋体', fonts);*/
}, function (e) {
swal("导入失败!", e.errorMessage, "error");
});
}
|