浏览代码

excel export

TonyKang 8 年之前
父节点
当前提交
2fb52956cd
共有 2 个文件被更改,包括 9 次插入9 次删除
  1. 8 8
      modules/reports/util/rpt_excel_util.js
  2. 1 1
      test/unit/excel_export/rpt_excel_export_test.js

+ 8 - 8
modules/reports/util/rpt_excel_util.js

@@ -327,22 +327,22 @@ function writeSheet(pageData, sheetData, sharedStrList, stylesObj){
         borderLineWidths.push(border[JV.PROP_TOP][JV.PROP_LINE_WEIGHT]);
         borderLineWidths.push(border[JV.PROP_TOP][JV.PROP_LINE_WEIGHT]);
         borderLineWidths.push(border[JV.PROP_BOTTOM][JV.PROP_LINE_WEIGHT]);
         borderLineWidths.push(border[JV.PROP_BOTTOM][JV.PROP_LINE_WEIGHT]);
         if (sheetBorder[JV.PROP_LEFT] && sheetBorder[JV.PROP_LEFT][JV.PROP_LINE_WEIGHT]) {
         if (sheetBorder[JV.PROP_LEFT] && sheetBorder[JV.PROP_LEFT][JV.PROP_LINE_WEIGHT]) {
-            sheetBorderLineWidths.push(parseInt(border[JV.PROP_LEFT][JV.PROP_LINE_WEIGHT]));
+            sheetBorderLineWidths.push(parseInt(sheetBorder[JV.PROP_LEFT][JV.PROP_LINE_WEIGHT]));
         } else {
         } else {
             sheetBorderLineWidths.push(0);
             sheetBorderLineWidths.push(0);
         }
         }
         if (sheetBorder[JV.PROP_RIGHT] && sheetBorder[JV.PROP_RIGHT][JV.PROP_LINE_WEIGHT]) {
         if (sheetBorder[JV.PROP_RIGHT] && sheetBorder[JV.PROP_RIGHT][JV.PROP_LINE_WEIGHT]) {
-            sheetBorderLineWidths.push(parseInt(border[JV.PROP_RIGHT][JV.PROP_LINE_WEIGHT]));
+            sheetBorderLineWidths.push(parseInt(sheetBorder[JV.PROP_RIGHT][JV.PROP_LINE_WEIGHT]));
         } else {
         } else {
             sheetBorderLineWidths.push(0);
             sheetBorderLineWidths.push(0);
         }
         }
         if (sheetBorder[JV.PROP_TOP] && sheetBorder[JV.PROP_TOP][JV.PROP_LINE_WEIGHT]) {
         if (sheetBorder[JV.PROP_TOP] && sheetBorder[JV.PROP_TOP][JV.PROP_LINE_WEIGHT]) {
-            sheetBorderLineWidths.push(parseInt(border[JV.PROP_TOP][JV.PROP_LINE_WEIGHT]));
+            sheetBorderLineWidths.push(parseInt(sheetBorder[JV.PROP_TOP][JV.PROP_LINE_WEIGHT]));
         } else {
         } else {
             sheetBorderLineWidths.push(0);
             sheetBorderLineWidths.push(0);
         }
         }
         if (sheetBorder[JV.PROP_BOTTOM] && sheetBorder[JV.PROP_BOTTOM][JV.PROP_LINE_WEIGHT]) {
         if (sheetBorder[JV.PROP_BOTTOM] && sheetBorder[JV.PROP_BOTTOM][JV.PROP_LINE_WEIGHT]) {
-            sheetBorderLineWidths.push(parseInt(border[JV.PROP_BOTTOM][JV.PROP_LINE_WEIGHT]));
+            sheetBorderLineWidths.push(parseInt(sheetBorder[JV.PROP_BOTTOM][JV.PROP_LINE_WEIGHT]));
         } else {
         } else {
             sheetBorderLineWidths.push(0);
             sheetBorderLineWidths.push(0);
         }
         }
@@ -437,8 +437,8 @@ function writeSheet(pageData, sheetData, sharedStrList, stylesObj){
         //remark: 1 excel width = 2.117 mm
         //remark: 1 excel width = 2.117 mm
         rst.push('<cols>');
         rst.push('<cols>');
         var w = 0;
         var w = 0;
-        for (var i = 1; i < xPos.length; i++) {
-            w = 1.0 * (xPos[i] - xPos[i - 1]) / DPI * 25.4 / 2.117;
+        for (var i = 1; i < xPos.length - 1; i++) {
+            w = 1.0 * (xPos[i + 1] - xPos[i]) / DPI * 25.4 / 2.117;
             w = Math.round(w * 1000) / 1000;
             w = Math.round(w * 1000) / 1000;
             rst.push('<col min="' + i +'" max="' + i +'" width="' + w + '" customWidth="1"/>');
             rst.push('<col min="' + i +'" max="' + i +'" width="' + w + '" customWidth="1"/>');
         }
         }
@@ -465,7 +465,7 @@ function writeSheet(pageData, sheetData, sharedStrList, stylesObj){
     private_setSheetData = function(){
     private_setSheetData = function(){
         //remark: 1 excel height = 0.3612 mm
         //remark: 1 excel height = 0.3612 mm
         rst.push('<sheetData>');
         rst.push('<sheetData>');
-        var spanX = xPos.length - 1, cellIdx = 0, h = 0,
+        var spanX = xPos.length - 2, cellIdx = 0, h = 0,
             hasMoreCols = true, nextColIdx = -1,
             hasMoreCols = true, nextColIdx = -1,
             nextRowIdx = yPos.indexOf(sheetData.cells[cellIdx][JV.PROP_AREA][JV.PROP_TOP]);
             nextRowIdx = yPos.indexOf(sheetData.cells[cellIdx][JV.PROP_AREA][JV.PROP_TOP]);
         for (var i = 1; i < yPos.length - 1; i++) {
         for (var i = 1; i < yPos.length - 1; i++) {
@@ -531,7 +531,7 @@ function writeSheet(pageData, sheetData, sharedStrList, stylesObj){
     private_pre_analyze_pos();
     private_pre_analyze_pos();
     rst.push(dftHeadXml + '\r\n');
     rst.push(dftHeadXml + '\r\n');
     rst.push('<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">');
     rst.push('<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">');
-    var colStr = private_getCellIdxStr(xPos.length - 2);
+    var colStr = private_getCellIdxStr(xPos.length - 3);
     rst.push('<dimension ref="A1:' + colStr + '' + yPos.length + '"/>');
     rst.push('<dimension ref="A1:' + colStr + '' + yPos.length + '"/>');
     rst.push('<sheetViews><sheetView tabSelected="1" workbookViewId="0">');
     rst.push('<sheetViews><sheetView tabSelected="1" workbookViewId="0">');
     rst.push('<selection sqref="A1:' + colStr + '1"/>');
     rst.push('<selection sqref="A1:' + colStr + '1"/>');

+ 1 - 1
test/unit/excel_export/rpt_excel_export_test.js

@@ -7,7 +7,7 @@ var fsUtil = require('../../../public/fsUtil');
 var rpt_xl_util = require('../../../modules/reports/util/rpt_excel_util');
 var rpt_xl_util = require('../../../modules/reports/util/rpt_excel_util');
 
 
 test('check real function.', function(t){
 test('check real function.', function(t){
-    var data = fs.readFileSync('../../../tmp/07_1.page1.js', 'utf8', 'r');
+    var data = fs.readFileSync('../../../tmp/07_1.page.js', 'utf8', 'r');
     //var data = fs.readFileSync('../../../tmp/08_2.page.js', 'utf8', 'r');
     //var data = fs.readFileSync('../../../tmp/08_2.page.js', 'utf8', 'r');
     eval(data);
     eval(data);
     rpt_xl_util.exportExcel(testReport07_1, null);
     rpt_xl_util.exportExcel(testReport07_1, null);