Просмотр исходного кода

- Resolve #627, improve multi-series line chart compatibility with KingSoft WPS
- Avoid to create duplicate style
- Update unit test for the auto filter
- Init code scanning alerts

xuri 5 лет назад
Родитель
Сommit
d1926675f8
4 измененных файлов с 83 добавлено и 6 удалено
  1. 71 0
      .github/workflows/codeql-analysis.yml
  2. 8 0
      adjust_test.go
  3. 3 5
      drawing.go
  4. 1 1
      styles.go

+ 71 - 0
.github/workflows/codeql-analysis.yml

@@ -0,0 +1,71 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+name: "CodeQL"
+
+on:
+  push:
+    branches: [master]
+  pull_request:
+    # The branches below must be a subset of the branches above
+    branches: [master]
+  schedule:
+    - cron: '0 6 * * 3'
+
+jobs:
+  analyze:
+    name: Analyze
+    runs-on: ubuntu-latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        # Override automatic language detection by changing the below list
+        # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
+        language: ['go']
+        # Learn more...
+        # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v2
+      with:
+        # We must fetch at least the immediate parents so that if this is
+        # a pull request then we can checkout the head.
+        fetch-depth: 2
+
+    # If this run was triggered by a pull request event, then checkout
+    # the head of the pull request instead of the merge commit.
+    - run: git checkout HEAD^2
+      if: ${{ github.event_name == 'pull_request' }}
+
+    # Initializes the CodeQL tools for scanning.
+    - name: Initialize CodeQL
+      uses: github/codeql-action/init@v1
+      with:
+        languages: ${{ matrix.language }}
+        # If you wish to specify custom queries, you can do so here or in a config file.
+        # By default, queries listed here will override any specified in a config file. 
+        # Prefix the list here with "+" to use these queries and those in the config file.
+        # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
+    # If this step fails, then you should remove it and run the build manually (see below)
+    - name: Autobuild
+      uses: github/codeql-action/autobuild@v1
+
+    # ℹ️ Command-line programs to run using the OS shell.
+    # 📚 https://git.io/JvXDl
+
+    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
+    #    and modify them (or add more) to build your code if your project
+    #    uses a compiled language
+
+    #- run: |
+    #   make bootstrap
+    #   make release
+
+    - name: Perform CodeQL Analysis
+      uses: github/codeql-action/analyze@v1

+ 8 - 0
adjust_test.go

@@ -49,6 +49,14 @@ func TestAdjustMergeCells(t *testing.T) {
 
 func TestAdjustAutoFilter(t *testing.T) {
 	f := NewFile()
+	assert.NoError(t, f.adjustAutoFilter(&xlsxWorksheet{
+		SheetData: xlsxSheetData{
+			Row: []xlsxRow{{Hidden: true, R: 2}},
+		},
+		AutoFilter: &xlsxAutoFilter{
+			Ref: "A1:A3",
+		},
+	}, rows, 1, -1))
 	// testing adjustAutoFilter with illegal cell coordinates.
 	assert.EqualError(t, f.adjustAutoFilter(&xlsxWorksheet{
 		AutoFilter: &xlsxAutoFilter{

+ 3 - 5
drawing.go

@@ -770,13 +770,11 @@ func (f *File) drawChartSeriesSpPr(i int, formatSet *formatChart) *cSpPr {
 		Ln: &aLn{
 			W:   f.ptToEMUs(formatSet.Series[i].Line.Width),
 			Cap: "rnd", // rnd, sq, flat
+			SolidFill: &aSolidFill{
+				SchemeClr: &aSchemeClr{Val: "accent" + strconv.Itoa((formatSet.order+i)%6+1)},
+			},
 		},
 	}
-	if i+formatSet.order < 6 {
-		spPrLine.Ln.SolidFill = &aSolidFill{
-			SchemeClr: &aSchemeClr{Val: "accent" + strconv.Itoa(i+formatSet.order+1)},
-		}
-	}
 	chartSeriesSpPr := map[string]*cSpPr{Line: spPrLine, Scatter: spPrScatter}
 	return chartSeriesSpPr[formatSet.Type]
 }

+ 1 - 1
styles.go

@@ -2063,7 +2063,7 @@ var getXfIDFuncs = map[string]func(int, xlsxXf, *Style) bool{
 		if style.Alignment == nil {
 			return xf.ApplyAlignment == nil || *xf.ApplyAlignment == false
 		}
-		return reflect.DeepEqual(xf.Alignment, newAlignment(style)) && xf.ApplyBorder != nil && *xf.ApplyBorder == true
+		return reflect.DeepEqual(xf.Alignment, newAlignment(style))
 	},
 	"protection": func(ID int, xf xlsxXf, style *Style) bool {
 		if style.Protection == nil {