title: Is there a way to add descriptive text beside each data point in BarChart BarChartSeries using OpenXML(C#) for PPT?
body: <p><a href="https://i.stack.imgur.com/K2hf7.png" rel="nofollow noreferrer">I am able to get the 0 as value. However I want to set a descriptive text like B does not have any data and similar is the case for D here in the chart. </a></p>
  <p><a href="https://i.stack.imgur.com/ELft1.png" rel="nofollow noreferrer">I want to have text whenever a company does not have any value which is 0 in this case. This can happen for multiple companies so how can I automate this?</a></p>
  <p>I am using this to put category data-Sample code</p>
  <p>DocumentFormat.OpenXml.Drawing.Charts.CategoryAxisData categoryAxisData1 = new DocumentFormat.OpenXml.Drawing.Charts.CategoryAxisData();</p>
  <pre><code>        C.StringReference stringReference2 = new C.StringReference();
          C.Formula formula2 = new C.Formula
          {
              Text = &quot;Sheet1!$A$2:$A$7&quot;
          };
  
          C.StringCache stringCache2 = new C.StringCache();
          C.PointCount pointCount2 = new C.PointCount() { Val = Convert.ToUInt32(companies.Count)  };
  
          stringCache2.Append(pointCount2);
         
          int count = 0;
          for (int i = companies.Count-1; i &gt;= 0 ; i--)
          {
              
              C.StringPoint stringPoint = new C.StringPoint() { Index = Convert.ToUInt32(count) };
              C.NumericValue numericValue = new C.NumericValue
              {
                  Text = companies[i].CompanyName
              };
              stringPoint.Append(numericValue);
              stringCache2.Append(stringPoint);
              count++;
          }
  
          stringReference2.Append(formula2);
          stringReference2.Append(stringCache2);
          categoryAxisData1.Append(stringReference2);
  </code></pre>
  <p>Sample code for value on barchart-</p>
  <p>C.Values values1 = new C.Values();</p>
  <pre><code>        C.NumberReference numberReference1 = new C.NumberReference();
          C.Formula formula3 = new C.Formula
          {
              Text = &quot;Sheet1!$B$2:$B$7&quot;
          };
  
          C.NumberingCache numberingCache1 = new C.NumberingCache();
          C.FormatCode formatCode1 = new C.FormatCode
          {
              Text = &quot;General&quot;
          };
          numberingCache1.Append(formatCode1);
          C.PointCount pointCount3 = new C.PointCount() { Val = Convert.ToUInt32(companies.Count) };
          numberingCache1.Append(pointCount3);
          for (int i = 0; i &lt; companies.Count; i++)
          {
              C.NumericPoint numericPoint = new C.NumericPoint() { Index = Convert.ToUInt32(i) };
              //C.NumericValue numericValue = new C.NumericValue
              //{
              //    Text = (sliderValueForComapnies[i] &gt; 0) ? sliderValueForComapnies[i].ToString() : &quot;Data not avaialble&quot;,
              //};
              C.NumericValue numericValue = new C.NumericValue();
  
              if (sliderValueForComapnies[i] &gt; 0)
              {
                  numericValue.Text = sliderValueForComapnies[i].ToString();
              }
              //else
              //{
              //  this area will have the companies with 0 as value so what can I do here to add text?
              //}
  
  
              numericPoint.Append(numericValue);
              numberingCache1.Append(numericPoint);
          }
          numberReference1.Append(formula3);
          numberReference1.Append(numberingCache1);
  
          values1.Append(numberReference1);
  </code></pre>